首页 > 解决方案 > 索引匹配,而不是使用 vlookup

问题描述

我有两个 csv 文件。第一个 csv

Id Name Price Description 
1    X    2     lalala
2    Y    4     nanana
3    Z    6     papapa

另一个:

Id   Description 
2     here
6     here 
1     here

如果 id 相同,我想替换第一个 csv 文件中的描述,如果它们不同,则保存第二个 csv 描述中的前一个值。我想通过索引匹配功能做到这一点,最好的方法是什么?

标签: excelmatchvlookupindexof

解决方案


对于此类查询,最好的方法是自己尝试,即使您一开始失败,但即使您失败或成功,您也会学习,最好的方法是您在互联网上搜索索引匹配并尝试实现它你的数据。

但是既然你在这里,我会尽量说明它是如何完成的

匹配函数在一个范围内查找一个值以及何时找到它;它将返回其在该范围内的位置(如果我们提供了列范围,则为相对行号)

可以在返回的位置上使用索引函数。我们可以给索引一个范围并为其提供一个位置。它从提供的范围返回此特定位置的值。诀窍是;在这种情况下,我们将提供一个不同的列,它将从该列返回数据

在此处输入图像描述

我将解释一行(#8),所有其他行都相同

  • 匹配结果 B8:它使用 match() 在 A2 到 A4 范围内搜索 A8 中的 id,当它找到该范围时,它返回它在该范围内的位置,即 2
  • 索引结果 C8:它使用索引函数()从 D2 到 D4 范围内检索位置 2 处的值(由前一行中的匹配返回),因为它是 nanana,它将返回该值。

D8 到 D10 是相同的公式,但合并

单元格中的公式如下

B8: =MATCH(A8,$A$2:$A$4)
C8: =INDEX($D$2:$D$4,B8)
D8: =INDEX($D$2:$D$4,MATCH(A8,$A$2:$A$4))

推荐阅读