答案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
从其范围的第一行返回。