excel中怎么把竖排的数据变成多行横排

原文本格式:1 a A1 b B2 c C2 d D3 e E4 f F4 g G希望通过公式,格式变为如下:1 a A b B
1
2 c C d D
2
3 e E
4 f F g G
4
具体就是在第一列重复的情况下,是后来的两列数据以横排的方式排列!谢谢各位大虾啦!!在线等!!
上面的格式错误了,现在以图示例:图1: 图2:
正如图中,从图1 的效果改为图2的效果!!

假定原数据在A列、B列、C列,在D1输入公式
=IF(COUNTIF($A$1:$A1,$A1)=1,IF(COLUMN(A1)<=COUNTIF($A$1:$A$10,$A1)*2,INDIRECT(ADDRESS(IF(COLUMN(A1)>2,ROW(A1)+INT(COLUMN(A1)/2),ROW(A1)),IF(MOD(COLUMN(A1),2)=1,2,3))),""),""),右拉填充,再下拉填充,选定新形成的数据,复制,选择性粘贴,数值,然后删除原B列和C列即可。追问

你的公式是可以实现的,但是其中有个数据是对不上的。在横排的时候,出现了B2 和C3的数据对应了。最后的B列数据,对应的C列数据没有了。。

追答

我检查了一下,公式中有一个错误,请将公式改为
=IF(COUNTIF($A$1:$A1,$A1)=1,IF(COLUMN(A1)2,IF(MOD(COLUMN(A1),2),ROW(A1)+INT(COLUMN(A1)/2),ROW(A1)+INT(COLUMN(A1)/2)-1),ROW(A1)),IF(MOD(COLUMN(A1),2)=1,2,3))),""),"")

追问

看到你后改的就没有问题了。那如果我有N行、5列或者6列的数据的话,需要更改公式中那几个数值?

追答

上面公式适合任意行的情况,但多列需要修改。

追问

多列的话,就6列为例需要更改那几个数值?

追答

包括A列共6列的情况,用以下公式
=IF(COUNTIF($A$1:$A1,$A1)=1,IF(COLUMN(A1)<=COUNTIF($A$1:$A$10,$A1)*5,INDIRECT(ADDRESS(ROW(B1)+INT((COLUMN(B1)-2)/5),COLUMN(B1)-INT((COLUMN(B1)-2)/5)*5)),""),"")

这个公式更通用一些,行数若变化,只将公式中的A10改为An即可;列数变化将公式中的所有数字“5”都改为n-1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-28
可以用数据透视表 再转置 仅适用大量数据
设图一ABC列 插入数据透视表 行标签 B C 列标签A 数值区B值字段设置为 计数(07版的需改为经典格式-右键-数透选项-显示-经典数透格式,去掉汇总行)复制在别处
设公式数值区为1时显示BC ,否则空
复制-选择性黏贴-转置-ok
第2个回答  2012-06-28
设图1中数据在sheet1!A:C中,重新整理的数据在sheet2中,sheet2!B1公式如下:
{=IF(COUNTIF(Sheet1!$A$1:$A$8,$A1)<INT(COLUMN()/2),"",INDEX(Sheet1!$A$1:$C$8,SMALL(IF($A1=Sheet1!$A$1:$A$8,ROW(Sheet1!$A$1:$A$8),9999),INT(COLUMN()/2)),MOD(COLUMN(),2)+2))},公式中{}是按ctrl+shift+enter组合键生成,不要直接输入。
公式可以横拉竖拉直到都是空白本回答被网友采纳
第3个回答  2012-06-28
如果数据不多的话手动改一下吧,数据多的话可能要用到VBA
相似回答