ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2589|回复: 7

求助: EXCEL单元格数据分列转置

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-3-2 14:48 | 显示全部楼层 |阅读模式

大家好,本人经常需要处理数据如下表所示,左边是原始格式,右边是要的结果,现在都是落后的手动操作,能否帮我做一个自动的宏程序一步完成。 谢谢大家!


1.01.000001
L1,L2,L3
L1
1.01.000001
1.01.000002
J1,J2
L2
1.01.000001
1.01.000003
BD1
L3
1.01.000001
J1
1.01.000002
J2
1.01.000003
BD1
1.01.000003

TA的精华主题

TA的得分主题

发表于 2016-3-8 15:22 | 显示全部楼层
Sub test()
Dim l As Integer
Dim f As Integer
For l = 2 To Range("a65536").End(xlUp).Row
  f = deal(1, l, f)
Next l
End Sub

Function deal(i As Integer, l As Integer, f As Integer) As Integer
Dim e As Integer
arr = Split(Cells(l, 2), ",")
e = UBound(arr) + 1
For i = i To e
    Cells(i + f + 1, 5) = Cells(l, 1)
    Cells(i + f + 1, 4) = arr(i - 1)
Next i
deal = e + f
End Function

看看是你需要的效果不?

2016-03-08_152054.png

test.rar

16.28 KB, 下载次数: 116

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-8 20:32 | 显示全部楼层
coolall 发表于 2016-3-8 15:22
Sub test()
Dim l As Integer
Dim f As Integer

太好了,这正是我要的效果,谢谢COOLALL的帮忙。
另外能否再帮我做一个逆向的转换程序,就是以右边结果的形式转换成左边这种初始的格式(与之前这个分开的独立程序),因为我之前将数据分列转置就是要筛选有用的数据再进行分类合并的。 不胜感激!

TA的精华主题

TA的得分主题

发表于 2016-3-9 13:12 | 显示全部楼层
先用颜色区分实现这个功能吧,逆向的算法有空帮你想想哦。
2016-03-09_113002.png

testv1.0.rar

21.56 KB, 下载次数: 96

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-9 18:44 | 显示全部楼层
coolall 发表于 2016-3-9 13:12
先用颜色区分实现这个功能吧,逆向的算法有空帮你想想哦。

DEAR COOLALL: 谢谢你帮我修改了程序,但增加颜色区分并没有多大意义,可能是我之前表达的不清楚,其实我要的就是如下图的模拟结果:

1.jpg



顺便说一下我的实际应用(可以忽略):一开始时,原始数据中每一行的B列单元格数据如“L1,L2,L3“代表电路板上的3个元件标识,并且L1可能在电路板的上面,L2,L3在板的下面,之前做的程序把B列数据拆分每一个与A列一一对应,目的就是可以用VLOOKUP以元件作搜索来匹配每一个元件到底是上面还是下面(我另外有表格对应元件位置与上、下面关系的),然后得到所有在板的上面的元件一个表和下面的一个表,再用这个逆向的程序分别把这两个表组合回原始的格式。


谢谢!

2.jpg

TA的精华主题

TA的得分主题

发表于 2016-3-9 22:22 | 显示全部楼层
程序有点简陋 。看看是不是这个意思
3.png

testv2.0.rar

20.24 KB, 下载次数: 92

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-18 17:30 | 显示全部楼层
coolall 发表于 2016-3-9 22:22
程序有点简陋 。看看是不是这个意思

不好意思隔了这么久才回复(太忙了),这个程序对了,另外我叫同事帮我轻微修改了一些排序的操作,十分感谢COOLALL的帮忙。

TA的精华主题

TA的得分主题

发表于 2019-6-23 00:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学到了,正好要用到这个,办了大忙了,感谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-26 03:22 , Processed in 0.038533 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表