如何将多个度量添加到一个数据透视表 table 中?

How to add multiple measures into a pivot table?

我对使用 pivot tables 和数据模型还很陌生,所以我什至不知道我想做的事情是否可行。我有一个枢轴 table (PivotTable1) 及其来源 (Table 25),我想添加 Table 中列出的大约一百个度量组合。

例如,我输入了两个橙色的第一小节,但它们没有link编辑为Table组合,一个一个输入它们会很长。每个度量针对一个不同的 Sum wfn 列,该列将所有其他行乘以一个系数求和。 TableCombinations table 简单地说明了每列要使用的系数。对于前三行,这些是我的度量公式:

sum wf1=1.4*Table25[Sum of wD]+0*Table25[Sum of wL]+0*Table25[Sum of wS]+0*Table25[Sum of wW]+0*Table25[Sum of wWSOUL]
sum wf2=1.25*Table25[Sum of wD]+1.5*Table25[Sum of wL]+1*Table25[Sum of wS]+0*Table25[Sum of wW]+0*Table25[Sum of wWSOUL]
sum wf3=1.25*Table25[Sum of wD]+1.5*Table25[Sum of wL]+0*Table25[Sum of wS]+0.4*Table25[Sum of wW]+0*Table25[Sum of wWSOUL]
...

两个问题:

  1. 有没有办法 link table 以便对 Table 组合所做的任何更改都会在枢轴 table 度量中更新?
  2. 有没有一种方法可以生成所有度量而无需一一输入。

您当然可以使用 VBA 添加度量,并在 Table 更改时更新它们。我可能很快就会用这种方法写出一个答案。但这是实现您想要的目标的另一种方法。

我之前写过一些代码将 Table 从属到 PivotTable,这样 PivotTable 的尺寸或位置的任何变化都会反映在阴影 Table 的尺寸和位置。这有效地为我们提供了一种将计算字段添加到 PivotTable 的方法,该字段可以引用 PivotTable 之外的内容。如果 PivotTable 增长,则 Calculated Table 也会增长。如果 PivotTable 缩小,Calculated Table 也会缩小,其中的任何多余公式都会被删除。

您可以轻松地使用这种方法在第二个 table 中与您的数据透视表 Table 一起执行计算,并且第二个 table 中的每一列 x 都可以轻松引用中的行 x你的 'parameters' table.

使用 CROSSJOIN 函数,您应该能够仅使用一种 DAX 度量来执行此操作。

不设置表之间的关系,将#拖到数据透视表的列区域。然后创建这个 Measure:

=SUMx(CROSSJOIN(Table1,Table2),Table1[wD]*Table2[wD]+Table1[wL]*Table2[wL]+Table1[wS]*Table2[wS]+Table1[wW]* Table2[wW]+Table1[wWSOUL]*Table2[wWSOUL])

这应该可以为您提供所需的确切答案。

下面是使用一些样本数据的样子:

...这是我使用的示例数据: