Excel多账户企业1月活跃状态匹配标记公式求助
解决Excel中判断企业是否存在活跃账户的公式问题
数据场景
数组1(数据源表)
| Name Company[1] | account nr. | active Jan |
|---|---|---|
| A | 123 | x |
| B | 321 | |
| B | 132 | x |
数组2(目标标记表)
| Name Company[2] | active Jan |
|---|---|
| A | |
| B |
原公式问题
你用的VLOOKUP公式:
=IFERROR(VLOOKUP([@NameCompany[2]],'array1'!A3:C5,3,FALSE),"")
只会返回数组1中匹配到的第一条记录的active Jan值,像企业B这种有多个账户、其中一个活跃的情况,因为第一条记录为空,结果就显示空白,没法满足“只要有任意账户活跃就标x”的需求。
修正公式方案
方法1:COUNTIFS(兼容绝大多数Excel版本)
直接在数组2的active Jan列单元格输入:
=IF(COUNTIFS('array1'!A:A, [@[Name Company[2]]], 'array1'!C:C, "x")>0, "x", "")
- 逻辑:统计数组1中企业名称匹配且
active Jan为"x"的记录数,只要数量大于0,就说明有活跃账户,返回"x",否则留空。
方法2:SUMPRODUCT(适配旧版Excel)
如果是用的旧版Excel,COUNTIFS不兼容的话,用这个:
=IF(SUMPRODUCT(--('array1'!A:A=[@[Name Company[2]]]), --('array1'!C:C="x"))>0, "x", "")
- 逻辑:把匹配名称的记录转成1,不匹配转0;活跃的记录转1,非活跃转0;两者相乘后求和,结果大于0就说明存在活跃账户,返回"x"。
方法3:XLOOKUP+FILTER(适用于Excel 365/2021及以上版本)
如果用的是新版Excel,也可以用更简洁的组合公式:
=IF(NOT(ISERROR(XLOOKUP("x", FILTER('array1'!C:C, 'array1'!A:A=[@[Name Company[2]]]), "x"))), "x", "")
- 逻辑:先筛选出当前企业的所有
active Jan值,再在里面查找"x",找到就返回"x",找不到就留空。
内容的提问来源于stack exchange,提问作者DanielN
相关产品推荐
相关产品推荐

