在Excel中,将横向排列的数据转换为纵向排列,首先想到的就是复制,选择性粘贴,转置,但对于比较复杂的转换,这种方法难以解决,有没有通用的又没有局限的方法进行转换?答案是肯定的。
工具/原料
1
电脑
2
excel
方法/步骤
1
如图所示,需要把商品名称对应的型号和数量按行统计,使用转置解决不了。
2
可以用公式解决,在I2输入公式=OFFSET(A$1,SMALL(IF(B$2:G$9='',4^7,ROW(B$1:G$8)),ROW(A1)),)&'',按ctrl+shift+回车,然后下拉到出现空行为止。
3
接着在J2输入公式=OFFSET(A$1,,SMALL(IF(OFFSET(B$1,MATCH(I2,A$2:A$9,),,,6)<>'',COLUMN($A:$F)),COUNTIF(I$2:I2,I2))),按ctrl+shift+回车,然后下拉到与I列对齐。
4
接着在K2单元格输入公式=OFFSET(A$1,MATCH(I2,A$2:A$9,),SMALL(IF(OFFSET(B$1,MATCH(I2,A$2:A$9,),,,6)<>'',COLUMN($A:$F)),COUNTIF(I$2:I2,I2))),按ctrl+shift+回车,然后下拉。
5
上面是用公式把行转换成列,也可用数据透视表解决,先打开数据透视表向导,选择多重合并计算数据区域,点下一步。
6
选择创建单页字段,下一步,接着选择数据区域A1:G9,单添加按钮,再点下一步。
7
在步骤3中选择数据透视表显示位置,如果不新建工作表,就选择一个存放透视表的起始单元格。
8
单击完成,最终结果如图所示,但这并不是我们想要的结果。
9
右键点击最右下角的单元格,在列表中选择显示详细信息,会自动新建一个工作表。
10
这时,想要的结果已经显示出来了,接下来要做的就是删除不需要的内容和空白行就可以了。
注意事项
当然,精通VBA编程的也可以用代码解决。
上一篇:如何将表格的横向变纵向