如何在 Excel 中计算满足特定条件(例如 ISODD 和 > 50)的数字频率

如何在 Excel 中计算满足特定条件(例如 ISODD 和 > 50)的数字频率

Excel 中根据某些条件计算列表中数字出现频率的公式是什么?例如,列表中有多少个奇数,有多少个偶数(值 > 50)或有多少个奇数(值 < 50)等等?

答案1

修订的解决方案

    =SUM(ISODD(A2:A101+0) * (A2:A101 > 50))

这是一个数组公式,因此使用 CTRL+SHIFT+ENTER 来完成公式,而不仅仅是输入。

解释

编写此公式时存在很多问题,这些问题可以解释为什么你会遇到困难。我的第一次尝试是:

=SUMIF(AND(ISODD(A2:A101),(A2:A101) > 50),"= TRUE")

这里的问题是 SUMIF 只能直接作用于范围,AND 不能作用于数组,除非你对其进行修改,否则 ISODD 不能作用于数组。通常我会放弃单个单元格/单个公式的想法,创建几个列并逐个单元格执行此操作,例如 B2 = AND(ISODD(A2),A2 > 50)+0,然后对该列求和。

让我们修复它。首先用布尔值到数字转换的 SUM 替换 SUMIF:

=SUM(AND(ISODD(A2:A101),(A2:A101) > 50)+0)

为了使 AND 数组具有功能,我们将用标准乘法运算符替换它(使用 * 我们可以删除 +0)

=SUM(ISODD(A2:A101) * (A2:A101 > 50))

最后,我们需要使用 (ODD(A2:A101) = A2:A101) 或最近学到的技巧 ISODD(A2:A101+0) 修复 ISODD 使其能够处理数组,这可以欺骗 ISODD 处理数组

=SUM(ISODD(A2:A101+0) * (A2:A101 > 50))                       ------> CTRL+SHIFT+ENTER!

对于其他标准,例如

=SUM(ISODD(A2:A101+0) * (A2:A101 > 50) * (A2:A101 <= 100))    ------> CTRL+SHIFT+ENTER!

相关内容