如何用Excel公式计算几何序列中组成指定数值的元素个数?
Excel公式实现几何序列元素组合计数
可以用Excel公式实现这个需求,核心思路是逐个检查TEST值是否包含LIST中的每个元素(每个元素最多使用一次),然后统计符合条件的元素数量。
假设条件
- LIST列是无重复的几何序列(比如2的幂次:64、32、16、8、4、2、1),单元格区域为
$A$2:$A$7 - TEST值所在单元格为
B2
公式写法
=SUMPRODUCT(--(INT(B2/$A$2:$A$7)-2*INT(B2/(2*$A$2:$A$7))=1))
公式原理
这个公式的逻辑是对LIST中的每个元素,判断它是否是TEST值分解后的组成部分:
INT(B2/元素)计算TEST值包含该元素的最大整数次数INT(B2/(2*元素))计算TEST值包含两倍该元素的最大整数次数- 两者的差值如果为1,说明该元素恰好被使用了一次(使用0次时差为0,使用多次时差大于1,我们只取单次使用的情况)
--把逻辑判断结果(TRUE/FALSE)转换为1/0,最后用SUMPRODUCT求和得到总个数
示例验证
以TEST值116为例,遍历LIST中的元素:
- 64:
INT(116/64)-2*INT(116/128) = 1 - 0 = 1→ 计1 - 32:
INT(116/32)-2*INT(116/64) = 3 - 2*1 = 1→ 计1 - 16:
INT(116/16)-2*INT(116/32) = 7 - 2*3 = 1→ 计1 - 8:
INT(116/8)-2*INT(116/16) = 14 - 2*7 = 0→ 不计 - 4:
INT(116/4)-2*INT(116/8) = 29 - 2*14 = 1→ 计1 - 2、1:计算结果均为0 → 不计
最终SUMPRODUCT求和结果为4,完全符合你的需求。
注意事项
- 确保LIST列中的元素无重复,否则会导致重复统计
- 无论LIST是按从大到小还是从小到大排序,公式都能正常工作
- 该公式适用于任何几何序列,只要TEST值确实由LIST中的元素相加组成(每个元素最多使用一次)
内容的提问来源于stack exchange,提问作者MK01111000
相关产品推荐
相关产品推荐

