【问题标题】:Google Sheets - Query to create "Master summary" from another sheet when master sheet is set to condition谷歌表格 - 当主表格设置为条件时,查询以从另一张表格创建“主摘要”
【发布时间】:2017-01-09 16:24:48
【问题描述】:

我在尝试编写查询时有点吃力。

我有一张 Google 表格 (here's a copy),我需要为其编写查询以创建“主摘要”。有问题的列是主选项卡上的 U 列。基本上,我需要从匹配的工作表中导入列 C D E 和 F,然后在列 T 中输入与行匹配的选定名称。

我知道我需要查询单个工作表并使用类似的方式导入信息

=QUERY(MASTER!T:T,"SELECT MIRANDA! C,D,E,F WHERE MASTER!T:T ='Miranda'",0)

但我对此无能为力。我的另一个想法是运行一个 SELECT 函数,比如

=SELECT MIRANDA (C,D,E,F) WHERE MASTER!T:T ='Miranda'

但这也是错误的 :) 我怀疑我的语法不对,因为我还在学习 SQL。而且我相信谷歌应用程序无论如何都会使用稍微修改过的版本。我做错了什么?

【问题讨论】:

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


    【解决方案1】:

    查询函数的第一部分是要查询的范围。第二部分是要抓住什么。所以我想你可能正在寻找这个:

    =QUERY(MASTER!A:T,"SELECT C,D,E,F WHERE T ='Miranda'",0)
    

    并且您不会收到任何列标题,因为 0 表示不使用任何行作为标题。

    这将列出 T 为 Miranda 的行的 C、D、E 和 F 列。

    编辑:

    由于您没有在每张单独的表格中显示时间戳,因此很难找到一个匹配项,但只要您的表单中需要,M 列应该是相当安全的。

    =FILTER(MIRANDA!C2:F, MIRANDA!C2:C=M2)
    

    将为 Miranda 选项卡中与 M2 的值匹配的行返回一个单元格数组,从 C 到 F。照原样,它会将这些放在包含公式的列中,以及接下来的 3 列中。要将它们放在一个单元格中,您需要加入它们:

    =join("|",FILTER(MIRANDA!C2:F, MIRANDA!C2:C=M2))
    

    这将把 |每个列项目之间的字符。更改“|”到你想要的样子。

    因此,要通过获取单元格 T 的值来完成这项工作,您需要 INDIRECT():

    =join("|",FILTER(INDIRECT( T2 & "!C:F"), INDIRECT( T2 & "!C:C")=M2))
    

    另一个选项,特别是如果您在每个选项卡中包含时间戳,将使用 vlookup 来查找时间戳列。但是,使用列 M 可能效果不佳:

    =VLOOKUP(M2, INDIRECT( T2 & "!C:F"), 1, FALSE)
    

    由于您使用的是自定义脚本,因此您也可以使用一个来复制公式,因为您无法将 arrayformula() 应用于任何这些方法。我相信有一些示例脚本可以做到这一点。问题是通过引用另一个单元格来获取范围。我知道这样做的唯一方法是使用 INDIRECT() 函数,它不支持数组。另一种选择是编写一个自定义公式,该公式返回您需要的范围值并使用数组公式。

    【讨论】:

    • 确实如前所述,但我需要的是从主列 T 中找到的工作表名称中将列 C、D、E、F 导入主列 U。所以我认为我需要能够告诉 SELECT 参数从哪个表导入
    • 我能想到的一个简单方法是告诉客户我需要他们在每个查询主表的单独工作表上创建另一列并将这些列导入回主工作表。但最好是,我想给他们他们要求的功能。
    • 知道了。我想我有你想要的。问题是,U 列中返回了什么信息?我将更新我的答案以反映这一点,但确实在 Master 表的 V2 中放置了一个公式,以获得我相信你所追求的,但(目前)从 Miranda 表中返回所有行。
    • 他们需要将各个工作表(Miranda、Piper....)上 C、D、E 和 F 列的内容导入主工作表上的 U 列。因此,最终我还必须使查询成为有条件的,或者为每种可能性附加一个不同的查询,我还可能必须找出一种格式化它的方法。但我想先搞清楚基础:)
    • 见我上面的编辑。如果不复制公式,我认为没有简单的方法可以做到这一点。问题是需要为一个范围引用一个单元格。希望有人能更好地教育我们。
    猜你喜欢
    • 2021-12-06
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多