如何在Tableau中将薪资范围字符串转换为整数以实现可视化
解决Tableau中薪资范围字符串转整数度量的问题
首先得明确:薪资范围(比如5000-8000这类格式)是字符串类型,所以Tableau默认会把它放到维度选项卡里。要转成能用于度量分析的整数,我们得先从字符串里提取出可计算的数值(比如范围的平均值、最小值或最大值),再完成类型转换。下面是具体操作步骤:
步骤1:创建计算字段提取薪资数值
假设你的薪资字段名为薪资范围,格式统一为X-Y(比如3000-5000、8000-12000):
- 打开Tableau的数据菜单,选择创建计算字段
- 在计算编辑器里,根据你想要分析的数值类型编写公式:
- 提取范围最小值:
INT(LEFT([薪资范围], FIND([薪资范围], "-") - 1)) - 提取范围最大值:
INT(RIGHT([薪资范围], LEN([薪资范围]) - FIND([薪资范围], "-"))) - 提取范围平均值(最适合做聚合分析):
INT((INT(LEFT([薪资范围], FIND([薪资范围], "-") - 1)) + INT(RIGHT([薪资范围], LEN([薪资范围]) - FIND([薪资范围], "-")))) / 2)
- 提取范围最小值:
- 给计算字段起个清晰的名字(比如
薪资平均值),点击确定保存
步骤2:将计算字段转为度量
创建完计算字段后,Tableau会自动识别它为数值类型(因为我们用了INT()强制转换函数),它会自动出现在度量选项卡里。如果没自动归类过去,你可以手动把这个字段拖拽到度量区域,或者右键字段选择转换为度量。
特殊格式的兼容处理
如果你的薪资范围格式不统一(比如存在10k以上、面议这类特殊值),可以先做针对性清洗:
- 在数据源界面筛选掉非标准范围的行
- 或者在计算字段里用
IF语句处理异常值,比如:IF CONTAINS([薪资范围], "-") THEN INT((INT(LEFT([薪资范围], FIND([薪资范围], "-") - 1)) + INT(RIGHT([薪资范围], LEN([薪资范围]) - FIND([薪资范围], "-")))) / 2) ELSEIF CONTAINS([薪资范围], "k") THEN INT(REPLACE([薪资范围], "k", "")) * 1000 ELSE NULL // 也可以设置一个默认值,比如0,根据需求调整 END
完成这些操作后,你就可以用转换后的整数薪资字段制作柱状图、折线图等各类可视化图表了。
内容的提问来源于stack exchange,提问作者Akash Tyagi
相关产品推荐
相关产品推荐

