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

如何在Excel中将两列合并为单列并重复其余列对应数据?

原始数据

Name1Name2Numberaddressarrival_timechecked_NLP
Abcbcd111AA00:10:10yes
cdeabc222BB00:10:05yes
bcddef333CC00:10:15NO

目标格式

NameNumberaddressarrival_timechecked_NLP
abc111AA00:10:10yes
bcd111AA00:10:10yes
abc222BB00:10:05yes
cde222BB00:10:05yes
bcd333CC00:10:15NO
def333CC00:10:15NO

方法1:Power Query(推荐,高效可复用)

这是Excel自带的批量数据处理工具,操作步骤如下:

  1. 选中原始数据区域,点击数据选项卡 → 从表格/区域(确认勾选“我的表格有标题”)。
  2. 在Power Query编辑器中,选中Name1和Name2列,右键选择逆透视列 → 仅逆透视所选列。
  3. 删除自动生成的属性列,将值列重命名为Name。
  4. 点击主页 → 关闭并上载,结果会自动输出到新工作表,其他列数据会自动对应重复。

方法2:公式手动生成

适合快速小批量处理:
假设原始数据在Sheet1的A1:F4区域,在新工作表(如Sheet2)中:

  • A2单元格输入公式,下拉到A7:
    =INDEX(Sheet1!$A:$B,INT((ROW()-2)/2)+2,MOD(ROW()-2,2)+1)
    
  • B2单元格输入公式,向右填充到E2,再整体下拉到E7:
    =INDEX(Sheet1!$C:$F,INT((ROW()-2)/2)+2,COLUMN()-1)
    

注:若结果起始行不是第2行,需调整公式中ROW()-2的数值。

方法3:VBA宏(适合重复批量处理)

如果需要频繁处理这类数据,可使用宏实现自动化:

  1. 按Alt+F11打开VBA编辑器,插入新模块。
  2. 粘贴以下代码:
Sub SplitNames()
    Dim srcSheet As Worksheet, destSheet As Worksheet
    Dim lastRow As Long, i As Long, destRow As Long
    
    Set srcSheet = ThisWorkbook.Sheets("Sheet1") ' 替换为原始数据工作表名称
    Set destSheet = ThisWorkbook.Sheets.Add
    
    ' 写入表头
    destSheet.Range("A1:E1") = Array("Name", "Number", "address", "arrival_time", "checked_NLP")
    destRow = 2
    
    lastRow = srcSheet.Cells(srcSheet.Rows.Count, "A").End(xlUp).Row
    
    For i = 2 To lastRow
        ' 写入Name1对应行
        destSheet.Cells(destRow, 1) = srcSheet.Cells(i, 1)
        destSheet.Cells(destRow, 2) = srcSheet.Cells(i, 3)
        destSheet.Cells(destRow, 3) = srcSheet.Cells(i, 4)
        destSheet.Cells(destRow, 4) = srcSheet.Cells(i, 5)
        destSheet.Cells(destRow, 5) = srcSheet.Cells(i, 6)
        destRow = destRow + 1
        
        ' 写入Name2对应行
        destSheet.Cells(destRow, 1) = srcSheet.Cells(i, 2)
        destSheet.Cells(destRow, 2) = srcSheet.Cells(i, 3)
        destSheet.Cells(destRow, 3) = srcSheet.Cells(i, 4)
        destSheet.Cells(destRow, 4) = srcSheet.Cells(i, 5)
        destSheet.Cells(destRow, 5) = srcSheet.Cells(i, 6)
        destRow = destRow + 1
    Next i
End Sub
  1. 修改代码中Sheet1为你的原始工作表名称,运行宏即可生成目标数据。

内容的提问来源于stack exchange,提问作者nizam uddin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:40:05