首页 > 解决方案 > 根据账本创建表

问题描述

给出一个包含 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

如果我想制作一个包含这些标题的表格:

Name,X,Y,Z

其中Name是第一个表中的不同列表Name

其中是s 匹配X的第一个表中的值的总和,是,并且是负数NameTypeAValue

其中Y是第一个表中Names 匹配、Type以 开头BValue为正的值的总和

Z在哪里Y / X

我该怎么做?现在我已经将它实现为 2 个不同的查询Xand Y,但是它们重复了该Name列,并且它不能组合成Z,因为这两个查询不返回相同的集合,Names因为有些Names查询没有任何与查询匹配的值对于XY

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

标签: google-sheetsgoogle-sheets-formulagoogle-sheets-query

解决方案


这可能对你有用。

我在您的工作表中添加了一个标签,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 值返回为负数。如有必要,这可以用另一列来处理,以强制使用绝对值。我不确定是否有任何方法可以将其合并到查询语句中。

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

在此处输入图像描述


推荐阅读