首页 > 解决方案 > 创建度量以计算矩阵中的非空白单元格

问题描述

我有一张关于有多少乘客上下公共汽车的数据表。它记录了他们上的哪个部分以及他们下的哪个部分。我的表如下所示:

SectionIn  SectionOut  Pax
--------------------------
1          1           1
1          1           2
1          3           3
1          1           1
1          3           5
...etc...

使用这些数据,我创建了一个矩阵,其中SectionIn行、SectionOut列和总和Pax作为值。

示例矩阵(更多在文件中)

首先(也是最重要的)我需要计算矩阵中有多少实例。也就是说,矩阵中有多少个单元格有值。在这种情况下,我有 15 个实例(上三角形中有 1+2+3+4+5 个值)。COUNT在 Excel 中,使用公式很容易(请检查文件),但不是动态的。

然后,我需要计算有过滤器和没有过滤器的总数的百分比(我认为我们必须在这里考虑评估上下文)。这不太重要,因为它们取决于上面的魔术计数措施

在这里,您可以找到带有数据透视表和我正在寻找的目标的示例数据库。我使用 Excel 公式创建了目标,但我需要在 DAX 中使用它,以便动态过滤数据透视表并在另一个数据透视表中获取结果。

示例测试:https ://drive.google.com/file/d/1xtNdM7g8lWHvqF8UX4K3TP0uOp-fFIZ5/view?usp=sharing

我发现使用该文件中的示例比用文字解释我需要的东西更容易(希望你也是),但如果你不明白,请不要犹豫,问任何问题。

非常感谢提前!

问候,

安迪

标签: excelpowerbidax

解决方案


您可以创建一个汇总表,列出每个组合,SectionIn然后SectionOut计算该表中的行数。它就像您的数据透视表一样,但都在行上,看起来像这样:

汇总表

这是执行此操作的 DAX 代码:

CellCount =
COUNTROWS (
    SUMMARIZE (
        ALLSELECTED ( InOut ),
        InOut[SectionIn],
        InOut[SectionOut],
        "Passengers", SUM ( InOut[Pax] )
    )
)

(注意:你甚至不需要这"Passengers", SUM ( InOut[Pax] )条线来衡量工作。)

这确实是动态的,如下所示:

最终分析


推荐阅读