设置
举个简单的例子,我有一张来自我的银行的原始数据表,上面显示了我花了多少钱,我想把这些数据归类到大街、网站或酒吧的场所。

我目前处理这个问题的方法是有一个查找表,其中每个地点都是分类的。类别列(B3)的公式很简单:
=arrayformula(vlookup($A$3:$A, $D$3:$E$5, 2, false))然而,“特易购”和“哈万特特易购”是同一地点,应该写成“特易购”,这样查找表才能工作。事实并非如此。
我可以在查找表中添加"HAVANT TESCO“,但在真正的问题中,有大量这样的问题细胞需要很长时间才能修复。以这种方式解决问题是不可行的。
WHAT我在找
理想情况下,我想要使用的是能够将通配符放入range的vlookup函数中,这样任何放置在"TESCO“字符串上的东西都会被忽略。我认为这个公式看起来应该是:
=arrayformula(vlookup($A$3:$A, "*"&$D$3:$E$5&"*", 2, false))使用此函数只会创建一个错误。
是否可以在range上使用通配符,或者应该使用哪个不同的公式来实现相同的结果?
发布于 2018-10-12 08:26:16
不过,这是个老职位.
虽然您不能在搜索范围内使用通配符,但是可以在搜索范围内找到一个公式,它只检查字符串的开头,然后结束(如果没有找到开始匹配),然后是中间的(如果在开始或结束时没有找到匹配)。给定样本日期,如下所示:
=ArrayFormula(IFERROR(IFERROR(IFERROR(VLOOKUP("*"&LEFT(A3:A11,4)&"*",D3:E6,2,FALSE),VLOOKUP("*"&RIGHT(A3:A11,4)&"*",D3:E6,2,FALSE)),VLOOKUP("*"&MID(A3:A11,FIND(" ",A3:A11&" ")+1,5)&"*",D3:E6,2,FALSE)),"???")从内到外工作,它检查第一个VLOOKUP()。如果没有发现任何信息,那么与该VLOOKUP最接近的IFERROR()就会进入并进入下一个VLOOKUP。如果失败,下一个IFERROR()向外启动并进入第三个VLOOKUP。如果仍然没有匹配,则最外层的IFERROR将获取最后一个值:???
然后,您可以在B列上使用条件格式来突出显示任何???红色(例如),这样就很容易找到它们。但是公式本身的实质应该是捕捉搜索中的几乎所有内容(除非A列中有超过四个单词的名称,并且搜索的关键字位于单词3到倒数第二位)。
https://webapps.stackexchange.com/questions/116760
复制相似问题