Excel 避免PowerPivot中的DISTINCTCOUNT

Excel 避免PowerPivot中的DISTINCTCOUNT,excel,powerpivot,dax,powerquery,Excel,Powerpivot,Dax,Powerquery,由于性能问题,我需要删除DAX上的几个不同计数。然而,我有一个特殊的场景,我不知道如何去做 例如,假设可以在一次或多次宴会上租用一家或多家餐厅,并准备一份或多份菜单(见下文数据) 我想要一张PowerPivot表,显示每家餐厅的宴会数量(见下表)。我通过使用distinctcount实现了这一点 为什么不在电力查询中预先计算呢?我拥有的真实数据要复杂一些(更多ID列),为了能够透视数据,我必须计算数千种可能的组合 我尝试向我的模型中添加一个维度表(在本例中,这只会是一列两行)。我希望利用这种

由于性能问题,我需要删除DAX上的几个不同计数。然而,我有一个特殊的场景,我不知道如何去做

例如,假设可以在一次或多次宴会上租用一家或多家餐厅,并准备一份或多份菜单(见下文数据)

我想要一张PowerPivot表,显示每家餐厅的宴会数量(见下表)。我通过使用distinctcount实现了这一点

为什么不在电力查询中预先计算呢?我拥有的真实数据要复杂一些(更多ID列),为了能够透视数据,我必须计算数千种可能的组合

我尝试向我的模型中添加一个维度表(在本例中,这只会是一列两行)。我希望利用这种关系能够进行直接计数,但我还没有找到正确的DAX来进行计数。

可以使用COUNTROWS()和value()组合使用

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

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


然后,您可以从Powerpivot创建一个pivot表,将餐厅Id拖到行中,并将上面的度量值拖到值中。结果与DISTINCTCOUNT相同,但性能开销较小(我认为)。

有多少宴会有一个菜单和一个餐厅?如果是一个重要的数字,请尝试此优化:
Unique Feasts:=COUNTROWS(VALUES('Table1'[Feast Id]))