3

我必须处理一个包含多个聚合级别的电子表格。大多数情况下,这很好,但在一种情况下,我需要将来自最高聚合级别的信息与来自下一个聚合级别的信息结合使用。这是一个例子:

Title,         Platform,    Quantity, Revenue
"Some title",          ,    100,      1000.00
            , "Platform A", 12,       120.00
            , "Platform B", 20,       200.00
            , "Platform C", 68,       680.00

"Some other title",       , 20,       200.00
            , "Platform B", 20,       200.00
...

第一条记录有一个标题,“一些标题”,以及所有平台的聚合数量和收入指标。这主要是我需要阅读的内容。但是,在一种情况下,比如“平台 B”,我需要检索该平台的特定值,并且我需要知道这些值的标题是什么。

有谁知道如何完成这项工作?

4

2 回答 2

2

我为此提出了一个jira:

http://jira.pentaho.com/browse/PDI-13296

因为它不是立即显而易见的。

我只能考虑在“修改后的 javascript 步骤”中执行此操作,一小段代码会记住之前的 title 值,然后在 title 为 null 时替换它。

这确实假设您的数据始终以这种方式排序,并且还假设您的第一行始终具有值。

如果您有可以分组的内容(即您没有显示的一些附加属性?),那么您可以在该步骤中使用“传递所有行”选项,并在聚合上为该组获取“第一个非空”值标题字段。

于 2014-12-16T08:29:57.050 回答
0

对我来说,看起来你正在尝试扁平化你的数据(有点)。

我可能做错了,但这是对我有用的类似数据集:

  1. (假设您的数据已经如上图所示)
  2. (标记)公式步骤:IF([TITLE]="";1;0) - 这在新组的开头标记 0
  3. (Seq) 序列步骤:只是一个从 1 开始的直线序列
  4. (SeqCounter) 添加值字段,更改序列步骤:使用“Marker”作为更改字段。
  5. (因子)计算器字段:A*B;SeqCounter * 标记
  6. (组)计算器字段:A+B;序列+因子

这应该给你一个“GROUP”字段,告诉你每行是哪个组的一部分。

然后我只是拆分数据并使用 GROUP 作为 JOIN 字段重新加入。

我知道这是一个旧帖子,但是由于我在搜索时没有找到解决方案,所以我想我会把它放出来让其他人找到。

于 2016-05-04T16:43:29.227 回答