【问题标题】:Excel String lookup within String字符串中的 Excel 字符串查找
【发布时间】:2021-03-09 15:16:08
【问题描述】:

我有“收货地”列表,我需要查找另一列,其中包含一组列表,其中包含正确大小写/正确名称的城市名称。

我尝试了下面的公式,但我没有找到任何运气

=(VLOOKUP(LOOKUP(2^15,SEARCH($I$1:$I$7,A2),$I$1:$I$7),$I$1:$I$7,1,0))

当单元格中的第一个单词与另一个单词匹配时,它会给我结果,但是当“接收地点”在第一个单词之后有不同的单词时,它会抛出错误,

例如,如上图所示,“BRADFORD GB”不会从城市列表中获取“Bradford, WYK”。

【问题讨论】:

    标签: excel string excel-formula formula partial-matches


    【解决方案1】:

    您可以使用此公式来捕获单元格的第一个单词(如果它只包含一个单词,则可以捕获整个单词):

    =IFERROR(LEFT(A2,FIND(" ",A2)-1),A2)
    

    如果您当前的公式失败,您可以使用它来执行 VLOOKUP:

    =IFERROR([your-current-formula],VLOOKUP(IFERROR(LEFT(A2,FIND(" ",A2)-1),A2),1,1)
    

    【讨论】:

    • 需要考虑的几件事:看看这将如何潜在地提高LAKEWOOD 的误报率。此外,如果一个城市被称为“拉斯维加斯”或“纽约”怎么办。在更大的数据集中搜索第一个空间可能不是没有问题的。
    • 正确,但 OP 正在寻找一种解决方案来找到“第一个字符串”的匹配项,我相信在这种情况下意味着“第一个单词”。它只是给定数据的合适解决方案。我会考虑在城市数据中添加一列,例如州。这使您可以创建更好的查询,并尽量减少提到的 JvdV 等问题
    • @JanWillem,我已经尝试过的第一个公式将匹配城市列表中的第一个单词,如果有 LAKEWOOD, NJ, U.S.A., 14750 那么它会给我列表中的“Lakewood, NY”。对于第二个公式,结果与图像相同。
    【解决方案2】:

    我遇到了一个在逗号和空格之前查找字符串的解决方案,如果第一个单词匹配,它将检查逗号之后的单词 (+3)。现在预期结果。

    我使用的公式:

    =IFERROR(VLOOKUP(LOOKUP(2^15,SEARCH((LEFT(A2,(FIND(",",A2,1)+3))),$I$1:$I$8,1),$I$1:$I$8),$I$1:$I$8,1,0),(VLOOKUP(LOOKUP(2^15,SEARCH((LEFT(A2,(FIND(" ",A2,1)-1))),$I$1:$I$8,1),$I$1:$I$8),$I$1:$I$8,1,0))) 
    

    解决方案

    【讨论】:

      【解决方案3】:

      假设你有office excel 365,你可以结合使用xlookup和Find函数来解决如下

      =XLOOKUP("*"&IFERROR(LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",2))-1),LEFT(A2,FIND(" ",A2)-1))&"*",$D$2:$D$7,$D$2:$D$7,"Not found",2)
      

      得到如下结果

      解释

      1. 首先我们需要提取字符直到","的第二次迭代

        LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",2))-1)

      2. 由于并非所有字符串的名称都带有“,”示例:BRADFORD GB,因此上述公式将向我们使用 IFERROR 函数的计数器抛出错误。因此,如果上面的公式抛出错误,我们将只提取字符直到第一个空格实例。

        IFERROR(LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",2))-1),<em>LEFT(A2,FIND(" ",A2)-1)</em>)

      3. 现在我们只需要在城市列表中查找名称。但是由于收货地和城市列表并不完全相同,我们将使用通配符“*”作为顶部的整体公式。

      =XLOOKUP("*"&amp;IFERROR(LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",2))-1),LEFT(A2,FIND(" ",A2)-1))&amp;"*",$D$2:$D$7,$D$2:$D$7,"Not found",2)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-24
        • 2011-01-11
        • 2016-06-02
        • 1970-01-01
        • 2012-09-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多