powerbi - 如何从 powerbi 中的 RANKX 函数中删除过滤器?
问题描述
我一直在努力从 dax 的排名计算中删除过滤器。
我有一个样本表,其中包含按各自部门、类别、子类别、母公司和母品牌划分的单个项目的每个商店的单位。
testrank = RANKX(ALLSELECTED(Sales), CALCULATE(SUM(Sales[UnitsPerStore])),,ASC)
正如你从上面看到的,排名是按照我的预期工作的。但是,我希望最终用户能够过滤到他们感兴趣的特定品牌,而不会影响排名。下面我过滤到 Carvet 的 ParentBrand。排名会根据视觉自动改变:
因此,最终用户应用的唯一要影响计算的过滤器是部门、类别和子类别。因此,例如,如果有人查找特定的 UPC,他们将根据部门/类别/子类别的选择看到该 upc 的排名。
我尝试在函数中使用 ALLEXCEPT 但排名错误:
Rank(allexcept) = RANKX(ALLEXCEPT(Sales, Sales[CorporateDepartment], Sales[Category], Sales[SubCategory]), CALCULATE(SUM(Sales[UnitsPerStore])),,ASC)
解决方案
看起来我们在方法 2 和 3 上很接近。例如,在这两种情况下,当我过滤父品牌时,排名与我在类别中所做的选择保持不变(这是我想要的)。然而,似乎排名在重复,几乎就像它有一个 group by 应用于它:
method2 = RANKX(FILTER(ALL(Sales), Sales[CorporateDepartment] = max(Sales[CorporateDepartment]) && Sales[Category] = max(Sales[Category]) && Sales[SubCategory]=max(Sales[SubCategory])), CALCULATE(MAX(Sales[UnitsPerStore])),, ASC,Dense)
method3 = RANKX(ALLEXCEPT(Sales, Sales[CorporateDepartment], Sales[Category], Sales[SubCategory]), CALCULATE(Sum(Sales[UnitsPerStore])),,ASC,Dense)
推荐阅读
- shiny - 导航到 rsconnect/shinyapps.io
- javascript - Marketo 表单嵌入到 Vue JS 应用程序
- javascript - 为什么当我使用 MUI 5 时 StylesProvider 不通过自定义 jss 插件?
- reactjs - 为什么它使用 React 下载一个空文件?
- .net - 如何从自定义 VS 项目模板的非 c# 文件中排除代码?
- bash - grep 列出错误的重复项
- c# - 在集合项中重叠的日期时间范围的 LINQ 查询
- node.js - 如何从 Nexus 代理存储库下载和安装 Nodejs
- drools - Drools 语法错误“输入不匹配”。在规则'
- python-3.x - 执行朴素模式搜索时的错误顺序 - Python