【问题标题】:How to add multiple measures into a pivot table?如何将多个度量添加到数据透视表中?
【发布时间】:2018-04-04 16:49:10
【问题描述】:

我对使用数据透视表和数据模型很陌生,所以我什至不知道我想做的事情是否可行。我有一个数据透视表 (PivotTable1) 及其来源(表 25),我想添加一百个左右的度量值,这些度量值列在 TableCombinations 中。

例如,我输入了橙色的两个第一个度量,但它们没有链接到 TableCombination 并且将它们全部输入它们会很长。每个度量都针对不同的 Sum wfn 列,该列将所有其他行相加乘以一个系数。 TableCombinations 表简单地说明了用于每一列的系数。对于前三行,这些是我的度量公式:

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. 有没有办法链接表格,以便对 TableCombination 所做的任何更改都会在数据透视表度量中更新?
  2. 有没有一种方法可以生成所有度量而不用一一输入。

【问题讨论】:

  • 您要查找的词是dynamic range - 这是第一个问题的提示

标签: excel pivot-table powerpivot


【解决方案1】:

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

不要在表之间建立关系,将#拖到数据透视表的列区域。然后创建这个度量:

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

这应该会给您所需的确切答案。

使用一些示例数据如下所示:

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

【讨论】:

  • 您的公式有效,但是当我将此度量添加到我的数据透视表时,我只得到一列。我需要访问所有 100 个左右的组合(所以 100 个左右的列?)。也许我错过了什么?
  • 您是否将参数表中的“#”列放入数据透视表的 COLUMNS 区域?
  • 我的错,我没有它的专栏。我现在有正确的外观(多列),但每一列都有相同的值。
  • 对我来说很好。在我的答案中查看添加的图像。
【解决方案2】:

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

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

您可以轻松地使用此方法在数据透视表旁边的第二个表中执行计算,并且该第二个表中的每一列 x 都可以轻松引用您的“参数”表中的行 x。

Select Newest Record and Create New Table of Unique Values in Excel

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多