群友:PowerBI可以实现两年的排名差异么?
白茶:可以!安排!

本期的问题,来自于群内小伙伴的一个实际应用场景。在实际业务中,这个需求属于常见类型,展示当前排名时,用户关注的不只是当下的排名,还有对比以往排名的变化情况,这样才能发现到底是哪些产品的排名发生了变动,变动情况是怎样的,产生变化的原因是什么,进行问题的溯源。

案例数据:

案例数据共计三张表,产品表,分店表,事实表。
将其导入到PowerBI中,添加日期表。

Dim_Date =
GENERATE (CALENDAR ( MIN ( 'Fact_Sales'[Date] ), MAX ( 'Fact_Sales'[Date] ) ),VAR DA = [Date]VAR YEAR =YEAR ( DA )VAR QUARTER ="Q" & FORMAT ( DA, "Q" )VAR MONTE =FORMAT ( DA, "MM" )VAR DAY =DAY ( DA )RETURNROW ("Year", YEAR,"Quarter", QUARTER,"Month", MONTE,"DayOfMonth", DAY,"YearQuarter", YEAR & QUARTER,"YearMonth", YEAR & MONTE)
)

模型关系如下:

基础指标:
我们添加如下度量值。
销售数量:

001.Quantity =
SUM ( 'Fact_Sales'[Quantity] )

当前年份:

002.CurrentYear =
MAX ( 'Dim_Date'[Year] )

这里用Selectedvalue其实也是可以的,用Max的好处在于可以避免切片器无筛选的情况。当前排名:

003.QuantityRankx =
IF (HASONEVALUE ( 'Dim_Store'[StoreName] ),RANKX ( ALLSELECTED ( 'Dim_Store'[StoreName] ), [001.Quantity] )
)

将上述度量值拖放到表中展示如下:

那么,如何计算两年排名差异呢?
1.计算出去年的销售数量
2.计算出去年的排名
3.根据今年和去年排名计算差异
思路缕清了,添加如下度量值:
去年销量:

004.LastYearQuantity =
VAR CurrentYear = [002.CurrentYear]
RETURNCALCULATE ([001.Quantity],FILTER ( ALL ( 'Dim_Date' ), 'Dim_Date'[Year] = CurrentYear - 1 ))

去年排名:

005.LastYearQuantityRankx =
IF (HASONEVALUE ( 'Dim_Store'[StoreName] ),RANKX ( ALLSELECTED ( 'Dim_Store'[StoreName] ), [004.LastYearQuantity] )
)

排名差异:

006.RankxYoY =
[003.QuantityRankx] - [005.LastYearQuantityRankx]

展示效果如下:

当然,有不喜欢分段写法的小伙伴,我们也可以一段代码出结果。

007.FinalRankxYoY =
VAR CurrentYear = [002.CurrentYear]
VAR CurrentYearRankx =RANKX ( ALLSELECTED ( 'Dim_Store'[StoreName] ), [001.Quantity] )
VAR LastYearRankx =RANKX (ALLSELECTED ( 'Dim_Store'[StoreName] ),CALCULATE ([001.Quantity],FILTER ( ALL ( 'Dim_Date' ), [Year] = CurrentYear - 1 )))
VAR Result = CurrentYearRankx - LastYearRankx
RETURNIF ( HASONEVALUE ( 'Dim_Store'[StoreName] ), Result )

展示效果如下:

PS:
数据格式,可以在度量值格式里面直接修改为“+0;-0;0”,这里就不赘述了。

这里是白茶,一个PowerBI的初学者。

BI技巧丨RankxYoY相关推荐

  1. BI技巧丨目标达成(二)

    BOSS:对了,白茶啊,上次不是做了一个目标达成么? 白茶:咋滴了,BOSS,哪里不对么? BOSS:不是的,哎,就是今年不景气,能不能换个方式展示? 白茶:比如? BOSS:嗯,不要达标超标了,简单 ...

  2. BI技巧丨增长率问题

    BOSS:白茶,能不能做个柱形图带折线的? 白茶:可以啊,老板! BOSS:(看来这个比较简单)能不能做出环比增长和下降的折线标识? 白茶:可以啊,老板! BOSS:(-)那,增长和下降的标识能不能定 ...

  3. BI技巧丨近两年及当年月份数据汇总

    BOSS:白茶,有个需求,不知道你能不能做? 白茶:不能! BOSS:我还没说呢,小伙砸!做了加钱! 白茶:BOSS您吩咐! BOSS:是这样的,能不能搞个柱形图,既展示近两年的数据,又展示当年所有月 ...

  4. BI技巧丨用户留存问题

    老板:白茶,你说咱这行业咋就留不住人呢? 白茶:(黑人问号??)老板,你说的是没有回头客么? 老板:对对对,就是这个意思,能不能搞一个报表,让我知道顾客是在哪个阶段流失的? 白茶:唔-问题不大! 对于 ...

  5. BI技巧丨计算组柱形图

    PowerBI中,我们经常使用柱形图来进行趋势对比分析,通过柱形图我们可以直观展示每个月之间的差异. 但是在实际需求中,PowerBI原生的柱形图仅能展示一个数据标签,如果我们想要展示同环比的变化情况 ...

  6. BI技巧丨百分位计算

    百分位计算 百分位数据计算,可以说是日常计算中比较常见的需求,通常会用于价格段位分析使用,而在PowerBI中,用于百分位计算的函数一共有四个. 语法 PERCENTILE.EXC(<colum ...

  7. inventor如何钣金出弧面_Inventor技巧丨外螺纹内径尺寸计算原理

    今天为大家带来:外螺纹内径尺寸计算原理. 比如,有个零件如下图,这个零件包含一个外螺纹. 在工程图中,你可以做以下标注,标识外螺纹相关规格.但某些时候,你可能需要知道螺纹底径是多少?或者说,你想知道软 ...

  8. android8手机 使用方法,技巧丨8条使用技巧, 让你手机更安全(安卓篇)!

    原标题:技巧丨8条使用技巧, 让你手机更安全(安卓篇)! 随着安卓手机用户越来越多, 安卓系统开源的特点,也引起了大众对手机安全的关注.今天,小编就为大家收集了安卓手机十大安全注意事项,希望能为你解疑 ...

  9. Word 常用技巧丨交叉引用参考文献

    Word 常用技巧丨交叉引用参考文献 文章目录 Word 常用技巧丨交叉引用参考文献 给参考文献标号 交叉引用 重点 给参考文献标号 1.选中文献,定义新编号格式: 交叉引用 在需要引用文献的地方点击 ...

最新文章

  1. 嗨淘点赞运营版完整源码/刷单/手动派单版本
  2. oracle 行数大于一时,oracle – PL / SQL ORA-01422:精确的提取返回超过请求的行数
  3. saltstack实战2--远程执行之模块(Modules)
  4. 汇编学习--7.10--程序编写
  5. 内存分配失败错误处理
  6. 使用 Python 编写一个聊天小程序
  7. 插U盘之后文件夹变成exe格式如何修复
  8. 代理服务器没有响应解决方案
  9. 荣誉勋章出现计算机中丢失,荣誉勋章战士无法运行的原因及解决方法
  10. 极路由 mysql_用极路由3和移动硬盘DIY时间胶囊TimeCapsule做备份
  11. 使用Java集合实现麻将(准备牌、洗牌、发牌、看牌)
  12. 旅途的意义 ——《解忧杂货店》
  13. 【codevs 1376】帕秋莉·诺蕾姬
  14. VMware虚拟机显示网络电缆已拔出
  15. 如何实现同一IP的不同端口访问不同的网站
  16. ssm杏坛女子学院系统毕业设计源码
  17. java的简单网络爬虫(爬取花瓣网的图片)
  18. java 简单 框架_java简单框架设计
  19. matplotlib之pyplot模块——获取/设置对象属性值(setp()、getp/get())
  20. 雪碧图 移动端雪碧图

热门文章

  1. win10内存占用率过高怎么办_win10系统录屏方法推荐,系统自带录屏快捷键操作学起来...
  2. 技多不压身,你学到了哪些技能?
  3. W3C推荐的标准本体语言,web ontology language
  4. 快手财报:A面阳光、B面承压
  5. SpringBoot - 使用Assert校验让业务代码更简洁
  6. 杨振宁与清华计算机系,他与杨振宁齐名,58岁回清华大学任教,如今深受高考状元欢迎...
  7. vue基础(主要为vue3)
  8. 前端错误日志监控-sentry安装
  9. 春秋云镜 CVE-2022-24223
  10. 关于Google浏览器书签识别不了问题