如何在Excel中将两列文本值动态合并到单个列中
Excel两列文本动态合并解决方案
方案1:Excel 365/2021及以上版本(推荐,支持动态数组)
直接用动态数组公式一键生成,不需要手动下拉填充,自动适配A、B列的数据量:
- 操作方法:点击C列第一个要存放结果的单元格(比如C1),直接输入以下公式后按回车即可
=TOCOL(VSTACK(A:A,B:B),1) - 公式说明:
VSTACK(A:A,B:B):将A列和B列的所有内容垂直拼接成一个数组TOCOL(...,1):把拼接后的数组转换为单列格式,同时自动跳过所有空单元格
- 附加提示:如果A、B列有表头不需要合并到结果中,可把公式中的整列引用替换为实际数据范围,比如
=TOCOL(VSTACK(A2:A1000,B2:B1000),1) - 特性:A、B列内容新增、删除、修改时,C列结果会自动同步更新,无需额外操作。
方案2:Excel 2019及更早低版本
无动态数组支持的版本可以用INDEX+SMALL组合数组公式,需要手动下拉填充:
- 操作方法:点击C1单元格,输入以下公式,按回车后下拉填充到可以容纳A、B列总数据量的行数即可
=IFERROR(INDEX(A:A,SMALL(IF(A:A<>"",ROW(A:A),99999),ROW(A1))),IFERROR(INDEX(B:B,SMALL(IF(B:B<>"",ROW(B:B),99999),ROW(A1)-COUNTA(A:A))),"")) - 注意事项:Excel 2007及更早版本输入完公式后,需要按
Ctrl+Shift+Enter三键组合触发数组计算才能正常返回结果 - 特性:A、B列内容修改后会自动更新,若新增数据超出C列已填充公式的行数,手动下拉扩展C列公式即可。
效果验证
对应你给出的测试示例:
A列取值:car、plane、boat
B列取值:bike、motor
使用以上公式后,C列会自动输出car、plane、boat、bike、motor的完整序列,和预期结果一致。
内容的提问来源于stack exchange,提问作者milan1610
相关产品推荐
相关产品推荐

