Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何在另一个表中检查机构是否位于特定区域_Excel_If Statement_Excel Formula_Worksheet Function_Vlookup - Fatal编程技术网

Excel 如何在另一个表中检查机构是否位于特定区域

Excel 如何在另一个表中检查机构是否位于特定区域,excel,if-statement,excel-formula,worksheet-function,vlookup,Excel,If Statement,Excel Formula,Worksheet Function,Vlookup,有许多旅行社,每一家都有一列三个字符的代码。我想知道旅行社是否在加拿大大西洋。我可以从数据库中获得与加拿大大西洋旅行社对应的所有代码列表,并将它们放在同一Excel文件中另一个工作表的一列中,但我不确定编写IF…查找的确切语法,或者是否有更好的Excel公式/技术 在本例中,如果代码在D2:D68中,我希望列E(E2:E68)查找列D中的值是否对应于一个冗长的代码列表。列E将显示yes/no或true/false或类似内容 我一直在看各种教程。我不想实际查找任何东西,我只想知道是/否或真/假,这

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

在本例中,如果代码在D2:D68中,我希望列E(E2:E68)查找列D中的值是否对应于一个冗长的代码列表。列E将显示yes/no或true/false或类似内容

我一直在看各种教程。我不想实际查找任何东西,我只想知道是/否或真/假,这三个字符的代码是许多大西洋加拿大代码中的一个,或者不是其中的一个


建议?

如果您的参考列表在第2页的A栏中,请尝试将
=VLOOKUP(D2,第2页!A:A,1,FALSE)
按要求复制到
E2
中。这可以用于显示真/假,但出于识别目的,代码重复似乎足够了。FALSE是仅在精确时才接受匹配(TRUE允许近似匹配-即相似但不正确)。不匹配的将显示
#NAME?

编辑

对于T/F结果
=IFERROR(如果(匹配(D1,'Atlantic Canada Codes'!A:A,0)>0,“真”、“假”)、“假”)

应该行得通(尽管看起来不那么不雅的东西是可能的!)

编辑注释中提到的公式结果中的明显不一致

  • =TRIM()
    (工作表)和
    TRIM
    (VBA)的行为不同
  • =MATCH
    =V/H LOOKUP()
    的行为可能会根据准确与否而有所不同
  • 空格字符可以是“正常”(7位ASCII代码32)或非中断字符(代码160)
与其涵盖所有这些组合,一个简化的解释(到目前为止还不完整)是,如果“额外”空格是一个问题,通常是尾随空格,则将
=TRIM()
应用于要查找的数据(即键)和至少与所需结果相关的数组部分(键)

评论中提到的明显不一致可能是因为
something+space
something
不匹配,并且在从
something+space
中删除
+space
时,同样的情况也适用于
somethingelse+space
。因此,其中before=TRIM()
somethingesle+space
somethingesle+space
匹配
somethingesle
之后,somethingesle不再与
somethingesle+space
匹配

也就是说,问题从一个列表中的“多余”空格切换到了另一个列表中的“多余”空格。要么两者都不包含这些空格,要么必须同时包含这两个空格


给定当前的电子表格,您可以测试VLOOKUP的错误条件

=NOT(ISERROR(VLOOKUP(A5,D:D,1,0)))
如果有一种方便的方法将值列连接到由逗号分隔的值组成的单个单元格中,那么可以对单个单元格进行查找。可能会有性能优势(只有当您的电子表格足够大,以至于您有时会等待它重新计算时,才会有显著的性能优势)


尝试使用查找函数感谢您的帮助,我尝试了第一个修改为:=NOT(ISERR(VLOOKUP(D2,'Atlantic Canada Codes'!A41:A76,1,0)),它为D2返回true,D2的值为E85,返回true,不幸的是,据我所见,E85不在Atlantic Canada Codes列中。我可以删除NOT或其他东西,我要去玩更多的游戏。唉,删除NOT不仅会使公式始终返回真值,现在要确保真实数据实际上包含来自大西洋加拿大的销售。我还将其固定为$a$2:$a$76,它从不变化。根据NOT,它要么始终为真,要么始终为假,即使我输入了大西洋加拿大的代理代码,我的坏。。。将ISERR更改为ISERROR。我也会在答案中修正它。对于VLOOKUP,ISNA(…)将比iSeries(…)更精确,尽管它最终实现了相同的功能。我将您的建议修改为=VLOOKUP(D2,'Atlantic Canada Codes'!A:A,1,FALSE),它返回了#N/A对于不在列表中的代码,让我试试应该在列表中的一个。当我在有效代码上测试它时,它会返回代码的值,我需要将其转换为true false或yes/no。感谢您的帮助。按照上面的建议更改它=NOT(ISER(VLOOKUP(D67,'Atlantic Canada Codes'!a:a,1,false)),总是返回true,ISER可能是问题所在,因为VLOOKUP将返回一个错误…您的最后一个建议是有效的,我还发现一些数据前面有空格,这将不匹配,还有一件事需要修复/注意。再次感谢。将匹配以数字和字母开头的代码。我添加了修剪,并试图手动删除正在进行的空白,但现在公式与加拿大大西洋地区的代码263不匹配,但与加拿大大西洋地区的E01匹配。基本上有3个大西洋加拿大预订,此代码只找到一个E01。谢谢你的帮助。取出饰件()使其与263匹配。我希望一个公式适用于所有数据。
=NOT(ISERROR(FIND(A5,D2,1,0)))