【问题标题】:Adding sheet name as column to query in Google Sheets将工作表名称添加为要在 Google 表格中查询的列
【发布时间】:2019-03-14 09:05:55
【问题描述】:

我的电子游戏收藏中有一个 Google 表格文档。每个控制台系统都有自己的工作表,但我决定使用如下所示的查询将所有工作表合并到一个新工作表中作为概览:

=query({NES!A2:C;SNES!A2:C},"Select Col1, Col2, Col3 where Col1 is not null order by Col2 desc", 1)

这很好用,我很满意。然而,我的收藏非常庞大,跨越 20 多个游戏机,所以有时我看到一个游戏,我忘记了我拥有它的系统。因此,我想添加第 4 列,其中包含该行来自的工作表的名称(因为每个工作表都以控制台命名)。

另外,如果每个控制台都有自己的字体/或背景颜色,那将是很棒的,也许是 Google 表格分配给工作表范围的颜色,但它也可以是手动的,并不重要,就像只要它们是不同的颜色。

【问题讨论】:

    标签: sql google-sheets google-sheets-formula array-formulas google-sheets-query


    【解决方案1】:

    你能做的最简单的就是搭建 VR 桌:

    =ARRAYFORMULA(QUERY(
     {{NES!A2:C,  TRANSPOSE(SPLIT(REPT("NES"&"♦",  ROWS(NES!A2:A)),  "♦"))}; 
      {SNES!A2:C, TRANSPOSE(SPLIT(REPT("SNES"&"♦", ROWS(SNES!A2:A)), "♦"))}},
     "where Col1 is not null order by Col2 desc"))
    

    【讨论】:

    • 完全可以接受的答案,即使我并不真正了解它是如何工作的。将不得不检查一些参考资料:)
    • 这是一个很好的答案,希望看到它解释它是如何工作的!
    • @Staple ROWS 计算 A 列中的所有行。假设有 6 行,那么 REPT 将使用唯一符号重复工作表名称 6 次。然后 SPLIT 将其切割为 6 个单元格,TRANSPOSE 将翻转它,因此我们最终得到一列 6 行,其中包含工作表名称。然后我们使用大括号来构造 A:B 范围的表和旁边的工作表名称列
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 2022-11-14
    • 2019-08-26
    相关资源
    最近更新 更多