基于账本创建 table

Create a table based on a ledger

给一个ledger-like组数据,有3列:

Name,Type,Amount
Foo,A,-100
Bar,A,-200
Baz,A,-500
Foo,B1,200
Foo,A,-100
Bar,A,-300
Baz,B2,2000
Bar,A,-300

如果我想制作一个 table 具有这些 headers:

Name,X,Y,Z

其中 Name 是第一个 table、

Name 的不同列表

其中 X 是第一个 table 的值的总和,其中 Name 匹配,TypeAValue为负数

其中 Y 是第一个 table 的值的总和,其中 Name 匹配,TypeB 开头,并且 Value 为正

其中 ZY / X

我该怎么做? 现在我将此实现为 XY 的 2 个不同查询,但它们重复 Name 列,并且它不是 combine-able 到 Z 因为那些两个查询不 return 同一组 Names,因为某些 Names 没有任何值与 XY 的查询相匹配。

这是我制作的 sheet 中的一个具体示例: https://docs.google.com/spreadsheets/d/1qbwLqRncgo8pQNU4oAeYfEHr5o4L8EGB-Skhu869fGE/edit?usp=sharing

这可能适合你。

我在您的 sheet、Sheet1-GK 中添加了一个标签。在其中,我首先计算每行数据的分配或投资金额 - 请参阅单元格 D1 和 E1 中的公式。然后我在 G8 中使用以下查询来生成您要求的结果。

=query(A1:E12,"select A, sum(D), sum(E), sum(E)/sum(D) group by A label sum(D) ' Invested', sum(E) 'Distributed', sum(E)/sum(D) 'MoM'",1)

唯一的问题是 MoM 值 return 为负数。如有必要,这可以用另一列来处理,以强制使用绝对值。我不确定是否有任何方法可以将其合并到查询语句中。

让我知道这是否有用,或者您是否需要不同的东西。