Excel多条件计算Total列中位数 新增V1为A且V2非0筛选规则
多条件计算中位数公式修改方案
原始数据
V1 V2 Total A 0 0 B 2 10 C 2 12 D 2 19 E 2 22 A 2 4 B 1 12 D 1 0 C 2 8 A 0 10 D 1 15 A 2 12 B 2 10 E 1 16
原有规则&可用公式
原有筛选规则:
- V1列取值为B、C、D
- Total列取值不为0
原有可正常运行的数组公式:
=MEDIAN(IF(B2:B15={"B","C","D"},IF(NOT(D2:D15="0"),D2:D15)))
如果使用2019及更早版本Excel,需要按Ctrl+Shift+Enter确认数组公式生效,365/2021及以上版本直接回车即可
新增规则后的修改后公式
新增规则:V1列取值为A的行,仅当V2列不为0时纳入统计
修改后的公式如下,可直接兼容原有规则:
=MEDIAN(IF(((B2:B15={"B","C","D"})+((B2:B15="A")*(C2:C15<>0)))*(D2:D15<>0),D2:D15))
逻辑说明
公式中使用*代表逻辑与(同时满足)、+代表逻辑或(满足其一即可),符合Excel数组运算规则:
(B2:B15={"B","C","D"}):保留原有V1为B/C/D的判断((B2:B15="A")*(C2:C15<>0)):新增A类行的判断,仅当V1为A且V2不为0时条件成立*(D2:D15<>0):保留所有入选行都需要满足Total不为0的通用规则- 所有条件都满足的行对应的Total值会传入MEDIAN函数计算中位数
结果验证
筛选后符合要求的Total值为:4、10、12、19、12、8、15、12、10,排序后为4、8、10、10、12、12、12、15、19,最终计算得到中位数为12。
内容的提问来源于stack exchange,提问作者Sakkal
相关产品推荐
相关产品推荐

