【问题标题】:Stack Google Sheets columns in a cleaner way?以更清洁的方式堆叠 Google 表格列?
【发布时间】:2022-10-25 21:00:05
【问题描述】:

我正在制作一个电子表格,以各种不同的方式比较各种列表。其中一种方法是获取一堆单独的列表(每个列表位于不同的列中)并将它们组合成一个大列(不会丢失任何内容)。这使我可以将事物分开,同时仍然可以选择 VLOOKUP 和 FILTER 等。也许这不是解决问题的方法,但这是我迄今为止所采用的方法。

我现在想出的解决方案是将它全部查询为一个数组(我思考这是正确的术语)然后只选择所有不是“”的东西。

它看起来像这样:

=QUERY({Decklists!B8:B;Decklists!C8:C;Decklists!D8:D;Decklists!E8:E;Decklists!F8:F;Decklists!G8:G;Decklists!H8:H;Decklists!I8:I;Decklists!J8:J;Decklists!K8:K;Decklists!L8:L;Decklists!M8:M;Decklists!N8:N;Decklists!O8:O;Decklists!P8:P;Decklists!Q8:Q;Decklists!R8:R;Decklists!S8:S;Decklists!T8:T;Decklists!U8:U;Decklists!V8:V;Decklists!W8:W;Decklists!X8:X;Decklists!Y8:Y;Decklists!Z8:Z;Decklists!AA8:AA;Decklists!AB8:AB;Decklists!AC8:AC;Decklists!AD8:AD}, "select Col1 where Col1 <>''", 0)

这真的很丑陋。它可以工作并做我想要的,但我更喜欢它是干净的如果我将来添加更多列,则可以工作,而不必添加额外的“调用”。

如果您想查看整张纸,请点击此处:https://docs.google.com/spreadsheets/d/17Nwek5ZCgu7Jvk922hl_gv9UJAeORjeH9brXqu3zL_Y/edit#gid=940775206

【问题讨论】:

    标签: google-sheets spreadsheet google-query-language


    【解决方案1】:

    在“Best Buys”表单元格C2 上粘贴这个简单的公式。

    =QUERY(FLATTEN(Decklists!B8:AF), "select Col1 where Col1 <>''")
    


    解释

    1 - FLATTEN 在这种情况下需要的范围是 Decklists 范围 Decklists!B8:AF

    2 - QUERY 来自FLATTEN 函数和查询"select Col1 where Col1 &lt;&gt;''" 的结果列,仅获取非空单元格

    【讨论】:

      【解决方案2】:

      尝试

      =query( flatten(offset(Decklists!A:A,0,1,,columns(Decklists!1:1)-1)) ,"where Col1 is not null",0)
      

      【讨论】:

        【解决方案3】:

        所以我们有三件事要做,第一件事是转置,使列在另一列之下,然后展平以便根据需要对其进行排序,最后是过滤器以删除我们选择的额外空白列考虑到列的长度不同,这将产生奇迹, 已经像在桌子上一样彼此相邻。如果列位于多个位置,请使用 {A:A;D:D} 选择列并删除展平和转置。

        =filter(flatten(transpose(A1:D10)), len(flatten(transpose(A1:D10))))
        

        【讨论】:

          猜你喜欢
          • 2017-05-26
          • 1970-01-01
          • 2013-06-06
          • 1970-01-01
          • 2011-06-22
          • 1970-01-01
          • 2020-05-10
          • 2010-10-14
          • 2022-10-25
          相关资源
          最近更新 更多