作者:绿色风
分类:
时间:2022-08-18
浏览:139
楼主 luckydog |
Q:如何将二维工作表转换为数据清单? 如下图所示:
A:关于二维表格转换为数据清单,前期黄版及各位高手都给出过各种精彩解答,今天咱们就来上演一场各解法荟萃。 首先登场的是技巧法: a、先行后列 操作步骤浅析:复制二维表内容,在剪贴板中,将复制内容中的空格,替换为硬回车,"ALT+10"或“Ctrl+Enter”,粘贴完成转换。 来个漂亮的展示吧:
b、先列后行 操作步骤浅析:先将二维表内容进行置换,则问题转换为a,剩余操作相同。 再给个靓镜头:
该帖已经同步到 |
2楼 luckydog |
上面有了技巧的精彩开场,接下来看函数解法一展风采:
这里我们介绍两种解法
一、INDEX解法: a、先行后列- =INDEX($A$1:$F$4,INT(ROW(A6)/6),MOD(ROW()-1,6)+1)
b、先列后行- =INDEX($A$1:$F$4,MOD(ROW()-1,4)+1,INT(ROW(A4)/4))
二、OFFSET解法: a、先行后列- =OFFSET($A$1,INT((ROW()-1)/6),MOD(ROW()-1,6))
b、先列后行- =OFFSET($A$1,MOD(ROW()-1,4),INT((ROW()-1)/4))
|
3楼 luckydog |
第三位出场的,大家猜猜他是谁?
呵呵,是功能强大的透视表解法。别不多说,来看他的精彩表现吧:
|
4楼 luckydog |
怎么样?够精彩吧。别急我们还有压轴的呢,
现在我们将请出VBA解法:- Sub ertoyi()
- Dim arr, brr, crr, i As Long, b As Long
- arr = Range("a1:f4").Value
- ReDim brr(1 To UBound(arr, 1) * UBound(arr, 2), 1 To 1)
- For i = 1 To UBound(arr, 1)
- For j = 1 To UBound(arr, 2)
- brr((i - 1) * UBound(arr, 2) + j, 1) = arr(i, j)
- Next
- Next
- ReDim crr(1 To UBound(arr, 1) * UBound(arr, 2), 1 To 1)
- For i = 1 To UBound(arr, 2)
- For j = 1 To UBound(arr, 1)
- crr((i - 1) * UBound(arr, 1) + j, 1) = arr(j, i)
- Next
- Next
- [l1].Resize(UBound(brr), 1) = brr
- [m1].Resize(UBound(crr), 1) = crr
- 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总版主之一