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

Excel多行转多列:将同InvoiceNo交易商品合并至同一行

嘿,我完全懂你想要把同一发票号下的所有商品合并到一行的需求——数据透视表确实搞不定这个场景,给你两个靠谱的方案,一个用Excel自带功能,另一个用Python快速处理你的大数据集(毕竟54万条记录,Excel函数可能有点卡):

方案1:Excel内置函数组合(适合小到中等数据集)

如果你的Excel是365/2021及以上版本,用UNIQUE+TEXTJOIN就能快速搞定:

  • 第一步:先提取唯一发票号列表。在空白单元格(比如新工作表的A2)输入=UNIQUE(原数据!$A$2:$A$540381),回车后会自动生成所有不重复的InvoiceNo。
  • 第二步:合并对应商品。在B2单元格输入:
    =TEXTJOIN("、", TRUE, IF(原数据!$A$2:$A$540381=A2, 原数据!$B$2:$B$540381, ""))
    
    这里的参数解释:
    • "、"是你想要的分隔符,换成逗号也可以
    • TRUE表示忽略空值,避免出现多余分隔符
    • IF函数用来匹配当前发票号对应的所有商品描述
  • 第三步:下拉B列公式,所有发票号对应的合并商品列表就出来了。

注:如果是Excel 2019及更早版本,这个是数组公式,输入完需要按Ctrl+Shift+Enter才能生效。

方案2:Python Pandas处理(适合大数据集,效率更高)

面对54万条记录,Excel函数可能会卡顿,用Pandas处理速度会快很多:

  1. 先安装依赖(如果没装的话,在命令行输入pip install pandas openpyxl)
  2. 编写代码:
import pandas as pd

# 读取你的Excel数据,替换成你的文件路径和工作表名
df = pd.read_excel("你的购物篮数据.xlsx", sheet_name="Sheet1")

# 按InvoiceNo分组,合并商品描述,用中文顿号分隔
merged_result = df.groupby("InvoiceNo")["Description"].agg("、".join).reset_index()

# 把结果保存到新的Excel文件
merged_result.to_excel("合并后的购物篮数据.xlsx", index=False)

运行完代码,你就能得到一个新Excel文件,里面就是每个发票号对应一行、商品用分隔符连起来的格式,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:04:16