Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: HNZZHGY

[已解决]数据按要求重新排列

[复制链接]
 楼主| 发表于 2016-3-22 08:47 | 显示全部楼层
HNZZHGY 发表于 2016-3-21 14:21
老师我再问一下如果原始数据起始在不同的行列,比如在单元格K11起始时如何修改?

老师,只在附件达到要求,如果原始数据换行列就不行了,还有原始数据前还必须是空列或A列才行,
回复

使用道具 举报

 楼主| 发表于 2016-3-22 09:27 | 显示全部楼层
本帖最后由 HNZZHGY 于 2016-3-22 09:40 编辑
HNZZHGY 发表于 2016-3-21 14:21
老师我再问一下如果原始数据起始在不同的行列,比如在单元格K11起始时如何修改?

原来是对原始数据有要求,如果修改成任意的原始数据都行?谢谢老师!

数据排序.zip

16.15 KB, 下载次数: 3

回复

使用道具 举报

 楼主| 发表于 2016-3-23 07:57 | 显示全部楼层
dsmch 发表于 2016-3-21 13:35
原数据模拟有误,与效果不符

老师,看到我上传的付件没有,还要麻烦你再看一下,谢谢了!
回复

使用道具 举报

发表于 2016-3-23 09:21 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, brr, d, i&, j%
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Range("t10:t" & Range("t65536").End(xlUp).Row)
  5. ReDim brr(1 To UBound(arr) - 1, 1 To 1)
  6. For i = 2 To UBound(arr)
  7.     d(arr(i, 1)) = d(arr(i, 1)) & "," & i
  8. Next
  9. For i = 2 To UBound(arr)
  10.     sj = arr(i, 1)
  11.     If sj <> "" And d.exists(sj) Then
  12.         x = Split(Mid(d(sj), 2), ",")
  13.         For j = 0 To UBound(x)
  14.             s = s + 1
  15.             brr(s, 1) = sj
  16.             arr(x(j), 1) = ""
  17.         Next
  18.         If InStr(sj, "-") Then
  19.             y = Split(sj, "-")
  20.             zf = y(1) & "-" & y(0)
  21.         Else
  22.             With CreateObject("vbscript.regexp")
  23.                 .Global = True
  24.                 .Pattern = "[A-Z]\d*"
  25.                 Set m = .Execute(sj): zf = ""
  26.                 For j = m.Count - 1 To 0 Step -1
  27.                     zf = zf & m(j)
  28.                 Next
  29.             End With
  30.         End If
  31.         If d.exists(zf) Then
  32.             y = Split(Mid(d(zf), 2), ",")
  33.             For j = 0 To UBound(y)
  34.                 s = s + 1
  35.                 brr(s, 1) = zf
  36.                 arr(y(j), 1) = ""
  37.             Next
  38.         End If
  39.     End If
  40. Next
  41. Range("v11").Resize(UBound(brr)) = brr
  42. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-3-23 11:34 | 显示全部楼层
已经解决,谢谢dsmch老师!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-9 06:37 , Processed in 0.151312 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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