ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

   
高效办公必会的Office实战技巧 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel函数公式学习大典 Office 365免费试用,报名现在开始! 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 打造核心竞争力的职场宝典 13门Excel免费公开课任你学
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 182|回复: 6

[求助] 想问问如何自动重新排列单元格内容

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-2-12 16:30 | 显示全部楼层 |阅读模式
本帖最后由 kalalaki 于 2018-2-12 16:58 编辑

原始数据
日期时段地点A地点B地点C 地点D
2018/1/2
AMA,BC,D,EF,G,H,I
2018/1/3
AMAB,C,D,EFG,H,I
处理后数据
日期时段地点安排
2018/1/2
AM地点AA
2018/1/2
AM地点AB
2018/1/2
AM地点BC
2018/1/2
AM地点BD
2018/1/2
AM地点BE
2018/1/2
AM地点DF
2018/1/2
AM地点DG
2018/1/2
AM地点DH
2018/1/2
AM地点DI
2018/1/3
AM地点AA
2018/1/3
AM地点BB
2018/1/3
AM地点BC
2018/1/3
AM地点BD
2018/1/3
AM地点BE
2018/1/3
AM地点CF
2018/1/3
AM地点DG
2018/1/3
AM地点DH
2018/1/3
AM地点DI


如图,需处理原始数据,原始数据的ABCD.....等是由相同符号相隔,需整理成上图的结果,
求各位指导一二,已上传附件,谢谢

tmp_处理.zip

7.3 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2018-2-12 16:41 | 显示全部楼层
建议上传Excel表格附件来说明问题。
没有表格附件的求助帖很少能获得满意的回复。

TA的精华主题

TA的得分主题

发表于 2018-2-12 16:47 | 显示全部楼层
如果你有VBA基础,学习split 用法就能解决你的问题了,如果没有VBA基础,请上附件。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-12 17:09 | 显示全部楼层
rivet_nuts 发表于 2018-2-12 16:47
如果你有VBA基础,学习split 用法就能解决你的问题了,如果没有VBA基础,请上附件。

已上传附件,谢谢

TA的精华主题

TA的得分主题

发表于 2018-2-12 17:10 | 显示全部楼层
不是最优解,刚好在学习类,试验一下

工作簿2.rar

16.57 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-12 17:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-2-12 17:41 | 显示全部楼层
Sub test()
    Dim arr, d As Object, n&, t, k, brr(1 To 9000, 1 To 4), v
    [a7].CurrentRegion.Offset(2).Clear
    arr = [a1].CurrentRegion
    Set d = CreateObject("Scripting.Dictionary")
    For i = 3 To UBound(arr)
        d.RemoveAll
        For j = 3 To UBound(arr, 2)
            d(arr(2, j)) = arr(i, j)
        Next
        k = d.keys: t = d.items
        For x = 0 To UBound(k)
            v = Split(t(x), ",")
            For y = 0 To UBound(v)
                n = n + 1
                brr(n, 1) = arr(i, 1): brr(n, 2) = arr(i, 2)
                brr(n, 3) = k(x): brr(n, 4) = v(y)
            Next
        Next
    Next
    Range("A:A").NumberFormatLocal = "yyyy/m/d"
    Range("a9").Resize(n, 4) = brr
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

关注官方微信,每天学会一个新技能

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

GMT+8, 2018-8-20 09:44 , Processed in 0.094826 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Wooffice Inc.

   

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

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

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