如何使用 vlookup 在 Excel 中查找单词?

如何使用 vlookup 在 Excel 中查找单词?

这是我的数据模型:

截屏

第 I 列是食物类别,第 H 列是这些类别的代码。

E 列有子类别,这正是我需要处理的。它包含类别名称以及区分子类别的序列号。

在 F 和 G 列中,我需要从 H 和 I 列中找到父类别的代码和名称。图像显示 G 列已经填写。

实际数据有348个类别和1000个子类别。

我尝试使用 Vlookup,结果却显示 #N/A,即值不可用错误。例如,我针对 G 列值尝试了以下操作:

=VLOOKUP(E4,H4:I6,2,FALSE)  

如何查找 E 列中每个值的 F 列和 G 列的值?

答案1

您有两列需要填写。让我们从 G 列中的类别名称开始。尝试使用 VLOOKUP 执行此操作会很复杂,因为 E 列中的值与 I 列中的值不匹配。但是,由于您的命名约定,您很幸运。E 列子类别名称包含类别名称作为第一部分,序列号始终为三位数。我们可以使用它直接提取类别名称。

Excel 具有字符串函数来执行此类字符串操作。LEFT(string,number) 将为您提供数字最左边的字符细绳类似地,RIGHT(string,number) 会给出数字最右边字符的个数。因此,如果您想要提取 E4 的子类别序列号,则为:RIGHT(E4,3)。

另一个字符串函数是 LEN,它给出字符串的长度(字符数)。要提取 G4 的类别名称(即除最后四个字符(即空格加序列号)之外的所有字符),您可以使用:

=LEFT(E4,LEN(E4)-4)

现在您有了类别名称,可以使用它来查找相关类别代码。不幸的是,VLOOKUP 有一个限制,即比较始终在查找范围的最左侧列中进行。您的表格设置为在最左侧列中显示代码。相反,我们可以使用 INDEX 和 MATCH 的组合。MATCH 将找到匹配的值,INDEX 将从不同的列中选择相关值。在 F4 中,我们可以使用:

=INDEX(H4:H6,MATCH(G4,I4:I6,0))

INDEX 返回 MATCH 函数给出的行在 H4:H6 范围内的值。MATCH 识别 I4:I6 中的行,其中值与 G4 中的值完全匹配(0末尾的 表示完全匹配,因此数据的顺序并不重要)。在此示例中,Fruit 与范围内的第一行匹配,因此 INDEXX040001从其范围的第一行返回。

相关内容