在Tableau中如何拆分十进制数字的整数部分与小数部分
Tableau 拆分小数字段为整数、小数部分的实现方案
假设你需要处理的字段名为[原始小数字段],直接创建两个计算字段即可完成需求:
1. 提取整数部分
创建计算字段,命名为「整数部分」,公式如下:
// 兼容正负数的通用写法 FLOOR(ABS([原始小数字段])) * SIGN([原始小数字段])
- 若你的字段全为非负数,可直接简化为
FLOOR([原始小数字段]),输入20.345时会直接返回结果20。
2. 提取小数部分
创建第二个计算字段,命名为「小数部分」,按需选择以下两种方案:
方案A:自动适配小数位数(推荐)
不需要提前固定小数位数,自动识别原始数值的小数长度:
INT(ABS([原始小数字段] - FLOOR([原始小数字段])) * POWER(10, LEN(SPLIT(STR([原始小数字段]), ".", 2))))
- 输入20.345时返回345,输入12.06时返回6,输入-5.789时返回789。
方案B:固定小数位数(效率更高)
如果你确认所有数值的小数位数固定,比如统一为3位,直接用更简单的公式即可:
INT(ABS([原始小数字段] - [整数部分]) * 1000)
若需要保留小数部分的前导零(比如20.045要返回045而非45),可改为返回字符串类型:
SPLIT(STR([原始小数字段]), ".", 2)
可选优化
如果原始字段存在空值,可以给所有公式套上IFNULL()函数避免返回空值,示例:IFNULL(FLOOR([原始小数字段]), 0)
内容的提问来源于stack exchange,提问作者Darshika Verma
相关产品推荐
相关产品推荐

