每个旅行社都有一个代码为三个字符的旅行社。我想知道旅行社是否在加拿大大西洋沿岸。我可以从数据库中获取与加拿大大西洋沿岸旅行社相对应的所有代码的列表,并将它们放在同一Excel文件中的另一个工作表中的单个列中,但我不确定编写IF的确切语法。 ..LOOKUP或者如果有更好的Excel公式/技术。
如果代码在D2:D68中,在这个例子中,如果列D中的值对应于冗长的代码列表之一,我希望列E(E2:E68)查找。然后,E列将显示yes / no或true / false或类似的东西。
我一直在看各种教程。我不想实际查找任何内容,我只想要是/否或者是真/假三字符代码是加拿大大西洋代码中的一个或不是其中之一。
建议?
答案 0 :(得分:1)
如果您的参考列表位于第2页的ColumnA中,请根据需要在=VLOOKUP(D2,Sheet2!A:A,1,FALSE)
中复制E2
。这可以适用于显示TRUE / FALSE但是为了识别目的,代码重复似乎是足够的。 FALSE是仅在精确时接受匹配(TRUE将允许近似匹配 - 即相似但不正确)。不匹配的那些将显示#NAME?
修改
对于T / F结果
=IFERROR(IF(MATCH(D1,'Atlantic Canada Codes'!A:A,0)>0,"TRUE","FALSE"),"FALSE")
应该工作(虽然看起来不那么不优雅!)
编辑注释中提到的公式结果中的明显不一致
=TRIM()
(工作表)和Trim
(VBA)的行为有所不同。 =MATCH
和=V / H LOOKUP()
的行为可能会有所不同。不是涵盖所有这些组合,而是简化(迄今为止完整)的解释是“额外”空间是一个问题,通常是尾随空格,将=TRIM()
应用于两者要查找的数据(即密钥)以及与所需结果相关的至少那部分数组(密钥)。
评论中提到的明显不一致可能是因为something+space
与something
不匹配,而从+space
移除something+space
同样适用于somethingelse+space
somethingesle+space
。因此,在somethingelse+space
不再与somethingelse
匹配之后,之前= TRIM()somethingelse+space
与{{1}}匹配。
这就是问题从一个列表中的“剩余”空间切换到另一个列表中的“剩余”空间。要么两者都有这些空格,要么两者都有。
答案 1 :(得分:1)
根据您当前的电子表格,您可以测试VLOOKUP的错误情况。
=NOT(ISERROR(VLOOKUP(A5,D:D,1,0)))
如果有一种方便的方法将值列连接成逗号分隔值的单个单元格,则可以针对单个单元格执行FIND。可能存在性能优势(仅当您的电子表格足够大以至于有时等待它重新计算时才有意义)。
=NOT(ISERROR(FIND(A5,D2,1,0)))