【问题标题】:Google Sheets: How to get values of first column for multiple matches of a search string in the other columns?Google表格:如何获取其他列中搜索字符串的多个匹配项的第一列的值?
【发布时间】:2021-06-23 09:36:27
【问题描述】:

我有下表,名称在 A 列,城市在 B 到 E 列:

城市可以作为单个条目或组合出现(即“都柏林”或“都柏林,旧金山”)。城市组合始终按字母顺序排序,因此不会出现“特拉维夫,都柏林”这样的组合。

我想获取给定城市组合的所有名称。对于每个城市组合,我想获得一个名称的排序列表,每个单元格一个名称:

例如,组合“Amman, Tel Aviv”在给定数据中出现了四次(在图像中突出显示),因此在结果表中“Amman, Tel Aviv”的行中应该有四个名称。

有没有使用公式(不是脚本)的方法?我知道 HLOOKUP/VLOOKUP 只会返回一个值。我曾想过 ARRAYFORMULA 和 FILTER 或 MATCH 的某种组合,但我几乎不明白 ARRAYFORMULA 的工作原理。

链接到example sheet

【问题讨论】:

    标签: google-sheets match array-formulas


    【解决方案1】:

    输入公式后,您可以使用这样的公式(我假设您已为名称和城市命名范围)执行此操作,然后按 Crtl+Shift+Enter。这将使它和数组公式,然后将其复制到所有其他列:

    =(IFERROR(INDEX(names;SMALL(IF(cities=$A20;ROW(names)-MIN(ROW(names))+1);COLUMNS($A$20:A20)));"")

    如果您想详细了解正在发生的事情,请参阅这篇文章。 Extract multiple matches into separate columns

    【讨论】:

      【解决方案2】:

      试试FILTER函数:

      =TRANSPOSE(FILTER($A$3:$A$15;MMULT(--($B$3:$E$15=A20);SEQUENCE(4;1;1;0))=1))
      

      SEQUENCE 函数的第一个参数4 必须与$B$3:$E$15 范围内的列数匹配

      【讨论】:

        猜你喜欢
        • 2011-08-16
        • 1970-01-01
        • 2018-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多