2.38 PowerBI数据建模-数字单位的3种方案

加入 PowerBI自己学 知识星球:下载源文件,边学边练;遇到问题,提问交流,有问必答。

在PowerBI中,使用数字单位会遇到如下痛点:

1 使用固定单位,较小权限用户的数字较小,数字可能会变成0;

2 固定单位是英文用户的千分位习惯,不满足中国用户的万、亿等习惯;

3 使用系统自带的自动单位,默认按照最大值的数字量级显示单位,小量级数字也会变成0;

4 不管是固定单位还是自动单位,浏览器语言如果是中文,会出现一排看起来不友好的“千”、“百万”等;

5 度量值使用FORMAT后会变成文本,不支持从小到大排序,不支持放在柱状图等图表中,导出后不是数字。

解决方案

在保持数字格式的前提下,数字单位有如下3种方案:

方案1 增加单位表,通过切片器切换单位,不同量级的数字按照所选的单位一刀切。

操作步骤

STEP 1 点击菜单栏主页下的输入数据,创建一个单位表。

STEP 2 选中单位表中的单位列,点击菜单栏列工具下的按列排序,选择单位序号。这样,切片器中的单位就按指定顺序排列了。

STEP 3 修改度量值公式,将原有的度量值公式写在“_vm_Figure=”后。

Sales_单位表 =

VAR _vm_Figure = SUM(Fact_Sales[销售额])

RETURN DIVIDE(_vm_Figure,SELECTEDVALUE('单位表'[数量级], 1))

在画布中显示如下:

方案2 使用动态格式字符串,按照英文用户习惯,不同量级的数字强制英文动态显示为K、M、Bn等。

操作步骤

STEP 1 写好度量值后,点击菜单栏度量工具下的格式,选择动态。

2 点击度量值公式前面的下拉菜单,将度量值切换到格式,然后录入不同量级的数字对应的格式。这个动态格式字符串功能不会把度量值改为文本,只是在报告显示的时候,按照此文本字符串格式显示,其中的格式设置可以参考FORMAT函数的数字格式。

SWITCH(TRUE(),

    [Sales]>=1E9, "#,#,,,.0" & " Bn",

    [Sales]>=1E6, "#,#,,.0" & " M",

    [Sales]>=1E3, "#,.0" & " K",

    [Sales]>=-1E3, "0.0",

    [Sales]>=-1E6, "#,.0" & " K",

    [Sales]>=-1E9, "#,#,,.0" & " M",

    "#,#,,,.0" & " Bn"

)

STEP 3 如果是图表,需要在图表的格式中,将Y轴值的单位和数据标签值的单位设置为无单位,不要设置为固定的千、百万等,不然反而会有显示问题。

在画布中显示如下:

   

报告发布后,在网页中导出数据时选择.xlsx格式,导出后仍然是数字格式。如果选择.csv或者在PowerBI桌面版中导出(也是csv),就不是数字格式了。

   

方案3 使用动态格式字符串,按照中国用户习惯,不同量级的数字强制中文动态显示为千、万、亿等。

操作步骤

操作步骤同方案2,将方案2中STEP 2的代码更改为相应的中文,其中要对度量值做相应的位数调整才能变相利用千分位的格式设置。

SWITCH(TRUE(),

    [Sales]>=1E8, """" & FORMAT([Sales]*10,"#,#,,,.0" & " 亿"),

    [Sales]>=1E4, """" & FORMAT([Sales]*100,"#,#,,.0" & " "),

    [Sales]>=1E3, "#,.0" & " ",

    [Sales]>=-1E3, "0.0",

    [Sales]>=-1E4,  "#,.0" & " ",

    [Sales]>=-1E8, """" & FORMAT(-[Sales]*100,"#,#,,.0" & " "),

    """" & FORMAT(-[Sales]*10,"#,#,,,.0" & " 亿")

)

在画布中显示如下:

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值