在Excel工作表中使用Vlookup来匹配子字符串

时间:2015-06-08 05:48:53

标签: excel excel-formula vlookup

请在下面找到我的问题,以显示我将问题写入图像的表格:

对于非匹配文本,我想将值输出为0。 enter image description here

2 个答案:

答案 0 :(得分:2)

您可以使用数组公式(Ctrl + Shift + Enter)找到相关数据,如下所示:

{=MIN(IF(ISERROR(FIND(Sheet1!$A$3:$A$5,A3)),FALSE,Sheet1!$B$3:$B$5))}

这假设您的定价说明位于Sheet1的A3:A5,您的产品标题为A3,另一张为

然后,您可以根据需要复制(拖动或其他方式)。 请注意,如果您有匹配多行的字符串,您将获得最低成本(如果需要,可以更改为不同的聚合函数)。

这个公式的工作方式是:

  1. FIND(Sheet1!$A$3:$A$5,A3):返回一个索引或错误值数组,具体取决于匹配的字符串。
  2. IF(ISERROR(FIND..):测试每个数组项的错误和 - >
  3. 对于错误值(不匹配),请返回FALSE
  4. 对于非错误值(匹配)返回请求的值,根据数组位置/索引(Sheet1!$B$3:$B$5)。
  5. MIN(....):返回由一些FALSE值和一些(希望只有1个)数字组成的数组的最小值。这会将数组聚合为一个数字。

答案 1 :(得分:0)

由于您无法将Sheet1定价中的相同字词与Sheet2产品匹配,因此您需要在Sheet1定价中的列描述和成本之间插入新列。在此列中插入公式:

=VLOOKUP("*"&MID(A2,2,9)&"*",Product!$A$2:$A$4,1,0)

使用MID功能,因为据我所知,你在sheet2产品中没有相同的frase部分(例如“3件装 HD ” - “3件套Matte Sreen的高级包装”)

现在,您可以在sheet2产品中使用VLOOKUP公式,使用新列作为参考:

=IFERROR(VLOOKUP(A2,Pricing!$B$2:$C$4,2,0),0)