Qlik Sense中金额列动态数字格式设置问题求助
动态格式化金额求和值(B/M/k单位)
完整解决方案表达式
Let sumAmount = sum(amount); If(sumAmount >= 1000000000, Num(sumAmount / 1000000000, '#,##0.0') & 'B', If(sumAmount >= 1000000, Num(sumAmount / 1000000, '#,##0.0') & 'M', If(sumAmount >= 1000, Num(sumAmount / 1000, '#,##0') & 'k', Num(sumAmount, '#,##0') ) ) )
关键说明
单位显示问题修复:
原代码错误地将B/M写在Num函数的格式参数里,Num的格式字符串仅负责数字格式解析,单位需要用&符号单独拼接在格式化后的数字后方,才能正确显示单位后缀。千级逻辑新增:
在百万级判断后新增sumAmount >= 1000的分支,将数值除以1000后格式化,再拼接k后缀,实现千级数值的14k这类显示效果。可选调整项:
- 可修改
Num函数内的格式字符串调整小数位数:比如#,##0会去掉小数,#,##0.00会保留两位小数。 - 提前用
Let sumAmount = sum(amount);缓存求和结果,避免重复计算,提升表达式运行效率。
- 可修改
内容的提问来源于stack exchange,提问作者maven
相关产品推荐
相关产品推荐

