首页 文章

避免在PowerPivot中使用DISTINCTCOUNT

提问于
浏览
0

由于性能问题,我需要在DAX上删除一些不同的计数 . 但是,我有一个特定的场景,我无法弄清楚如何做到这一点 .

例如,假设一个或多个餐馆可以在一个或多个宴会上受雇,并准备一个或多个菜单(参见下面的数据) .

enter image description here

我想要一张PowerPivot表,显示每个餐厅有多少个节日(见下表) . 我通过使用distinctcount实现了这一点 .

enter image description here

为什么不在Power Query上预先计算这个?我的实际数据有点复杂(更多的ID列),为了能够转动数据,我必须计算数千种可能的组合 .

我尝试在我的模型中添加一个Feast维度表(在示例中,这只是1列2行) . 我希望能够利用这种关系来直接计算,但我无法想出正确的DAX来做到这一点 .

1 回答

  • 0

    您可以将COUNTROWS()与VALUES()结合使用 .

    具体来说,COUNTROWS()将为您提供表中的行数 . 这意味着COUNTROWS期望输入一个表 . 这是神奇的部分:VALUES()将返回一个表作为结果,它返回的表是您提供的表/列中的不同值作为VALUES()的参数 .

    我不确定我是否正在解释它,因此对于您提供的示例数据,该度量将如下所示(假设该表名为Table1):

    Unique Feasts:=COUNTROWS(VALUES('Table1'[Feast Id]))
    

    然后,您可以从Powerpivot创建数据透视表,并将“餐厅ID”拖动到“行”中,并将上面的度量拖动到“值”中 . 与DISTINCTCOUNT相同,但性能开销较小(我认为) .

相关问题