首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Power BI系列:为什么RANKX的排名公式没有得到正确的结果?

在Power BI或者ExcelPower Pivot中使用DAX函数RANKX函数做排名是一件很简单的事儿,但是这个问题你可能也遇到过。

简单地模拟一下数据。一个事实表”销售表”和一个维度表“大区表”。如图所示。

建立一个简单的模型。如图所示。

在维度表中对大区名称列按大区id进行“按列排序“操作。

分别创建度量值“总金额“和”总金额“排名。即:

然后将这两个度量值和大区名称放入矩阵中。如图所示。

此时我们惊奇地发现,排名的结果全是1.这是什么原因呢?从度量值来看,我们的度量值也没有任何的问题。到这里很多的朋友可能很崩溃,这到底是为什么?

原因就在于,拖入到矩阵中的大区名称这一列,使用了按列排序的功能。此时Power BI会隐式地将排序列增加为筛选器,同时RANKX函数在迭代第一个参数的过程中也会考虑这一个隐式筛选器。所以导致了排名的结果全是1.

解决这个问题的方法也是很简单,清除排序列的筛选器。即将RANKX的第二个参数修改为:

然后我们再来看一下矩阵中的排名结果。发现结果是合适的。

所以当你的DAX表达式得不到正确的结果的时候,你应该静下心来,思考一下DAX的原理及一些功能与函数的特性。

让我看看,是哪个小可爱翻到惊喜了~~

小必老师近期新出版的《Excel商务智能:Power Query和Power Pivot数据清洗、建模与分析实战》一书,在上市以来就取得不俗的表现,豆瓣上更是有了9.5分的评分。本书有50+的实战案例,有1G+的随书重难点章节的配套视频。主要讲解Power Query中的M和Power Pivot中的DAX,适用于Excel和Power BI。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230117A02NNS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券