我有按两个标准分类的数据,从 B2 开始,标题为 B1 -> BV1 和 A2 -> A101。
单元格 A1 包含数据标签“MYDATA”。
单元格 B1 -> BV1 是 6 的因数:0、6、12、18...354。这些是箱的起始值,其中 0 表示数据,其中 0 <= 数据 < 6。单元格 A2 -> A101 是 0.25 的因数:0.25、0.50、0.75...49.75。这些是箱的中间值,其中 0.25 表示数据,其中 0.00 <= 数据 < 0.50。
以下是快照:
MYDATA 0 6 12 18
0.25 0.014 0.013 0.011 0.010
0.75 0.135 0.122 0.120 0.120
1.25 0.451 0.434 0.442 0.442
我希望将这些数据重新分类到更少的箱子中,这样做本质上就是对它们进行平均。
我希望按整数重新排列行,如 0 -> 1、1 -> 2 等,最多为 30(原始数据中超过 30 的数据将被排除)。从 B6 = 0 开始(然后 B7 = 1 下降到 B36 = 30)并按 30 的值重新排列列,因此 0、30...330。从 C5 = 0 开始,然后 D5 = 30 直到 N5 = 330。
我尝试使用 AVERAGEIFS 来执行此操作,并在单元格 C6 中输入以下公式(用 $ 锁定的列和行,准备拖动以形成完整的表格):
AVERAGEIFS('DATA'!$A$1:$BI$101,'DATA'!$B$1:$BI$1,">"&C$5,'DATA'!$B$1:$BI$1,"<="&D$5,'DATA'!$A$2:$A$101,">"&$B6,'DATA'!$A$2:$A$101,"<"&$B7)
这返回了 #VALUE 错误。为了解决这个问题,我使用了公式 -> 求值公式 -> 求值中的“求值公式”选项。这会突出显示我的第一个标准 >C5(写为 ">"&C5),点击“求值”后会将其更改为 ">"&0。
查看我的数据,它为 C5 提取了正确的值;0。但是我不明白为什么这会返回 #VALUE 错误。我的理解是,这是定义从 MYDATA 中选择的列范围的开始的第一个条件。列范围的结束由 D5(= 30)给出。
我的理解或方法有什么错误?
答案1
您在列和行中设置了条件。对于这种类型的设置,您不能使用AVERAGEIFS
,但可以使用“数组公式”,如下所示:
=AVERAGE(IF('DATA'!$B$1:$BI$1>C$5,IF('DATA'!$B$1:$BI$1<=D$5,IF('DATA'!$A$2:$A$101>$B6,IF('DATA'!$A$2:$A$101<$B7,'DATA'!$B$2:$BI$101)))))
已确认CTRL++SHIFTENTER
注意 1:平均范围在最后。
注意 2:也许你需要<=$B7
,否则你会错过一些值