1、需求描述
如下图所示,现第一行有三个参考值:人S、羊E、猪3,在第三行有5个字:马、牛、人、羊、猪,每个字如果出现在第一行的三个参考值中,就返回该单元格的数值。如,人,就返回“人S”。
2、解决思路
首先,这个是在行里查找参考值,故选择Hlookup函数,如果是在列里查找,则选择Vlookup函数。
其次,由于被查找值是查找值里的一个字,故使用通配符的方式进行模糊匹配,因其位置不确定,故左右两边都要加通配符。
最后,逐层嵌套尝试即可。
题外话之通配符:
Excel中的通配符有三种,分别是*、?和~,具体作用如下:
“*”可以代表任意数量的字符,例如,“张*”可以匹配所有以“张”开头的字符串。
“?”代表单个字符,例如,“张?”可以匹配所有姓“张”且只有两个字的字符串。
“~”用于将通配符转换为普通字符,例如,“~*”可以匹配包含星号和问号的单元格。
3、具体函数方案
以C5单元格的公式为例:
=IFERROR(HLOOKUP("*"&C4&"*",1:1,1,0),"")
函数效果如下图:
建议:
函数嵌套之先分后合原则:针对嵌套函数,最好不要一次性输入所有函数(特别熟练的专家级人员除外),所有涉及的函数先单独确定无误后逐层合并,合并过程中要逐层核对结果无误,这样好定位出现问题的环节。