将横向排列及数据转换为纵向排列及几种方法.docVIP

将横向排列及数据转换为纵向排列及几种方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将横向排列及数据转换为纵向排列及几种方法

将横向排列的数据转换为纵向排列的几种方法 作者:Lijia 文章来源: 点击数:3164 更新时间:2012-12-10 9:22:38 在Excel中将横向排列的数据转换为纵向排列,通常用的方法是复制数据后进行选择性粘贴,同时选择“转置”。但有时无法使用“转置”的功能,例如下图A1:G17区域为某网店部分商品的库存数量,“商品尺寸”是横向排列的,现在需要将这些数据按纵向排列,即将“商品尺寸”及其对应的“货号”、“数量”排列到三列中,如图J至L列所示。 本文介绍用数据透视、数组公式和VBA等三种方法来实现这种转换,以Excel 2010为例。 方法一、用数据透视表 1.利用原始数据建立数据透视表。 按组合键“Alt+D”,再按“P”键,打开“数据透视表和数据透视图向导”对话框,选择“多重合并计算数据区域”,单击“下一步”。 在弹出的对话框中再次单击“下一步”,弹出““数据透视表和数据透视图向导--步骤2b”,选择工作表中的A1:G17区域,单击“添加”按钮。 单击“完成”按钮,Excel会在新工作表中建立数据透视表。 2.通过数据透视表获取明细数据。 右击数据透视表行总计和列总计交叉的单元格,本例为H21,在弹出的快捷菜单中选择“显示详细信息”(也可双击该单元格右下角的填充柄)。 Excel会自动在新工作表中显示该数据透视表数据源的明细数据,如图所示。 3.筛选C列中的非空数据,将A至C列数据复制到所需位置即可。 方法二、用数组公式 假如将转换后的数据放在J至L列,在J2单元格输入数组公式: =OFFSET(A$1,SMALL(IF(B$2:G$17=,4^7,ROW(B$1:G$16)),ROW(A1)),) 公式输入完毕按Ctrl+Shift+Enter结束,下同。然后拖动填充柄向下填充公式,直到公式返回空为止。 在K2输入数组公式: =OFFSET(A$1,,SMALL(IF(OFFSET(B$1,MATCH(J2,A$2:A$17,),,,6),COLUMN($A:$F)),COUNTIF(J$2:J2,J2))) 在L2输入数组公式: =OFFSET(A$1,MATCH(J2,A$2:A$17,),SMALL(IF(OFFSET(B$1,MATCH(J2,A$2:A$17,),,,6),COLUMN($A:$F)),COUNTIF(J$2:J2,J2))) 然后选择K2:L2,双击填充柄将公式填充到这两列的其余单元格。 方法三、用VBA 用下面的VBA代码也可实现上述转换,方法是按Alt+F11,打开VBA编辑器,在代码窗口中粘贴下列代码并运行。 Sub 转换() Dim Arr1, Arr2() Dim Rnum As Integer, Cnum As Integer, Tnum As Integer Dim i As Integer, j As Integer, k As Integer Application.ScreenUpdating = False Rnum = [A65536].End(xlUp).Row Cnum = 7 Tnum = Rnum * Cnum Range(J2:L Tnum).ClearContents Arr1 = Range(A1:G Rnum) ReDim Arr2(1 To Tnum, 1 To 3) For i = 2 To Rnum For j = 2 To Cnum If Arr1(i, j) Then k = k + 1: Arr2(k, 1) = Arr1(i, 1) Arr2(k, 2) = Arr1(1, j) Arr2(k, 3) = Arr1(i, j) End If Next Next Range(J2).Resize(k, UBound(Arr2, 2)) = Arr2 Application.ScreenUpdating = True End Sub 摘自:/Article/exceljichu/201212/961.html 有时需要在Excel中将区域中数据的排列方式进行转换,例如将横向排列的数据转换为纵向排列。对于数据区域转换后只保留第一列为纵向排列,而其他各列则由横向转为纵向排列的情况,可用数据透视表的“多重合并计算数据区域”功能来实

文档评论(0)

liwenhua00 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档