【问题标题】:Using substrings within an INDEX MATCH function在 INDEX MATCH 函数中使用子字符串
【发布时间】:2018-01-06 14:27:06
【问题描述】:

我正在尝试使用 INDEX MATCH 函数使用来自另一个电子表格的数据自动填充一个电子表格。但是,我正在填写的工作表的人名列在两个单独的单元格中(例如 A1 中的“John”,B1 中的“Doe”),而我正在填写的工作表将他们列为“DOE,JOHN Q”。在一个单元格中。常规的 INDEX MATCH 函数永远不会给出结果,因为域中没有单元格只包含字符串“Doe”。有没有办法为单元格中的查找值作为子字符串的单元格执行函数?

作为参考,这是我对这个问题的尝试,当然会返回错误:

=INDEX(Sheet2!G2:Sheet2!G2340,MATCH(B3,ISNUMBER(SEARCH(B3,Sheet2!C2:Sheet2!C2340)),0))

【问题讨论】:

    标签: excel google-sheets


    【解决方案1】:

    我认为你在正确的轨道上。我认为您的初始公式应该有效,但您需要进行两项更改:

    1. 匹配条件应为“TRUE”而不是“B3”,因为 ISNUMBER() 函数的结果 i 是 TRUE 或 FALSE
    2. 输入公式时,按 CTRL+SHIFT+ENTER 而不是仅按 ENTER,以使其成为数组函数

    公式:

    =INDEX(Sheet2!G2:Sheet2!G2340,MATCH(TRUE,ISNUMBER(SEARCH(B3,Sheet2!C2:Sheet2!C2340)),0))
    

    如果您想同时搜索名字和姓氏,可以将两个 ISNUMBER() 数组相乘,然后搜索 1 而不是 TRUE。这将使它匹配 A3 和 B3:

    =INDEX(Sheet2!G2:Sheet2!G2340,MATCH(1,ISNUMBER(SEARCH(A3,Sheet2!C2:Sheet2!C2340))*ISNUMBER(SEARCH(B3,Sheet2!C2:Sheet2!C2340)),0))
    

    或者,您可以尝试同时匹配名字和姓氏:

    =INDEX(Sheet2!G2:Sheet2!G2340,MATCH(TRUE,ISNUMBER(SEARCH(B3&", "&A3,Sheet2!C2:Sheet2!C2340)),0))
    

    希望这会有所帮助。如果我错过了什么,请告诉我!

    【讨论】:

      【解决方案2】:

      您可以连接字符串并将其作为 MATCHINDEX 函数的参数。它仍然不能完全正常工作,因为你没有像

      这样的第二个名字/首字母
      MATCH(B1 & ", "& A1, Sheet2!C2:C2340, -1)
      

      不过,您需要提供更多详细信息才能从 StackOverflow 社区获得更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-27
        • 2018-05-14
        • 1970-01-01
        相关资源
        最近更新 更多