我有一个电子表格,其中包含大量数据列和所有数据旁边的结果列。我正在尝试创建一个公式,如果相邻列中的数据落在指定范围内,则会给出结果列的平均值。
当我想在一列数据上放置一个范围但我现在遇到麻烦时将数据放在多列数据上时,我有这个工作。
我的电子表格如下:
在另一张表中是所有数据,基本上我试图得到$ FTSEMIB数据介于50和0.19之间的结果的平均值,并且银行数据介于50和-15之间。
我能够通过使用这个averageif:
来做到这一点=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)),"")
答案 0 :(得分:2)
此屏幕截图显示了我尝试复制您的设置:
D栏中的公式基于以下步骤:
查找与类别
对应的列号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)), “&LT;” &安培; B2,INDEX ($ F $ 2:$ H $ 5,0,MATCH(A2,$ F $ 1:$ H $ 1,0)), “&gt;” 中&安培; C2)
现在有两列
AVERAGEIFS($ I $ 2:$ I $ 5 INDEX($ F $ 2:$ H $ 5,0,MATCH(A2,$ F $ 1:$ H $ 1,0)), “&LT;” &安培; B2,INDEX ($ F $ 2:$ H $ 5,0,MATCH(A2,$ F $ 1:$ H $ 1,0)),“&gt;”&amp; C2,INDEX($ F $ 2:$ H $ 5,0,MATCH(A3) ,$ F $ 1:$ H $ 1,0)), “&LT;” &安培; B3,INDEX($ F $ 2:$ H $ 5,0,MATCH(A3,$ F $ 1:$ H $ 1,0)),” &gt;“中&安培; C3)