根据 Google 表格中的日期,将 2 个表格中的数据合并为一个 sheet
Combine data from 2 forms to one sheet depending on the date in Google Sheets
我有 2 个表格,我有相同的结果 sheet。我使用了以下公式
=Query({importrange(...);importrange(...)}, "SELECT * where Col1 is not null")
我想要全部 1 个表格的结果和取决于日期 的结果 来自同一个 sheet.
我在 7 月尝试了以下公式
=Query({importrange(...);importrange(...)}, "WHERE month(Col1)=5")
但它只显示两种表格中日期为 7 月的结果。
如何合并结果?
编辑 2
(跟随 OP 的 )
...Looks like it works only when there are entries with July in the date in the second spreadsheet. I need all the entries in the first spreadsheet to be visualized at any time
我们可以通过用 IFERROR
函数
包装整个公式来轻松解决这个问题
=IFERROR({QUERY(IMPORTRANGE("xxxxxx","form1!A1:E"), "where Col1 is not null");
QUERY(IMPORTRANGE("xxxxxx","form2!A1:E"), "where Col1 is not null and month(todate(Col1))=6",0)},
QUERY(IMPORTRANGE("xxxxxx","form1!A1:E"), "where Col1 is not null"))
只需确保结果 sheet 中的 Col1
(时间戳)的格式为 Date time
最后这个公式表示:
导入来自第一个sheet的数据并在其下追加来自[=65]的数据=]第二sheet基于某月.
如果 那个月丢失了(这会导致错误),从 just 第一个 sheet. 导入数据
编辑
(跟随 OP 的 )
...but my results are not on the same spreadsheets. I'd like to keep them on different spreadsheets.
由于涉及不同的价差sheet,您必须使用IMPORTRANGE
功能(您已经非常正确地使用了)。
那么公式就是:
={QUERY(IMPORTRANGE("xxxxxx","form1!A1:E"), "where Col1 is not null");
QUERY(IMPORTRANGE("xxxxxx","form2!A1:E"), "where Col1 is not null and month(todate(Col1))=6",0)}
(和以前一样,请根据您的需要调整范围。只要确保保持相同的列数即可)
备注:
1. 虽然七月是第 7 个月,但我们使用 month(todate(Col1))=6
。那是因为 在 "query language" 一月份是第 0 个月而不是第 1 个月。
2. 在我们的第二部分中,我们使用 as headers 0
。这样我们就可以避免在第二次查询时返回它们。
3. 由于导入来自我们保持开放范围的表单,因此当提交新答案时,也会导入。
如果您所有的sheet都在相同的价差sheet中,您就不需要IMPORTRANGE
。
使用 INDEX
- "lighter" - 你的公式将是:
={QUERY({form1!A2:O29}, "where Col1 is not null");
QUERY({form2!A2:O29}, "WHERE month(Col1)=6")}
现在您的 form2
结果将被置于 form1
的结果之下
有一个额外的查询,您可以让它们都按第 1 列中的 timestamp
排序
=QUERY({QUERY({form1!A2:O29}, "where Col1 is not null");
QUERY({form2!A2:O29}, "WHERE month(Col1)=7")},"order by Col1")
(请根据您的需要调整所有 sheet 名称和范围)
我有 2 个表格,我有相同的结果 sheet。我使用了以下公式
=Query({importrange(...);importrange(...)}, "SELECT * where Col1 is not null")
我想要全部 1 个表格的结果和取决于日期 的结果 来自同一个 sheet.
我在 7 月尝试了以下公式
=Query({importrange(...);importrange(...)}, "WHERE month(Col1)=5")
但它只显示两种表格中日期为 7 月的结果。
如何合并结果?
编辑 2
(跟随 OP 的
...Looks like it works only when there are entries with July in the date in the second spreadsheet. I need all the entries in the first spreadsheet to be visualized at any time
我们可以通过用 IFERROR
函数
=IFERROR({QUERY(IMPORTRANGE("xxxxxx","form1!A1:E"), "where Col1 is not null");
QUERY(IMPORTRANGE("xxxxxx","form2!A1:E"), "where Col1 is not null and month(todate(Col1))=6",0)},
QUERY(IMPORTRANGE("xxxxxx","form1!A1:E"), "where Col1 is not null"))
只需确保结果 sheet 中的 Col1
(时间戳)的格式为 Date time
最后这个公式表示:
导入来自第一个sheet的数据并在其下追加来自[=65]的数据=]第二sheet基于某月.
如果 那个月丢失了(这会导致错误),从 just 第一个 sheet. 导入数据
编辑
(跟随 OP 的
...but my results are not on the same spreadsheets. I'd like to keep them on different spreadsheets.
由于涉及不同的价差sheet,您必须使用IMPORTRANGE
功能(您已经非常正确地使用了)。
那么公式就是:
={QUERY(IMPORTRANGE("xxxxxx","form1!A1:E"), "where Col1 is not null");
QUERY(IMPORTRANGE("xxxxxx","form2!A1:E"), "where Col1 is not null and month(todate(Col1))=6",0)}
(和以前一样,请根据您的需要调整范围。只要确保保持相同的列数即可)
备注:
1. 虽然七月是第 7 个月,但我们使用 month(todate(Col1))=6
。那是因为 在 "query language" 一月份是第 0 个月而不是第 1 个月。
2. 在我们的第二部分中,我们使用 as headers 0
。这样我们就可以避免在第二次查询时返回它们。
3. 由于导入来自我们保持开放范围的表单,因此当提交新答案时,也会导入。
如果您所有的sheet都在相同的价差sheet中,您就不需要IMPORTRANGE
。
使用 INDEX
- "lighter" - 你的公式将是:
={QUERY({form1!A2:O29}, "where Col1 is not null");
QUERY({form2!A2:O29}, "WHERE month(Col1)=6")}
现在您的 form2
结果将被置于 form1
有一个额外的查询,您可以让它们都按第 1 列中的 timestamp
排序
=QUERY({QUERY({form1!A2:O29}, "where Col1 is not null");
QUERY({form2!A2:O29}, "WHERE month(Col1)=7")},"order by Col1")
(请根据您的需要调整所有 sheet 名称和范围)