如何在QlikSense中统计交易金额列中非零数字后的零的数量
Qlik Sense 交易金额末尾零统计解决方案
实现逻辑
核心逻辑为:
- 先去除金额字段的千分位分隔符、货币符号等非数字内容,转为纯数字字符串
- 移除字符串末尾所有连续的0
- 用原始纯数字字符串的长度减去移除末尾零后的字符串长度,即可得到符合要求的零的数量
数据加载脚本实现(适用于数据模型层预计算)
适用于提前在数据加载阶段生成计算字段,后续前端可直接调用:
// 请将下方[交易金额]替换为你的实际金额字段名,你的原表名替换为实际的表名 LOAD *, Len(KeepChar([交易金额], '0123456789')) - Len(RTrim(KeepChar([交易金额], '0123456789'), '0')) as 末尾零数量 RESIDENT 你的原表名;
函数说明:
KeepChar([交易金额], '0123456789'):仅提取金额字段中的数字字符,自动过滤千分位逗号、货币符号等非数字内容RTrim(xxx, '0'):移除字符串末尾所有连续的0字符- 两个长度值的差值即为最终统计结果
前端图表表达式实现(适用于前端临时计算)
如果不需要预计算,仅需在前端图表中临时使用,可直接用以下表达式:
Len(KeepChar(Only([交易金额]), '0123456789')) - Len(RTrim(KeepChar(Only([交易金额]), '0123456789'), '0'))
注:如果是聚合计算场景,可将表达式中的Only()替换为对应的聚合函数如Sum()等,使用前请保证计算的金额值为整数,若存在小数可先通过Round()/Floor()函数取整后再计算
结果验证
与需求给出的示例完全匹配:
1,000 = 3 ✅
10,000 = 4 ✅
10,500 = 2 ✅
11,510 = 1 ✅
23,415 = 0 ✅
内容的提问来源于stack exchange,提问作者Shabeen Zarook
相关产品推荐
相关产品推荐

