Excel多列复杂条件公式编写求助:汉堡项目发货状态判断
解决Excel中按项目判断汉堡是否已发货的公式方案
嘿,刚上手Excel公式编写的话,这个需求其实挺典型的,咱们用基础函数组合就能轻松搞定!先把需求再明确下:
- 按「项目名称」分组判断
- 每组里只要有至少一条汉堡的记录符合发货状态,就返回指定值(你原文没说具体返回内容,我先默认返回1,你可以按需调整);如果完全没有符合条件的记录,返回0
假设你的数据结构是这样的:
- A列:项目名称
- B列:产品类型(比如“汉堡”)
- C列:发货状态(比如“已发货”,你需要替换成实际符合要求的状态文本)
方案1:逐行判断当前项目的汉堡发货情况
如果要在每行旁边显示对应项目的判断结果,用COUNTIFS+IF组合公式就行:
=IF(COUNTIFS(A:A,A2,B:B,"汉堡",C:C,"已发货")>0,1,0)
公式拆解:
COUNTIFS(A:A,A2,B:B,"汉堡",C:C,"已发货"):统计当前行对应的项目(A2)下,产品是汉堡且状态符合发货要求的记录条数IF(统计结果>0,1,0):只要有1条及以上符合条件的记录,就返回1;完全没有的话返回0
方案2:批量生成所有唯一项目的判断结果(适合汇总)
如果你想单独生成一份所有项目的汇总结果,用UNIQUE提取唯一项目,再搭配COUNTIFS:
- 先在空白列(比如E列)提取所有唯一项目:
=UNIQUE(A:A) - 然后在旁边的F列输入判断公式,下拉填充:
=IF(COUNTIFS(A:A,E2,B:B,"汉堡",C:C,"已发货")>0,1,0)
方案3:Excel 365/2021专属动态数组公式(一步生成所有结果)
如果你用的是新版Excel,直接用BYROW+UNIQUE+LAMBDA的组合,一次性生成所有项目的判断结果,不用手动下拉:
=BYROW(UNIQUE(A:A),LAMBDA(x,IF(COUNTIFS(A:A,x,B:B,"汉堡",C:C,"已发货")>0,1,0)))
实用提示:
- 记得把公式里的
"已发货"替换成你实际的发货状态值(比如“已出库”“配送完成”等) - 尽量不要用整列(比如A:A)作为数据范围,换成具体的单元格区域(比如A2:A1000),能让公式运行更流畅
- 如果需要返回的不是1,而是其他文本(比如“已发货”“未发货”),直接把公式里的
1和0换成对应的文本就行
内容的提问来源于stack exchange,提问作者booky99
相关产品推荐
相关产品推荐

