因此,我得到了一个数组公式,它包括在下面。我需要对此进行调整,使其成为一个基于存储在题为变量的表上的变量的加权平均值。
现行公式:
=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'"))以下是我认为可行但却没有用的东西:
=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中的值。
发布于 2020-08-01 12:36:57
在我们进行了广泛的交谈之后,我在这里给出了我们想出的答案,就在它可能会对其他人有所帮助的时候。但是,在您的例子中,问题不在于公式的技术细节,而在于多个数据源的结构,以及将数据聚集在一起的相关逻辑。
以下是主要公式:
={"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个可能的源,用户可以选择。
给出某一特定来源的评级值的公式如下:
={"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是列字母的数值。

https://stackoverflow.com/questions/63091636
复制相似问题