Excel中按B、C列条件计算A列中位数,E6为ALL时忽略C列条件
解决Excel多条件中位数计算(支持"ALL"忽略列条件)
嘿,这个需求我之前也碰到过,直接给你调整后的公式,再拆解下逻辑:
=MEDIAN(IF((TableName[[Column B]:[Column B]]=$H$1)*(($E$6="ALL")+(TableName[[Column C]:[Column C]]=$E$6)), TableName[[Column A]:[Column A]]))
逻辑拆解:
- 原公式里的
(TableName[[Column C]:[Column C]]=$E$6)部分,我们替换成了($E$6="ALL")+(TableName[[Column C]:[Column C]]=$E$6)- 当
$E$6输入"ALL"时,($E$6="ALL")会返回TRUE(在Excel数组运算中等价于1),加上后面的条件不管是什么结果,整体都会是1(也就是TRUE),相当于直接忽略C列的筛选条件 - 当
$E$6是具体值时,($E$6="ALL")返回FALSE(等价于0),此时就会只保留TableName[[Column C]:[Column C]]=$E$6为TRUE的行,和原公式的逻辑完全一致
- 当
- 整个条件部分用
*连接,是因为我们需要同时满足B列的条件并且满足C列的「要么是ALL要么匹配具体值」的条件,*在Excel数组运算中相当于逻辑AND
注意事项:
- 如果你用的是Excel 365/2021及以后版本,直接输入公式回车就行,新版本支持动态数组,不需要特殊按键
- 如果你用的是旧版Excel(比如2019及以前),输入完公式后需要按
Ctrl+Shift+Enter触发数组运算,公式会自动加上大括号{}(不要手动添加)
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

