Excel INDEX/MATCH
excel-indexmatch• 动画演示MATCH找位置、INDEX返回值的过程。 • 与VLOOKUP不同,可返回查找列左侧的列。
① 要查找的商品编码
i选择商品编码后点击“执行查找”。
MATCH 查找中(B 列)找到位置INDEX 返回
=INDEX($A$2:$A$8, MATCH("A104", $B$2:$B$8, 0))
💡 只改商品编码,名称就会自动更新。与 VLOOKUP 不同,它能返回查找列左侧的列。
商品名称—
INDEX/MATCH 这样理解
MATCH 找出值的位置(N),INDEX 返回该位置的值。与 VLOOKUP 不同,它也能返回左侧的列。
MATCHMATCH(编码, B 列, 0) — 在编码列中求出要找的值的位置(行号)。末尾的 0 表示精确匹配。
INDEXINDEX(A 列, 位置) — 用 MATCH 求出的位置,返回商品名称列的那个值。
?为什么用 INDEX/MATCH? — VLOOKUP 只能在最左列查找,而 INDEX/MATCH 可自由选择查找列和返回列(包括左侧)。
用 IFERROR 包起来后,不存在的编码会显示“无此编码”而不是 #N/A。
为什么用 INDEX/MATCH 而不是 VLOOKUP
INDEX/MATCH 的结果与 VLOOKUP 相同,但适用场景更广。MATCH 先找出值的位置(在第几行),INDEX 再取回该位置的值。因为是两步,查找列和取值列可以自由指定。
也就是说,要取回的值在查找值左边也没关系。VLOOKUP 结构上做不到这一点,只能调整列顺序或加一列辅助列;用 INDEX/MATCH 则不需要。
表格用得越久,差距越明显。VLOOKUP 用列序号指定取值列,中间插入一列就会开始返回错误数据;INDEX/MATCH 指向列本身,照常工作。刚开始看着长一点,但后续维护更省心。