如何在Tableau中将拼接字段拆分为行而非列?
当然可以实现这种每行一条的格式!我给你整理了几种常用工具的实现方法,你可以根据自己的需求选择:
方法1:Excel操作(适合非编程用户)
- 第一步:把医疗代码串和描述串分别放到两个单元格里(比如A1放代码,B1放描述)
- 第二步:拆分代码列:在A2单元格输入
=TEXTSPLIT(A1,";"),按回车后会自动把所有代码拆成单独的行 - 第三步:拆分描述列:在B2单元格输入
=TEXTSPLIT(B1,";"),这样拆分后的描述会和代码一一对应 - 第四步:添加表头和分隔线:在上方插入一行,分别输入
code和description;如果需要分隔线,可以手动在表头下方一行输入-----和------------,或者用Excel的表格格式化功能美化
方法2:Python脚本(适合有编程基础的用户)
如果数据量很大,用Python处理会更高效,下面是一段简单的示例代码:
# 替换成你的实际代码串和描述串 code_string = "80400;80402;80404;..." desc_string = "description1;description2;description3;..." # 拆分字符串为列表 codes = code_string.split(";") descriptions = desc_string.split(";") # 输出格式化后的内容 print("code description") print("----- ------------") for code, desc in zip(codes, descriptions): # 可以根据需要调整格式,比如用制表符对齐 print(f"{code:<6} {desc}")
运行这段代码后,不管有多少个条目,都会自动输出你想要的每行一条的格式。
方法3:SQL查询(如果数据存储在数据库中)
假设你的表名为medical_data,包含code_list和desc_list两个字段,不同数据库的字符串拆分函数略有不同,这里以MySQL为例:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(m.code_list, ';', nums.n), ';', -1) AS code, SUBSTRING_INDEX(SUBSTRING_INDEX(m.desc_list, ';', nums.n), ';', -1) AS description FROM medical_data m JOIN (SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) nums ON CHAR_LENGTH(m.code_list) - CHAR_LENGTH(REPLACE(m.code_list, ';', '')) >= nums.n - 1 ORDER BY nums.n;
如果你的条目超过4个,只需要在nums子查询里继续添加UNION ALL SELECT 5这样的语句,或者用生成连续数字的方法来覆盖所有条目。
内容的提问来源于stack exchange,提问作者vizyourdata
相关产品推荐
相关产品推荐

