如何使用Vlookup返回非首个匹配的有效销售人员结果?
解决VLOOKUP仅返回首个空值,提取同一Client ID下有效销售人员的问题
VLOOKUP的特性是返回首个匹配项,如果对应Client ID的第一条记录中Sales Person字段为空,自然会拿到空值。下面给你几个实用的解决方案,适配不同Excel版本:
方法1:INDEX+MATCH组合(兼容所有Excel版本)
直接定位到同一Client ID下第一个非空的Sales Person记录:
=INDEX(List!C:C, MATCH(1, (List!A:A=目标表格!A2)*(List!C:C<>""), 0))
List!A:A=目标表格!A2:匹配目标表格当前行的Client IDList!C:C<>"":筛选出Sales Person不为空的记录- 两个条件相乘生成逻辑数组,
MATCH(1, ..., 0)找到第一个同时满足两个条件的行号 INDEX(List!C:C, ...)提取对应行的销售人员姓名
注意:旧版Excel(2019及更早)需要按
Ctrl+Shift+Enter确认公式,Excel 365/2021直接回车即可。
方法2:XLOOKUP(Excel 365/2021及以上版本)
利用XLOOKUP的多条件查找能力,写法更简洁:
=XLOOKUP(TRUE, (List!A:A=目标表格!A2)*(List!C:C<>""), List!C:C, "")
直接查找第一个满足「Client ID匹配」且「Sales Person非空」的记录,返回对应的姓名;如果没有符合条件的记录,返回空字符串。
方法3:提取同一ID下所有非空销售人员
如果同一Client ID对应多个有效Sales Person,需要合并显示的话,用TEXTJOIN+IF组合:
=TEXTJOIN(", ", TRUE, IF((List!A:A=目标表格!A2)*(List!C:C<>""), List!C:C, ""))
- IF筛选出所有符合条件的销售人员姓名
- TEXTJOIN用逗号分隔合并结果,
TRUE参数会自动忽略空值
内容的提问来源于stack exchange,提问作者Luis Carlos Dos Santos Sousa
相关产品推荐
相关产品推荐

