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

如何将Excel同行多列多行单元格逐行对应合并?支持Python实现

方法一:Excel公式实现

在目标单元格(比如C1)输入以下公式,按回车后启用单元格的「自动换行」即可:

=TEXTJOIN(CHAR(10), TRUE, TEXTSPLIT(A1, CHAR(10)) & TEXTSPLIT(B1, CHAR(10)))
  • 原理:用TEXTSPLIT按换行符(CHAR(10))拆分A1、B1的内容为数组,对应位置拼接后,再用TEXTJOIN按换行符合并成多行文本。
  • 行数不一致处理:如果A、B单元格行数不同,若只想匹配到两者的最短行数,可改用以下公式:
=TEXTJOIN(CHAR(10), TRUE, IF(SEQUENCE(MAX(COUNTA(TEXTSPLIT(A1,CHAR(10))),COUNTA(TEXTSPLIT(B1,CHAR(10)))))<=MIN(COUNTA(TEXTSPLIT(A1,CHAR(10))),COUNTA(TEXTSPLIT(B1,CHAR(10)))), TEXTSPLIT(A1,CHAR(10))&TEXTSPLIT(B1,CHAR(10)), ""))
方法二:Python脚本实现

如果Excel公式满足不了复杂场景,用Python结合pandas处理更灵活:

  1. 先安装依赖:
pip install pandas openpyxl
  1. 编写脚本(替换文件路径为你的实际路径):
import pandas as pd

# 读取Excel文件
df = pd.read_excel("your_input_file.xlsx", engine="openpyxl")

def merge_multiline_content(row):
    # 拆分A、B列的多行内容,处理空值
    a_lines = str(row["A"]).split("\n") if pd.notna(row["A"]) else []
    b_lines = str(row["B"]).split("\n") if pd.notna(row["B"]) else []
    # 取最短行数避免索引越界
    match_count = min(len(a_lines), len(b_lines))
    # 对应行拼接
    merged = [a_lines[i] + b_lines[i] for i in range(match_count)]
    return "\n".join(merged)

# 生成合并后的C列
df["C"] = df.apply(merge_multiline_content, axis=1)

# 保存结果到新文件
df.to_excel("merged_output.xlsx", index=False, engine="openpyxl")
  • 说明:脚本会遍历每行数据,拆分A、B列的多行内容后对应拼接,最后保存为新的Excel文件;如果需要处理空值、特殊字符等场景,可在merge_multiline_content函数里调整逻辑。

内容的提问来源于stack exchange,提问作者hindisong.cc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 19:02:45