【问题标题】:ArrayFormula a Filter in a Join (Google Spreadsheets)ArrayFormula 连接中的过滤器(Google 电子表格)
【发布时间】:2013-01-21 07:14:38
【问题描述】:

我进行了长时间的搜索,但找不到我要找的东西。也许有人可以帮忙?

我的 Google 电子表格中有这个公式(我将在下面解释它的作用):

=Join(" ",FILTER(Sheet1!B:B;Sheet1!A:A=A1))

在表 1 中是一个表格:A 列是名字(例如“James”),B 列是一些评论(例如“Headache”)。 James(或其他任何人)可能有多行,每行都有不同的 cmets(例如,James 有 2 行,一个说“头痛”,另一个说“膝痛”。)

在工作表 2 的 A 列中,我列出了工作表 1 中出现的名称(使用 '=UNIQUE' 公式)。 A1 说“詹姆斯”。在单元格 B1 中输入上述公式。

结果几乎正是我想要的。它将 James 的所有 cmets 连接到一个单元格中,每个评论之间有一个空格 " "。所以 B1 单元格中的结果是:'头痛膝盖疼痛'。

但是,我必须将此公式拖到下面的所有单元格中。有谁知道我怎样才能使它像我过去使用过的所有其他 ArrayFormulas 一样,公式会自动填充下面的所有单元格?我尝试将其设为数组公式,但没有成功。

我也一直在玩这个公式,它给出了相同的结果“头痛膝盖疼痛”,但公式​​仍然不会复制到下面的单元格中。

=SUBSTITUTE(Arrayformula(concatenate(FILTER(Sheet1!B:B;Sheet1!A:A=A1)&" "; "|"));" |";"")

如果有人知道如何实现这一点,我将非常感激 - 您的宝贵帮助将不胜感激。

感谢收看!

【问题讨论】:

    标签: google-sheets formulas array-formulas


    【解决方案1】:

    逐行应用像 CONCATENATE 这样的聚合函数通常有点复杂。

    =ArrayFormula(TRIM(TRANSPOSE(SPLIT(CONCATENATE(REPT(TRANSPOSE(Sheet1!B:B&" ");A:A=TRANSPOSE(Sheet1!A:A))&REPT(" "&CHAR(9);TRANSPOSE(ROW(Sheet1!A:A))=ROWS(Sheet1!A:A)));CHAR(9)))))

    (编辑:抱歉我没有机会测试错误/错别字,如果你能确认它有效,将删除此行)

    【讨论】:

    • 您好,您的公式完美运行,非常感谢您。当我在试验时,我意识到我可以只使用这个公式: =Join(" ",FILTER(Sheet1!B:B;Sheet1!A:A=A1)) 但我仍然无法将它变成一个数组公式。如果将其设为数组公式很简单,请告诉我。否则,您已经给出的公式很好,无论如何我对此非常满意 - 我只是好奇使用 Join 公式是否会更简单!再次感谢。
    • 你好,不幸的是,你的公式并不像我最初想象的那样完美。它似乎工作正常,但是当我从工作表 1 中删除一行时,公式失败。它在整个列中返回“--”。任何想法是什么导致了这个问题?谢谢
    【解决方案2】:

    我知道这个问题太老了,但是要解决擦除一行时的问题,你需要将A:A 更改为filter(A:A,A:A<>"") 所以,

    =ArrayFormula(TRIM(TRANSPOSE(SPLIT(CONCATENATE(REPT(TRANSPOSE(Sheet1!B:B&" ");A:A=TRANSPOSE(Sheet1!A:A))&REPT(" "&CHAR(9);TRANSPOSE(ROW(Sheet1!A:A))=ROWS(Sheet1!A:A)));CHAR(9)))))
    

    变成:

    =ArrayFormula(TRIM(TRANSPOSE(SPLIT(CONCATENATE(REPT(TRANSPOSE(Sheet1!B:B&" ");filter(A:A,A:A<>"")=TRANSPOSE(Sheet1!A:A))&REPT(" "&CHAR(9);TRANSPOSE(ROW(Sheet1!A:A))=ROWS(Sheet1!A:A)));CHAR(9)))))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 2021-10-15
      • 2020-05-13
      • 1970-01-01
      • 2021-10-09
      • 2021-04-30
      • 2018-10-17
      相关资源
      最近更新 更多