首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加权平均w/ Array公式&从单独的工作表中提取的查询

加权平均w/ Array公式&从单独的工作表中提取的查询
EN

Stack Overflow用户
提问于 2020-07-25 17:51:54
回答 1查看 220关注 0票数 0

链接到工作表

因此,我得到了一个数组公式,它包括在下面。我需要对此进行调整,使其成为一个基于存储在题为变量的表上的变量的加权平均值。

现行公式:

代码语言:javascript
复制
  =ARRAYFORMULA(QUERY(
      {PROPER(ADP!A3:A),ADP!E3:S;
       PROPER(ADP!J3:J),ADP!S3:S;
       PROPER(ADP!Z3:Z),ADP!AG3:AG},
      "select Col1, Sum(Col2)
       where 
        Col2 is not null and
        Col1 is not null
       group by Col1
       order by Sum(Col2)
       label
        Col1 'PLAYER',
        Sum(Col2) 'ADP AVG'"))

以下是我认为可行但却没有用的东西:

代码语言:javascript
复制
=ARRAYFORMULA(QUERY(
      {PROPER(ADP!A3:A),ADP!E3:E*(Variables!$F$11/Variables!$F$14);
       PROPER(ADP!J3:J),ADP!S3:S*(Variables!$F$12/Variables!$F$14);
       PROPER(ADP!Z3:Z),ADP!AG3:AG*(Variables!$F$13/Variables!$F$14)},
  "select Col1, Sum(Col2)
   where 
    Col2 is not null and
    Col1 is not null
   group by Col1
   order by Sum(Col2)
   label
    Col1 'PLAYER',
    Sum(Col2) 'ADP AVG'"))

我想得到的是,K中的值乘以VariablesF11中的值,Y中的值乘以VariablesF12,AL中的值乘以F13中的变量。并让分子除以VariablesF14中的值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-01 12:36:57

在我们进行了广泛的交谈之后,我在这里给出了我们想出的答案,就在它可能会对其他人有所帮助的时候。但是,在您的例子中,问题不在于公式的技术细节,而在于多个数据源的结构,以及将数据聚集在一起的相关逻辑。

以下是主要公式:

代码语言:javascript
复制
={"Adjusted 
Ranking
by " & Variables!F21;
arrayformula(
if(A2:A<>"",
  (  if(((D2:D>0) * Source1Used),D2:D,Variables!$F$21)*Variables!$F$12
   + if(((F2:F>0) * Source2Used),F2:F,Variables!$F$21)*Variables!$F$13
   + if(((H2:H>0) * Source3Used),H2:H,Variables!$F$21)*Variables!$F$14 
   + if(((J2:J>0) * Source4Used),J2:J,Variables!$F$21)*Variables!$F$15 
   + if(((L2:L>0) * Source5Used),L2:L,Variables!$F$21)*Variables!$F$16 
   + if(((N2:N>0) * Source6Used),N2:N,Variables!$F$21)*Variables!$F$17 )) / Variables!$F$18) }

A是球员的名单。D2:D>0是对该播放器是否具有从特定数据源获得的评等的测试。

Source1Used是痒框单元格的命名范围,用户可以在其中指示是否将该数据源包括在计算中。

这个公式创建了一个平均值,使用从1到6个可能的源,用户可以选择。

给出某一特定来源的评级值的公式如下:

代码语言:javascript
复制
={"Rating in
Source1";ArrayFormula(if(A2:A<>"",if(C2:C,vlookup(A2:A,indirect("ADP!$" & ADP!E3 & "$10:" & ADP!E5),ADP!E6-ADP!E4+1,0),0),""))}

这将在A列中取一个名称,检查它是否在特定源的数据中列出,如果是,则从数据源中提取评等值。之所以使用INDIRECT,是因为每个数据源的列位置可能不同,但是是从一个固定的表中获得的,在单元格中是ADP!E3和E5。E4和E6是列字母的数值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63091636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档