首页 > 解决方案 > 在谷歌表格中合并 FILTER 的列结果

问题描述

我创建了一个过滤器公式,用于扫描范围以检查匹配项,如下所示:

=(FILTER(A7:Z500,A7:Z7="[217"))

它返回以下结果:

https://i.stack.imgur.com/bs5T0.png

我现在要做的是将结果列合并为一个(我认为 & 操作数的结果?)。结果应该是如下所示的单个列:

[217

缺席的

当下

缺席的

提前致谢。

标签: google-sheetsgoogle-sheets-formula

解决方案


这可能对你有用。在您拥有过滤器的单元格中尝试以下公式。

=ARRAYFORMULA(
  {"[217"; 
    TRIM(TRANSPOSE(
      QUERY(  TRANSPOSE(
        QUERY( TRANSPOSE(
          QUERY(
            TRANSPOSE(E1:J6),
            "where Col1 = '[217'",0)),
          "offset 1",0))
        ,,999)))})

如果这对你有用,我会添加一些解释。我很可能感到困惑,并且那里有一个额外QUERY(TRANSPOSE的东西!

这是指向工作表的链接,其中包含要过滤的值的选择选项。 https://docs.google.com/spreadsheets/d/1ZQ70HxGzoxep_pX6Olvhh4auWvEKDeW1Mi7zvpCPOiU/edit?usp=sharing

非常详细的解释:

此解释使用单元格 D1 来保存标准。因此,根据我的答案中的公式,我们与 '[217'(硬编码)进行比较,现在将其替换为 '" & D1 & "'(与 '"&D1&"' 相同。没有单引号和双引号之间的空格!)

内部Query(Transpose选择匹配所需条件的记录,[217,并给出以下输出。请注意,必须首先转置数据以允许查询在中搜索条件“[217”。

步骤1

然后,第二个QUERY(TRANSPOSE使用 丢弃标题行,OFFSET 1只留下 Present/Absent 值。请注意,这是上图中的单元格 A10:F12,但已转置,然后丢弃了标题“行”。

第2步

接下来,另一个QUERY(TRANSPOSE完成。这对于能够强制将值全部放在一行中是必要的,使用的技巧是说有很多标题行(查询函数语法中的最后一个值)。通常这是一个 1,代表一个标题行,或 0 代表没有。将其设置为一个巨大的数字表示将所有行视为标题数据,QUERY然后将每一列合并为一行,忽略空白单元格。我使用了 999,但通常被视为 9^99,以确保您覆盖大量行数据集。

因此,TRANSPOSE上图中的 A10:C14,并将结果展平为一行,您将得到以下结果。

第 3 步

然后我们将TRANSPOSE我们的数组从单行变为单列。由于上QUERY一步中的单元格值周围可能会出现空格,因此我们对结果数组进行了修剪。由于TRIM函数对单个单元格或值进行操作,我们将公式包装在 中ARRAYFORMULA,这导致TRIM函数循环遍历分配范围内的每个值(到目前为止我们的结果数组)

在此处输入图像描述

最后一步是添加我们的标准“标题”。我们创建一个数组 - {D1,...} - 使用分号分隔符(在北美;检查您的语言环境的语法。)将其强制为列。

在此处输入图像描述

我希望这对你们中的一些人有用!


推荐阅读