【问题标题】:Add column with sheet name of origin to merged sheet将具有原始工作表名称的列添加到合并工作表
【发布时间】:2021-02-20 19:11:01
【问题描述】:

让这个公式合并然后按日期过滤,范围从不同的工作表到主工作表:

=QUERY({'Class 1'!A3:I14;'Class 2'!A3:I14}
,"SELECT Col1, Col3, Col4, Col5, Col6, Col7, Col8, Col9 WHERE (Col1 >= date '" & TEXT(TODAY(),"yyyy-MM-dd") & "' AND Col1 <= date '" & TEXT(TODAY()+9,"yyyy-MM-dd") & "')", FALSE)

公式如下:抓取范围为 Class 1 和 Class 2 工作表。然后它过滤从今天到 9 天后第一列中的结果。对于每个过滤结果,右侧从第三列到第九列的所有内容都会显示出来。

在主表中,我需要添加一个包含班级的列(也就是每个结果的来源表的名称),以便了解要测试的学生来自哪个班级。

Sheet of example

【问题讨论】:

  • 虽然您包含指向电子表格的链接,但最好在问题正文中包含数据布局/结构的描述,因为电子表格可能稍后不可用。此外,您还应该按照How to Ask 的建议,简要介绍您的搜索/研究工作。

标签: arrays google-sheets google-sheets-formula array-formulas google-query-language


【解决方案1】:

尝试:

=ARRAYFORMULA(QUERY(
 {'Class 1'!A3:A14\ 'Class 1'!X3:X14&"Class 1"\ 'Class 1'!C3:I14; 
  'Class 2'!A3:A14\ 'Class 2'!X3:X14&"Class 2"\ 'Class 2'!C3:I14};
 "select Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9
  where Col1 >= date '"&TEXT(TODAY();   "yyyy-MM-dd")&"' 
    and Col1 <= date '"&TEXT(TODAY()+9; "yyyy-MM-dd")&"'"; 0))

其中 X 列为空

【讨论】:

    【解决方案2】:

    使用IF 和ARRAYFORMULA 为第一个工作表添加类名,并为第二个工作表应用相同的模式。

    应用上述方法的一个非常粗略的方法:

    =ArrayFormula(QUERY({
    'Class 1'!A3:I14,IF(N('Class 1'!A3:I14),"Class 1");
    'Class 2'!A3:I14,IF(N('Class 2'!A3:I14),"Class 2")
    },"SELECT Col1, Col10, Col3, Col4, Col5, Col6, Col7, Col8, Col9 WHERE (Col1 >= date '" & TEXT(TODAY(),"yyyy-MM-dd") & "' AND Col1 <= date '" & TEXT(TODAY()+9,"yyyy-MM-dd") & "')", FALSE))
    

    N 返回一个数字,否则什么也不返回。它适用于上述公式,因为第一列包含 Google 表格将其作为序列号处理的日期。

    请注意,SELECT 子句也被修改了,它将 Col10 显示为第二列。

    【讨论】:

    • @Preack 只是为了这次,我插入了一个new sheet 并添加了上面的公式
    • 谢谢,我让你做一个活生生的例子的原因之一是因为公式在我的真实工作表中不断给出公式解析错误。无论我尝试什么,由于某种原因,该公式在实际工作表中仍然不起作用。同时,我会继续解决问题……您介意解释一下为什么会有 Col10 吗?
    • @Preack Col10 之所以存在是因为 Class 计算是在原始列之后添加的(它们是 9)
    • 顺便说一下,示例电子表格使用英国作为区域设置。什么语言环境正在使用您的真实电子表格?
    • 我检查了,即使我更改了区域设置也不影响公式。它最终唯一起作用的是将整个工作表复制到真实的电子表格中,没有这种“导入”公式的方式,其他任何方法都不起作用。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多