【问题标题】:Creating a measure to count the non-blank cells in a matrix创建度量以计算矩阵中的非空白单元格
【发布时间】:2019-12-11 19:09:19
【问题描述】:

我有一张关于有多少乘客上下公交车的数据表。它记录了他们上哪一节和下一节。我的桌子是这样的:

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 个值)。在 Excel 中,使用 COUNT 公式很容易(请检查文件),但不是动态的。

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

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

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

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

提前非常感谢!

问候,

安迪

【问题讨论】:

  • 从文字中不清楚您的问题是什么。共享文件非常有帮助,但您的要求需要在不下载文件的情况下清除。
  • 嗨,亚历克西斯!谢谢你的回复,但写下我需要的东西有点困难。我的意思是,我不想在这里写一本书然后你会使用这个文件,因为它太长了(我认为它很清楚)。请试一试!如果这是网站的政策,我可以描述一切。
  • 从您的示例中可以清楚地看出,但site policy 声明“请勿发布代码、数据、错误消息等的图像。...请保留使用用于图表或演示渲染错误的图像,无法通过文本准确描述的事物。”如果您可以将其中一个示例转换为minimal workable example,我很乐意回答。
  • 感谢亚历克西斯的澄清!我是这类帖子的新手。我将修改文本。
  • 嗨,Alexis,如果描述更清楚,请现在检查。我使用了一张图像,因此您可以看到我需要执行计算的矩阵结构。文件中有更多示例。非常感谢!

标签: excel powerbi dax


【解决方案1】:

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

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

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

(注意:您甚至不需要 "Passengers", SUM ( InOut[Pax] ) 行即可使该度量起作用。)

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

【讨论】:

  • 我试过了,太棒了!!我永远无法达到那种程度... SUMMARIZE 函数是我的克星... 仍然不明白。非常非常感谢亚历克西斯!
  • 如果您熟悉 SQL,则类似于 GROUP BY
  • 是的。 DAX 还有一个GROUPBY function,您可以使用它来代替SUMMARIZE
  • 要完全忽略过滤器,请使用ALL 而不是ALLSELECTED
  • 我想你可能需要写一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 2022-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多