如何创建可拖动公式 合并行列交替分布数据为单列

Excel两列交替合并为单列可下拉填充方案
你之前用OFFSET、VLOOKUP下拉跳行,核心问题是没有做奇偶行判断、原数据行号的递增步长设错了,下面给两种可直接用的方法,按需选择:
全版本通用公式(新手友好,直接下拉)
在你要输出结果的起始单元格(比如你提到的F3)输入以下公式,输入完成后直接向下拖动单元格右下角的填充柄即可,不会出现跳行问题:
=IF(MOD(ROW(A1),2)=1,INDEX($A:$A,INT(ROW(A2)/2)+2),INDEX($B:$B,INT(ROW(A2)/2)+2))
参数调整规则:
- 如果你的x1数据在A列、x2数据在B列,第一组x1/x2数据从第3行开始,公式可直接使用无需修改
- 如果数据起始行不是第3行,把公式末尾的
+2替换为「第一组数据的行号-1」即可,比如数据从第2行开始就改为+1 - 如果x1、x2不在A/B列,把公式里的
$A:$A、$B:$B替换为你实际的列引用即可 - 注意列标前要加
$做绝对引用,避免下拉的时候列跟着偏移
公式逻辑:通过MOD(ROW(A1),2)判断当前输出行是奇数行还是偶数行,奇数行取x1列对应值,偶数行取x2列对应值;用INT(ROW(A2)/2)控制原数据行号的递增节奏,每下拉2行原数据行号才+1,刚好匹配你要的x1、x2交替排列的需求。
365/2021及以上新版本Excel简化方案
如果你用的是支持动态数组的Excel版本,不需要手动拖动填充,在起始单元格输入公式后会自动生成所有结果:
=TOCOL(A3:B100,0,TRUE)
把公式里的A3:B100替换为你实际的x1、x2数据范围即可,TOCOL函数会按行逐行读取两列内容,直接输出x1、x2交替排列的单列。
小提示:输入公式前先清空输出列的多余内容,避免出现值覆盖报错;如果填充时出现#REF!错误,优先检查引用范围的绝对引用设置是否正确。
内容的提问来源于stack exchange,提问作者rogk
相关产品推荐
相关产品推荐

