You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel公式将多列非空数据合并至单列?

问题与解决方案

需求示例表格

result
1a1
2b2
3c3
4d4
5e5
66
77
a
b
c
d
e

对应效果图示

输入图片描述

需求说明

需要在C列写入公式,将A:B区域内的所有非空数据按顺序合并到C列作为返回值,此前尝试INDIRECT或INDEX函数未实现多列转单列的效果。

解决方案

方案1:Excel 365/2021及以上版本(推荐)

直接使用TOCOL函数,这是动态数组函数,无需手动下拉填充:
在C1单元格输入:

=TOCOL(A:B,1)

参数1表示忽略空单元格,公式会自动将A、B列所有非空值按从上到下、从左到右的顺序溢出到C列对应单元格,完全匹配需求效果。

方案2:旧版Excel(无动态数组功能)

使用数组公式结合INDEX、SMALL、IF实现,步骤如下:

  1. 在C1单元格输入以下公式,输入完成后按Ctrl+Shift+Enter触发数组公式:
=INDEX($A:$B,SMALL(IF($A:$B<>"",ROW($A:$B)*100+COLUMN($A:$B)),ROW(A1)),MOD(SMALL(IF($A:$B<>"",ROW($A:$B)*100+COLUMN($A:$B)),ROW(A1)),100))
  1. 选中C1单元格,下拉填充直到出现#NUM!错误值,此时已提取完所有非空数据。

公式逻辑:通过IF筛选出A:B区域非空单元格的行号+列号组合(用行号*100+列号避免行列号混淆),再用SMALL按顺序提取这些组合,最后通过INDEX根据行号和列号取出对应单元格的值。


内容的提问来源于stack exchange,提问作者icecream sugar black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:55:16