You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Power BI中计算行百分比并制作每日数据变化百分比折线图

解决Power BI中的两个数据可视化需求:每日百分比变化折线图 & 行百分比计算

嘿,刚好我之前在Power BI里搭建过类似的业务仪表盘,给你一步步拆解这两个需求:


一、制作每日百分比变化的折线图(媲美Excel效果)

Excel里的每日百分比变化逻辑是「(当日数值 - 前日数值) / 前日数值」,在Power BI里我们可以通过DAX度量值来实现,步骤如下:

  1. 新建度量值
    打开Power BI的「建模」选项卡,点击「新建度量值」,输入以下DAX公式(把[你的指标列名]替换成你要分析的具体列,比如客户活跃度你的表名替换成实际表名):

    每日百分比变化 = 
    VAR 当前值 = SUM('你的表名'[你的指标列名])
    VAR 前日值 = CALCULATE(SUM('你的表名'[你的指标列名]), PREVIOUSDAY('你的表名'[日期列]))
    RETURN
    IF(NOT ISBLANK(前日值), DIVIDE(当前值 - 前日值, 前日值), BLANK())
    
    • VAR定义变量是为了让公式更清晰易读;
    • PREVIOUSDAY会自动匹配前一天的日期(前提是你的日期列是标准的日期类型且数据连续);
    • DIVIDE函数比直接用/更安全,能自动处理除零或空值的情况;
    • 开头的IF判断是为了隐藏第一天的数据(因为第一天没有前日值作为对比)。
  2. 创建折线图

    • 拖拽「日期列」到折线图的「轴」区域;
    • 拖拽刚才新建的「每日百分比变化」度量值到「值」区域;
    • 在「格式」选项卡中,把「值」的显示格式改成「百分比」(保留1-2位小数即可),这样就和Excel的效果完全一致了!

二、计算行百分比(两种常见场景)

这里的「行百分比」通常有两种常见理解,我都给你列出来:

场景1:当日指标值占该指标总历史值的百分比

比如你想知道「2024-05-01的客户活跃度」占「所有日期客户活跃度总和」的比例,DAX公式如下:

指标占总历史百分比 = 
VAR 当前行值 = SUM('你的表名'[你的指标列名])
VAR 指标总和 = CALCULATE(SUM('你的表名'[你的指标列名]), ALL('你的表名'))
RETURN
DIVIDE(当前行值, 指标总和)
  • ALL('你的表名')会忽略当前行的筛选条件,计算整个表的指标总和;
  • 同样用DIVIDE避免除零错误。

场景2:当日各指标值占当日所有指标总和的百分比

比如你想知道「2024-05-01的客户活跃度」占「当天所有客户属性指标总和」的比例,这种情况需要先计算当日的总指标和,再做除法:

当日指标占比 = 
VAR 当前行值 = SUM('你的表名'[你的指标列名])
VAR 当日总指标 = CALCULATE(
    SUM('你的表名'[指标列1]) + SUM('你的表名'[指标列2]) + ... + SUM('你的表名'[指标列N]),
    ALLEXCEPT('你的表名', '你的表名'[日期列])
)
RETURN
DIVIDE(当前行值, 当日总指标)
  • ALLEXCEPT('你的表名', '你的表名'[日期列])会保留日期的筛选,只计算当天所有指标的总和;
  • 指标列1指标列N替换成你实际的所有客户属性列即可。
  1. 使用行百分比
    把新建的行百分比度量值拖拽到表格、卡片或者其他可视化组件中,设置格式为百分比,就能清晰展示给利益相关者了。

内容的提问来源于stack exchange,提问作者Nadav Kiani

火山引擎 最新活动