Google 工作表 - 查询具有不同结构的多个工作表

Google Sheets - Query Multiple Sheets That Have Different Structure

寻求有关如何构造将处理来自多个 sheet 的数据(即选项卡)的查询的帮助,但是两个 sheet 具有不同的数据结构。

第一个查询(下方)查询一个选项卡,其中包含我列出的所有费用。这按月对它们求和。 =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 美元
2021 年 1 月 3 日 -1000 美元

我正在寻找的是查询另一个 sheet,其中包含我希望 return 根据第一个查询 return 编辑的数据(位于 G 列) (位于 A 列),然后我将计算它们之间的差异。我的问题是将 2 个数据集关联在一起。任何支持将不胜感激!

日期 费用 预算 差异
2021 年 1 月 1 日 -1000 美元 -2000 美元 -$XXXX
2021 年 1 月 2 日 -1500 美元 -1500 美元 -$XXXX
2021 年 1 月 3 日 -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'"))