ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 综合应用 > 如何将二维工作表转换为数据清单

如何将二维工作表转换为数据清单

作者:绿色风 分类: 时间:2022-08-18 浏览:139
楼主
luckydog
Q:如何将二维工作表转换为数据清单?
如下图所示:

 


A:关于二维表格转换为数据清单,前期黄版及各位高手都给出过各种精彩解答,今天咱们就来上演一场各解法荟萃。
首先登场的是技巧法:
   a、先行后列
操作步骤浅析:复制二维表内容,在剪贴板中,将复制内容中的空格,替换为硬回车,"ALT+10"或“Ctrl+Enter”,粘贴完成转换。
来个漂亮的展示吧:

 
   b、先列后行
操作步骤浅析:先将二维表内容进行置换,则问题转换为a,剩余操作相同。
再给个靓镜头:

 


该帖已经同步到
2楼
luckydog
上面有了技巧的精彩开场,接下来看函数解法一展风采:

这里我们介绍两种解法

  一、INDEX解法:
     a、先行后列
  1. =INDEX($A$1:$F$4,INT(ROW(A6)/6),MOD(ROW()-1,6)+1)
b、先列后行
  1. =INDEX($A$1:$F$4,MOD(ROW()-1,4)+1,INT(ROW(A4)/4))
二、OFFSET解法:
     a、先行后列
  1. =OFFSET($A$1,INT((ROW()-1)/6),MOD(ROW()-1,6))
b、先列后行
  1. =OFFSET($A$1,MOD(ROW()-1,4),INT((ROW()-1)/4))
3楼
luckydog
第三位出场的,大家猜猜他是谁?

呵呵,是功能强大的透视表解法。别不多说,来看他的精彩表现吧:

 
4楼
luckydog
怎么样?够精彩吧。别急我们还有压轴的呢,

现在我们将请出VBA解法:
  1. Sub ertoyi()
  2. Dim arr, brr, crr, i As Long, b As Long

  3. arr = Range("a1:f4").Value
  4. ReDim brr(1 To UBound(arr, 1) * UBound(arr, 2), 1 To 1)
  5. For i = 1 To UBound(arr, 1)
  6. For j = 1 To UBound(arr, 2)
  7. brr((i - 1) * UBound(arr, 2) + j, 1) = arr(i, j)
  8. Next
  9. Next

  10. ReDim crr(1 To UBound(arr, 1) * UBound(arr, 2), 1 To 1)
  11. For i = 1 To UBound(arr, 2)
  12. For j = 1 To UBound(arr, 1)
  13. crr((i - 1) * UBound(arr, 1) + j, 1) = arr(j, i)
  14. Next
  15. Next

  16. [l1].Resize(UBound(brr), 1) = brr
  17. [m1].Resize(UBound(crr), 1) = crr

  18. End Sub


怎么样,可谓好戏连连,精彩不断吧。让我们共同期待下一场的到来吧。
5楼
半半瓶醋
法方这么多,学习
6楼
海洋之星
哈哈,学习一下,精华帖
7楼
冰心8549
谢谢分享,学习学习
8楼
JOYARK1958
好东西 我下载来好好学习
9楼
lrlxxqxa
转发分享

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap