0与1在Excel计算中的妙用:从数组运算到条件统计的实战解析
一、数组计算:0与1的“乘法筛选法”
让我们看一个具体例子:
场景:需要统计“华东大区”的“蓉”系列产品销售数据。
原始数据表格(简化版):

=SUMPRODUCT(($A$2:$A$7=$A14)*ISNUMBER(FIND(MID(B$13,3,1),$C$1:$U$1))*$C$2:$U$7)
第一步:构建条件矩阵
我们创建两个条件数组:
-
大区条件列(纵向数组):
-
华东 → TRUE(转为1) -
华东 → TRUE(转为1) -
东北 → FALSE(转为0) -
产品条件行(横向数组):
-
蓉24s → TRUE(1) -
蓉36s → TRUE(1)
第二步:矩阵相乘实现“逻辑与”
当这两个数组相乘时,Excel会进行逐元素运算:
大区条件: [1] × 产品条件:[1, 1, 0, 0] = [1, 1, 0, 0][1] [1, 1, 0, 0][0] [0, 0, 0, 0]
第三步:提取目标数据
用得到的0/1矩阵与原数据相乘:
[1, 1, 0, 0] × [0, 129.92, 12.91, 50.94] = [0, 129.92, 0, 0][1, 1, 0, 0] [0, 0, 0, 19.32] [0, 0, 0, 0][0, 0, 0, 0] [0, 129.92, 12.91, 50.94] [0, 0, 0, 0]
二、首末次购进月份计算:0与1的“位置定位法”
原始数据:
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
问题:找出该客户首次和最后有购进的月份。
解决方案:
-
转为0/1序列:用公式
=N(B2>0)(假设B2是1月数据) -
结果: [0, 0, 0, 1, 1, 1, ..., 1] -
计算最后购进月份:
=MAX(N(销量区域>0)*{1,2,3,4,5,6,7,8,9,10,11,12})
-
计算过程: [0,0,0,4,5,6,...,12]→MAX()→12 - 解释:有销量的月份显示月份数字,无销量的显示0,取最大值就是最后月份
=MATCH(1, N(销量区域>0), 0)
-
在序列 [0,0,0,1,1,1,...]中查找第一个1的位置 → 位置4 → 4月
三、临界值判断:0与1的“阈值触发器”
数据:月度销售额和累计完成率
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
目标:找到累计完成率首次超过100%的月份(临界点)
解决方案:
-
标记达标月份:
=N(累计完成率>=100%) // 达标→1,未达标→0
结果:[0, 0, 0, 0, 1, 0, 1, 1, 1, 1]
2.与序号结合:
=序号 * N(累计完成率>=100%)
[0, 0, 0, 0, 5, 0, 7, 8, 9, 10]3.找到临界点:
-
临界值序号:=MIN(IF(序号*N(累计完成率>=100%)>0, 序号*N(累计完成率>=100%))) -
结果:5(第5个月首次达标) -
仅小于临界值的序号:=MAX(序号 * N(累计完成率<100%)) -
结果:4(最后一个未达标月份)
四、新开发终端识别:0与1的“时间窗口检测”
场景:判断某终端在2023年5月申请开发时,前12个月(2022年5月-2023年4月)是否有销售流向。
终端销售数据:
2022年:[-34, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 23]2023年:[33, 48, 39, 26, ...]
判断逻辑:
-
定位到申请月份:2023年5月
-
向前取12个月:2022年5月到2023年4月
-
检查是否有销售:
=COUNTIF(前12个月区域, ">0") // 统计有销量的月份数
数据:[0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 23] → 有3个月有销量
4.判断是否为新开发:
=IF(COUNTIF(前12个月区域, ">0")=0, "新开发", "老客户")
结果:因为前12个月有3个月有销量(>0),所以不是新开发终端。
实战技巧总结
-
布尔值自动转换:在四则运算中,TRUE自动转为1,FALSE转为0
=TRUE*10 // 结果是10
=FALSE*10 // 结果是0 -
数组运算简化多条件:
// 传统方法
=SUMIFS(数据区, 条件区1, 条件1, 条件区2, 条件2, ...)
// 0/1数组法
=SUM(数据区 * (条件区1=条件1) * (条件区2=条件2)) -
动态范围选取:结合OFFSET函数
=SUM(OFFSET(起点,0,0,高度,宽度) * 条件数组)
版本注意事项
- 旧版Excel:需要使用Ctrl+Shift+Enter输入数组公式
- Excel 365/WPS新版:支持动态数组,公式自动溢出到相邻单元格
结语
通过以上四个具体案例,我们看到0与1在Excel中如何化身为:
- 筛选器:通过乘法实现多条件筛选
- 标记器:标记数据状态和位置
- 触发器:识别关键转折点
- 检测器:判断时间窗口内的数据状态
这种二进制思维不仅让公式更简洁,而且大大提高了计算效率。下次处理复杂数据时,不妨问问自己:这个问题能不能用0和1来解决?
温馨提示:本文案例均来自真实工作场景,涉及公式可根据实际数据调整。掌握0/1思维,你的Excel水平将实现质的飞跃!
夜雨聆风