0

有很多旅行社,每家都有一个三字代码。我想知道旅行社是否在加拿大大西洋地区。我可以从数据库中获取与加拿大大西洋地区的旅行社相对应的所有代码列表,并将它们放在同一个 Excel 文件中另一个工作表的单个列中,但我不确定编写 IF 的确切语法。 ..LOOKUP 或者是否有更好的 Excel 公式/技术。

如果代码在此示例中的 D2:D68 中,我希望列 E (E2:E68) 查找列 D 中的值是否对应于冗长的代码列表之一。然后,E 列将显示是/否或真/假或类似的东西。

我一直在看各种教程。我不想实际查找任何内容,我只想要是/否或真/假,三字符代码是许多大西洋加拿大代码之一或不是其中之一。

建议?

4

2 回答 2

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()可能会根据是否准确而表现不同。
  • 空格字符可以是“正常”(7 位 ASCII 代码 32)或不间断(  代码 160)。

而不是涵盖所有这些组合,一个简化的(到目前为止还不是完整的)解释是,“额外”空格是一个问题,通常是尾随空格,适用=TRIM()于要查找数据(即键)和至少那个与所需结果相关的数组(键)的一部分。

评论中提到的明显不一致可能是因为something+space不匹配而出现的,并且从相同something的内容中删除适用于。因此,之前 =TRIM()与after匹配的位置不再与 匹配。+spacesomething+spacesomethingelse+spacesomethingesle+spacesomethingelse+spacesomethingelsesomethingelse+space

那就是问题从一个列表中的“剩余”空格切换到另一个列表中的“剩余”空格。要么都没有这些空间,或者如果你必须,两者都有。

参考:

于 2013-05-03T00:24:11.133 回答
1

鉴于您当前的电子表格,您可以测试 VLOOKUP 的错误情况。

=NOT(ISERROR(VLOOKUP(A5,D:D,1,0)))

如果有一种方便的方法可以将值列连接到一个逗号分隔值的单元格中,那么您可以对单个单元格执行 FIND。可能会有性能优势(只有当您的电子表格足够大以至于您有时会等待它重新计算时才有意义)。

=NOT(ISERROR(FIND(A5,D2,1,0)))
于 2013-05-03T01:18:29.023 回答