使用INDEX MATCH跨表查找返回#REF!错误,问题出在哪里?
公式报错原因及修复方案
错误点梳理
- 语法拼写错误:MATCH函数的查找值参数多了冗余右方括号,原公式中
[@VendorName]]存在两个连续的],属于基础语法错误。 - INDEX参数逻辑错误:
- 你给INDEX设置的索引区域
VendorSub[@[Unique ID]]是结构化引用中特指VendorSub表当前行的Unique ID单元格,仅为1行1列的单单元格范围,你额外指定返回第2列的内容,列数越界直接触发#REF!报错。 - 索引区域的
@符号多余,你需要匹配VendorSub全表的VendorName字段,不能限制为仅读取当前行内容。
- 你给INDEX设置的索引区域
正确公式写法
直接使用如下结构化引用公式即可实现需求:
=INDEX(VendorSub[Unique ID],MATCH([@VendorName],VendorSub[VendorName],0))
公式说明
- INDEX的第一个参数直接指定VendorSub表的整列Unique ID作为取值范围,仅为单列,不需要额外加列号参数
- MATCH函数先在VendorSub的VendorName列匹配当前行的VendorName值,返回对应行号,INDEX直接按行号提取Unique ID列的对应值,即可返回如“AAA Fencing”对应的18327结果。
内容的提问来源于stack exchange,提问作者Karen Schaefer
相关产品推荐
相关产品推荐

