Excel:使用LOOKUP或SUMPRODUCT代替AverageIFS
我有一个电子表格,包含所有数据旁边的大量数据列和结果列。 我试图创build一个公式,如果相邻列中的数据落在指定范围内,将给出结果列的平均值。
我有这个工作,当我想要在一列的数据范围,但现在有问题的范围在多列的数据。
我的电子表格看起来像这样:
在另一张表是所有的数据,基本上我试图得到$ FTSEMIB数据之间的结果的平均值在50和0.19之间,银行数据是在50和-15之间。
我能用这个平均值来做到这一点:
=AVERAGEIFS(Data!$BHV$10:$BHV$119,Data!$HQ$10:$HQ$119,"<"&G25,Data!$HQ$10:$HQ$119,">"&H25,Data!$TK$10:$TK$119,"<"&G26,Data!$TK$10:$TK$119,">"&H26)
但我真的想通过使用Lookup或Sumproduct函数来调整它,它在F25和F26中查找标题,然后将范围应用到它们,然后只有在两个范围内都符合相邻结果的平均值。
我试图用这个数组公式来做到这一点,当时只有一个类应用范围,但现在我无法添加多个类
=IFERROR(AVERAGE(IF((Data!$HQ$7:$LZ$7=F$25)*(Data!$HQ$11:$LZ$119>=$H25)*(Data!$HQ$11:$LZ$119<=$G25)*(Data!$BHV$11:$BHV$119<>"")*(Data!$QK$7:$UT$7=F$26)*(Data!$QK$11:$UT$119>=$H26)*(Data!$QK$11:$UT$119<=$G26),Data!$BHV$11:$BHV$119)),"")
这个屏幕截图显示了我尝试复制你的设置:
D列中的公式基于以下步骤:
-
find类别对应的列号
MATCH(A2,F1:H1,0)
-
返回列中的数据
INDEX(F2:H5,0,MATCH(A2,F1:H1,0))
-
根据返回的列计算结果的平均值
AVERAGEIFS($ I $ 2:$ I $ 5 INDEX($ F $ 2:$ H $ 5,0,MATCH(A2,$ F $ 1:$ H $ 1,0)), “<” &B2,INDEX($ F $ 2:$ H $ 5,0,MATCH(A2,$ F $ 1:$ H $ 1,0)), “>” &C2)
-
现在为两列
AVERAGEIFS($ I $ 2:$ I $ 5 INDEX($ F $ 2:$ H $ 5,0,MATCH(A2,$ F $ 1:$ H $ 1,0)), “<” &B2,INDEX($ F $ 2:$ H $ 5,0,比赛(A2,$ F $ 1:$ H $ 1,0)),“>”和C2,索引($ F $ 2:$ H $ 5,0,比赛(A3,$ F $ 1:$ H $ 1, 0)), “<” &B3,INDEX($ F $ 2:$ H $ 5,0,MATCH(A3,$ F $ 1:$ H $ 1,0)), “>” &C3)