【发布时间】:2019-09-17 20:01:17
【问题描述】:
我有一个包含以下列的表格:
stockcode、commercial、inhouse、sales、GP、qty、ticket_number
商品和内部是不可透视的指标,无论股票代码是商品还是非商品,以及它是内部产品还是非内部产品
stockcode 列具有我想要排名的唯一值,但我希望它在切片器中是动态的,因此我用切片器值“销售额、GP、数量、售出次数”制作了一个表格。我还创建了衡量销售额、GP 和数量的措施,也将ticket_number 计算为购买项目的次数。
我创建了以下代码来对这些度量进行排名:
RANK STOCKCODE =
IF (
SELECTEDVALUE ( TOPNITEMS[TOPNVALUES] ) = 1,
RANKX ( ALL ( Lines[stockcode] ), [ITEM TOTAL] ),
IF (
SELECTEDVALUE ( TOPNITEMS[TOPNVALUES] ) = 2,
RANKX ( ALL ( Lines[stockcode] ), [ITEM GP $] ),
IF (
SELECTEDVALUE ( TOPNITEMS[TOPNVALUES] ) = 4,
RANKX ( ALL ( Lines[stockcode] ), [QTY BOUGHT] ),
IF (
SELECTEDVALUE ( TOPNITEMS[TOPNVALUES] ) = 5,
RANKX ( ALL ( Lines[stockcode] ), [TIMES ITEM WAS BOUGHT] ),
RANKX ( ALLNOBLANKROW ( Lines[stockcode] ), [ITEM TOTAL] )
)
)
)
)
然后我使用 stockcodes 列创建我的表,并将度量与排名度量一起放入,效果很好……直到我放入商品和内部/非内部列(股票代码独有) .出于某种原因,我无法理解 Power Bi 用于执行此操作的逻辑,RANKX 在为股票代码创建排名并进行复制时会考虑商品/非商品和内部/非内部组合之间的每种变化.
我尝试制作一个单独的股票代码表,删除重复项并将查找列应用于股票代码,以确保没有我不知道的重复组合,但它仍然重复。密集排名不起作用。跳过不起作用。我不知道如何解决这个问题。
尝试排除商品和内部列,考虑过滤器、hasones 值、全部选中、重新使用 all() 并仅参考表格。
试过了,但它只是将每个股票代码排名为 rank = 1:
RANK STOCKCODE =
IF (
SELECTEDVALUE ( TOPNITEMS[TOPNVALUES] ) = 1,
RANKX ( ALLEXCEPT ( Lines, Lines[ISCOMMODITY], Lines[ISTAMCO] ), [ITEM TOTAL] ),
IF (
SELECTEDVALUE ( TOPNITEMS[TOPNVALUES] ) = 2,
RANKX ( ALLEXCEPT ( Lines, Lines[ISCOMMODITY], Lines[ISTAMCO] ), [ITEM GP $] ),
IF (
SELECTEDVALUE ( TOPNITEMS[TOPNVALUES] ) = 4,
RANKX ( ALLEXCEPT ( Lines, Lines[ISCOMMODITY], Lines[ISTAMCO] ), [QTY BOUGHT] ),
IF (
SELECTEDVALUE ( TOPNITEMS[TOPNVALUES] ) = 5,
RANKX (
ALLEXCEPT ( Lines, Lines[ISCOMMODITY], Lines[ISTAMCO] ),
[TIMES ITEM WAS BOUGHT]
),
RANKX ( ALLEXCEPT ( Lines, Lines[ISCOMMODITY], Lines[ISTAMCO] ), [ITEM TOTAL] )
)
)
)
)
【问题讨论】: