如何实现类AVERAGEIF的条件标准差计算并忽略空白单元格
解决条件标准差计算中忽略空白单元格的问题
原公式=STDEV.S(IF((C:C="alpha")*(D:D="S14"),B:B))会将B列的空白单元格当作0纳入计算,导致标准差结果不准确。你可以通过在条件判断中加入对数字单元格的筛选来解决这个问题:
- 适用于Excel 365/2021(支持动态数组,无需手动数组输入):
=STDEV.S(IF((C:C="alpha")*(D:D="S14")*ISNUMBER(B:B),B:B)) - 适用于旧版Excel(输入完成后需按Ctrl+Shift+Enter触发数组计算,公式会自动被大括号包裹):
{=STDEV.S(IF((C:C="alpha")*(D:D="S14")*ISNUMBER(B:B),B:B))}
原理说明
ISNUMBER(B:B)会判断B列单元格是否为有效数字,将这个条件和原有的C:C="alpha"、D:D="S14"用乘法(代表逻辑“与”)合并后,IF函数只会返回同时满足三个条件的数字单元格,自动排除空白、文本等非数字内容,避免被当作0计算。
之前你用IF(ISBLANK...)出现参数过多错误,是因为错误地嵌套了IF结构,而通过多条件相乘的方式合并判断,就能避免这个问题。
内容的提问来源于stack exchange,提问作者Jeanini Jiusti
相关产品推荐
相关产品推荐

