如何查询包含同一产品的多行数据?解决Lookup函数仅返回单条结果
实现多行匹配查询的解决方案
方法1:用FILTER函数(Excel 365/2021及以上版本)
- 这个函数能直接返回所有匹配的结果,不用绕弯。假设Table 2里
产品名称在B列、产品编码在A列;Table 1里产品编码在D列、物料信息在E列,要根据产品名称匹配所有物料,公式这么写:=FILTER(Table1[物料信息], Table1[产品编码]=XLOOKUP(Table2[@产品名称], Table2[产品名称], Table2[产品编码])) - 逻辑很简单:先用XLOOKUP根据产品名称找到对应的编码,再用FILTER把Table1里编码匹配的所有物料筛出来,自动返回多行结果。
方法2:TEXTJOIN+IF组合(兼容旧版Excel)
要是用的是没有FILTER的旧版Excel,能把匹配结果合并到一个单元格,用换行分开:=TEXTJOIN(CHAR(10), TRUE, IF(Table1[产品编码]=XLOOKUP(Table2[@产品名称], Table2[产品名称], Table2[产品编码]), Table1[物料信息], ""))
- 注意:输完公式要按
Ctrl+Shift+Enter触发数组公式,还要给单元格开自动换行,才能看到多行效果。
方法3:Power Query合并查询
- 步骤1:把Table 1和Table 2都导入Power Query(点「数据」选项卡→「从表格/区域」)
- 步骤2:选中Table 2,点「合并查询」,选择Table 1,匹配列选「产品编码」,合并类型选「左外部」
- 步骤3:展开合并后的列,挑要显示的物料信息列,就能得到所有匹配的多行结果,最后加载回Excel就行。
内容的提问来源于stack exchange,提问作者Hm_Joy
相关产品推荐
相关产品推荐

