Excel : 基于一列复制多列到行

Excel : Copy muitple columns to rows based on one column

我正在寻找最有效的方法来将信息从三列转移到一行,并根据公司名称并排排列。 考虑以下示例:

  1. 我有一个 226k 的数据列表,其中包含多个客户(大约 30-40k)的产品详细信息。
  2. 一个客户可以拥有 2 到 50 个产品,每个产品都有一个序列号和一个产品编号。查看源数据图片

要求输出:每个客户一行将所有产品数据、序列号和产品编号并排显示。

源数据

期望的输出

我从来没有用过宏。有人可以帮我找到解决这个问题的最佳方法吗?

这个非常棘手,您需要使用列号来调整公式:

F 列中的客户列表必须手动输入,或者如果您有 Excel 365,您可能会受益于 UNIQUE Function。我手动做的。

我在单元格 G2 中的公式 是一个数组公式(必须按 SHIFT+CTRL[=35 输入=]+ENTER 否则无效!

=IFERROR(INDEX(SI($D:$D=$F2;CHOOSE(COLUMN()-6-INTEGER((COLUMN()-7)/3)*3;$A:$A;$B:$B;$C:$C);"");MATCH($F2;$D:$D;0)+INTEGER((COLUMN()-7)/3));"")

向右拖动,然后向下拖动。

我的公式使用值 6 和 7,因为我的数据从 G 列开始,这意味着第 7 列。因此,如果您将其放在其他地方,请确保将 7 和 6 的值也更改为正确的值!

无论如何,我已经将示例上传到 Gdrive,以防你想自己检查公式。

https://docs.google.com/spreadsheets/d/1TvNUVt0ArzyFK_jsRtZfX1ja2zUgSdhR/edit?usp=sharing&ouid=114417674018837700466&rtpof=true&sd=true