在Excel工作表中使用Vlookup来匹配子string
请在下面find我的问题,将我提出问题的表格显示在图像中:
对于不匹配的文本,我想输出值为0。
您可以使用数组公式(Ctrl + Shift + Enter)find相关数据,如下所示:
{=MIN(IF(ISERROR(FIND(Sheet1!$A$3:$A$5,A3)),FALSE,Sheet1!$B$3:$B$5))}
( 这假设您的定价描述在A3:A5的Sheet1中,而您的产品标题则在A3和另一个表中的下方 )
然后,您可以根据需要复制(拖动复制或以其他方式)。 请注意,如果您的string匹配多行,您将获得最低成本(如果需要,您可以更改为不同的聚合函数)。
这个公式的工作方式是:
-
FIND(Sheet1!$A$3:$A$5,A3)
:根据匹配的string返回一组索引或错误值。 -
IF(ISERROR(FIND..)
:testing每个数组项的错误和 – > - 对于错误值(不匹配)返回
FALSE
。 - 对于非错误值(匹配)返回请求值,根据数组的位置/索引(
Sheet1!$B$3:$B$5
)。 -
MIN(....)
:返回由一些FALSE
值和一些(希望只是1)数组成的数组的最小值。 这将数组聚合成一个数字。
由于无法将Sheet1定价中的相同单词与Sheet2产品进行匹配,因此需要在Sheet1定价中在列描述和成本之间插入新列。 在这一栏插入公式:
=VLOOKUP("*"&MID(A2,2,9)&"*",Product!$A$2:$A$4,1,0)
使用MIDfunction是因为,据我所知,在sheet2产品中你没有相同的擦除部分(例如“3 HD包” – “3 Matte Sreen的优质包”)
现在,您可以在sheet2产品中使用VLOOKUP公式来使用新列以供参考:
=IFERROR(VLOOKUP(A2,Pricing!$B$2:$C$4,2,0),0)
- VBA运行时错误 – 尝试在粘贴值后格式化或删除单元格时出现1004错误
- 在Excel中,COUNTIF()不能使用常量定义的string
- 如何在sepearte ws中调和列,并在第三个ws中返回缺失的行?
- Excel中的Oledbexception到数据表转换
- 将数据从Oracle SQL Developer导出到Excel .xlsx
- Excel VBA无法使COM加载项处于非活动状态
- VBA用户窗体:使用类模块格式化文本框时,SpinButtons不起作用
- VBA,具有一定价值的转到单元格(types:date)
- VBA运行时错误:'459'使用自定义ActiveX控件运行userform时发生外部exception