google-sheets-formula - Google 表格 - 查询具有不同结构的多个表格
问题描述
寻求有关如何构建将处理来自多个工作表(即选项卡)的数据的查询的帮助,但是两个工作表具有不同的数据结构。
第一个查询(如下)查询包含我所有费用的选项卡。这是按月计算的。=query(Expense_Data, "SELECT C, SUM(Q) where T Matches 'Expense' GROUP BY C ORDER BY C desc limit 3 label SUM(Q) 'Expenses'",1)
下面的示例数据输出
日期 | 花费 |
---|---|
2021 年 1 月 1 日 | -$1000 |
2021 年 1 月 2 日 | -$1500 |
01/03/2021 | -$1000 |
我正在寻求的是查询另一张表,其中包含我希望根据从第一个查询返回的日期(位于 A 列中)返回的数据(位于 G 列中),然后我将计算两者之间的差异。我的问题是将 2 个数据集关联在一起。任何支持将不胜感激!
日期 | 花费 | 预算 | 不同之处 |
---|---|---|---|
2021 年 1 月 1 日 | -$1000 | -$2000 | -$XXXX |
2021 年 1 月 2 日 | -$1500 | -$1500 | -$XXXX |
01/03/2021 | -$1000 | -$1500 | -$XXXX |
解决方案
尝试:
=QUERY(Expense_Input,
"select C,sum(Q)
where T matches 'Expense'
group by C
order by C desc
limit 3
label sum(Q) 'Expenses', C'Month'
format C'mmmm yyyy'", 1)
然后:
={"Budget"; ARRAYFORMULA(IFNA(VLOOKUP(TO_TEXT(A13:A),
{'Expense Lookup (Monthly)'!C:C&" "&'Expense Lookup (Monthly)'!D:D,
SUBSTITUTE('Expense Lookup (Monthly)'!G:G, "$", )*1}, 2, 0)))}
和:
={"Difference"; INDEX(IF(A13:A="",,C13:C-B13:B))}
更新
一气呵成:
=ARRAYFORMULA(QUERY({QUERY(Expense_Input,
"select C,sum(Q)
where T matches 'Expense'
group by C
order by C desc
limit 3
format C 'mmmm yyyy'", 1), IFNA(VLOOKUP(TEXT(INDEX(QUERY(Expense_Input,
"select C,sum(Q)
where T matches 'Expense'
group by C
order by C desc
limit 3",1),,1), "mmmm yyyy"),
{'Expense Lookup (Monthly)'!C:C&" "&'Expense Lookup (Monthly)'!D:D,
SUBSTITUTE('Expense Lookup (Monthly)'!G:G, "$", )*1}, 2, 0))},
"select Col1,Col2,Col3,Col3-Col2
label Col1'Month',Col2'Expenses',Col3'Budget',Col3-Col2'Difference'"))
推荐阅读
- c# - 错误:当从数据库中过滤的 DataGridView 表中的图像数据转换为 pdf 时
- ios - 用户可以在视图之间切换,但不能取消选择和关闭每个视图
- python - 用 Python 自动化无聊的东西:Mad Libs
- apache-kafka - 我们如何将 Kafka Connect 中的 SourceRecord 转换为 AVRO?
- testing - 如何在 IntelliJ idea Java 项目中使用不同的输入文件运行同一可执行文件的多个实例
- r - 在 R 编程中的 for 循环中移动位串
- python - 将 csv 读入字典,每个值有 2 个键,并将第一个非零数字分配给字典值
- r - 错误:请求的资源太大而无法返回 [responseTooLarge](尝试在 R 中导入 google bigquery 表)
- sql - 值对唯一的 SQL 计数
- c# - 如何为树枝上的每个祖先项设置属性?