技术问询:如何实现将每个值合并至单列显示?附效果对比图
实现多列值合并至单列的解决方案
下面针对不同常用工具,给出具体实现方法:
Excel 实现方式
方法1:TEXTJOIN 函数(Excel 2019+)
假设目标数据分布在A1:C4区域,在空白单元格输入以下公式,即可将所有非空值合并为单列(以逗号加空格分隔):
=TEXTJOIN(", ", TRUE, A1:C4)
- 参数说明:
", "是值之间的分隔符;TRUE表示忽略空值;A1:C4为需要合并的目标数据区域。 - 若需要换行分隔,将分隔符替换为
CHAR(10),并开启单元格「自动换行」。
方法2:Power Query 工具(更适合大量数据)
- 选中数据区域,点击「数据」选项卡 → 「从表格/区域」(若提示转换为表格,确认即可)
- 在Power Query编辑器中,选中所有需要合并的列,点击「转换」选项卡 → 「逆透视列」→ 「逆透视其他列」
- 删除自动生成的「属性」列,仅保留「值」列,最后点击「关闭并上载」,即可得到合并后的单列数据。
Python Pandas 实现方式
假设你的数据存储在名为df的DataFrame中,执行以下代码即可将所有列的值合并为单列并去除空值:
import pandas as pd # 堆叠所有列的值为单列,自动忽略空值 merged_single_col = df.stack().reset_index(drop=True) # 转换为DataFrame格式(可选) result_df = pd.DataFrame(merged_single_col, columns=["合并后的值"])
SQL 实现方式(以MySQL为例)
假设数据表名为your_table,需要合并的列为col1、col2、col3,执行以下SQL语句可提取所有非空值合并为单列:
SELECT col1 AS merged_value FROM your_table WHERE col1 IS NOT NULL UNION ALL SELECT col2 AS merged_value FROM your_table WHERE col2 IS NOT NULL UNION ALL SELECT col3 AS merged_value FROM your_table WHERE col3 IS NOT NULL;
- 使用
UNION ALL会保留所有重复值;若需去重,替换为UNION即可。
内容的提问来源于stack exchange,提问作者Jeff WU
相关产品推荐
相关产品推荐

