在 Excel 中对数据进行分组和转置

Group and transpose data in Excel

提问人:sabre 提问时间:10/27/2023 最后编辑:Mayukh Bhattacharyasabre 更新时间:10/29/2023 访问量:69

问:

首先,我很抱歉在答案中发布这个问题。

至于这个问题,我有一个 Excel 数据,我需要将列转置为行。

excel data

我需要将 A 列中的相同数据与 B 列和 C 列中的相应数据分组。我需要包含这些数据的新表:

(row1) 0041001000053, 2006.10.17, 12, 2007.05.15, 12, 2018.07.15‚  12
(row2) 0041001000061, 2006.10.17, 12 
(row3) 0041001000126, 2006.12.18, 6, 2007.12.18, 6

是否可以在不使用 Power Query 的情况下以这种方式提取它?

我尝试使用 Pivot,但数据集太大(超过 50k 个条目)。简单的转置也不起作用,因为我需要在第 1 行中的唯一条目和其他行中的特定条目。

Excel excel-公式 转置

评论


答:

0赞 Harun24hr 10/27/2023 #1

使用 Microsoft-365 excel,您可以利用功能。尝试-REDUCE()

=HSTACK(UNIQUE(A2:A6),DROP(REDUCE("",UNIQUE(A2:A6),LAMBDA(a,x,IFERROR(VSTACK(a,TOROW(FILTER(B2:C6,A2:A6=x))),""))),1))

enter image description here

评论

0赞 sabre 10/27/2023
非常感谢你,Harun。但是我在工作中使用 Excel 2013,并且收到消息说该函数无效。您有其他解决方案吗?
0赞 Solar Mike 10/27/2023
@Sabre所以做一个 ID 列表并排序,然后使用逻辑测试将重复项替换为空白,然后进行另一次排序,最终会得到一个唯一的列表......采取一些步骤...
0赞 sabre 10/27/2023
谢谢你,迈克。这似乎可以解决问题。问候。
0赞 Black cat 10/29/2023 #2

这两个公式适用于较旧的 Excel 版本。

在单元格 D2 和 E2 中

=IF($A2=$A1,"",IF($A2=OFFSET($A2,COLUMN(D2)-3-(COLUMN(D2)-COLUMN($D2))/2,0),OFFSET($A2,COLUMN(D2)-3-(COLUMN(D2)-COLUMN($D2))/2,1),""))

=IF($A2=$A1,"",IF($A2=OFFSET($A2,COLUMN(D2)-3-(COLUMN(D2)-COLUMN($D2))/2,0),OFFSET($A2,COLUMN(D2)-3-(COLUMN(E2)-COLUMN($E2))/2,2),""))

然后根据需要将两个单元格(一起)向右复制。

然后向下复制该行(填充的 D2 到 D 端)。

然后,在数据列 A 上设置唯一筛选器。

测试结果:(从第 35 行开始)enter image description here