EXCEL,如何将A列分别对应的B列,而B列又与之对应C列的数据横向排列到CDEFG后面列,如图所示?

如题所述

F3=INDEX(A:A,SMALL(IF(MATCH($A$3:$A$500&"",$A$3:$A$500&"",)=ROW($A$3:$A$500)-2,ROW($A$3:$A$500),65536),ROW(A1)))&""

数组公式,需要同时按CTRL SHIFT 回车键   下拉

G3=VLOOKUP($F3,$A:$C,COLUMN(B1),0)

右拉到H3,然后下拉

I3=INDEX(B:B,SMALL(IF(($A$3:$A$500=$F3)*($B$3:$B$500<>$G3),ROW($A$3:$A$500),65536),1))&""

 数组公式,需要同时按CTRL SHIFT 回车键   下拉

J3=INDEX($C:$C,SMALL(IF(($A$3:$A$500=$F3)*($B$3:$B$500=$I3),ROW($A$3:$A$500),65536),COLUMN((A1))))

数组公式,需要同时按CTRL SHIFT 回车键   右拉,下拉

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-22

如图公式如下,

F3=INDEX(A:A,MATCH(F2,A:A,0)+COUNTIF(A:A,F2)),下拉填充

G3=IF(COLUMN(G3)-COLUMN($F3)<COUNTIF($A:$A,$F3)*2,INDEX($B:$B,MATCH($F3,$A:$A,0)+INT(COLUMN(G3)-COLUMN($G3))/2),"")

H3=IF(COLUMN(G3)-COLUMN($F3)<COUNTIF($A:$A,$F3)*2,INDEX($C:$C,MATCH($F3,$A:$A,0)+INT(COLUMN(G3)-COLUMN($G3))/2),"")

同时选中G3和H3,然后右拉填充到没有数据为止

所有的列下拉填充

第2个回答  2020-04-22

用VBA处理,但需要时间编程

你可参考下面步骤处理

Excel数据批量转置(二列转多列)

中万能式转换(二列转多列)

要3步处理

1、成品和生产线转换

2、成品和日期转换

3、手动插入列复制列删除修改到你的形式

第3个回答  2020-04-22
数据透视和函数都应该能解决这个问题,前者效率要远高于后者。
这两种方法我都不会。
用vba实现,是最快的且不会出现后期卡顿。可以私信
第4个回答  2020-04-22
加个辅助列轻松搞定,把问题作为内容(邮件主题一定要包含“excel”,本人以此为依据辨别非垃圾邮件,以免误删),excel样表文件(尽量详细说明现状和目标效果)作为附件发到[email protected]帮你看下
相似回答