ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 求助按指定条件排序时间和数量

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-19 14:35 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 Justin-2016 于 2023-3-19 20:04 编辑

微信图片_20230319151530.png

求助按指定条件排序时间和数量.zip (9.03 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

发表于 2023-3-19 15:12 | 显示全部楼层
为什么日期行下面的有些是数字有些是日期?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-19 15:14 | 显示全部楼层
本帖最后由 Justin-2016 于 2023-3-19 15:18 编辑
微信图片_20230319151530.png 高个子 发表于 2023-3-19 15:12
为什么日期行下面的有些是数字有些是日期?

不好意思!引用错了,都应该是数量,谢谢!

TA的精华主题

TA的得分主题

发表于 2023-3-19 15:33 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-3-19 15:54 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-19 16:13 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-19 16:29 | 显示全部楼层
微信图片_20230319162812.png zxsea_7426 发表于 2023-3-19 15:54
与模似数据对比:

报错提示:字过程函数未定义

TA的精华主题

TA的得分主题

发表于 2023-3-19 16:50 | 显示全部楼层
Sub TEST_A1()
Dim Arr, Brr, xD, D, R, C&, i&
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([i1], [n65536].End(3))
For i = 3 To UBound(Arr)
    D = CLng(Arr(i, 6))
    xD(D) = Trim(xD(D) & " " & i)
Next i
ReDim Brr(1 To UBound(Arr) - 1, 1 To xD.Count)
For C = 1 To xD.Count
    D = Application.Small(xD.keys, C)
    Brr(1, C) = CDate(D)
    For Each R In Split(xD(D), " ")
        Brr(R - 1, C) = Arr(R, 1)
    Next R
Next C
[s2].Resize(UBound(Brr), UBound(Brr, 2)) = Brr
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-19 17:08 | 显示全部楼层
本帖最后由 zxsea_7426 于 2023-3-19 17:09 编辑
Justin-2016 发表于 2023-3-19 16:29
报错提示:字过程函数未定义

image.png


  1. Sub 数据分列()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     With Sheets("sheet1")
  4.         r = .Cells(Rows.Count, "N").End(3).Row
  5.         ar = .Range(.[N2], .Cells(r, "N"))
  6.         br = .Range(.[i2], .Cells(r, "I"))
  7.         For i = 2 To UBound(ar)
  8.             d(ar(i, 1)) = br(i, 1)
  9.         Next i
  10.         '============排序============
  11.         temp = d.keys
  12.         For i = 0 To UBound(temp) - 1
  13.             For j = i + 1 To UBound(temp)
  14.                 If temp(i) > temp(j) Then
  15.                     temp_ = temp(i)
  16.                     temp(i) = temp(j)
  17.                     temp(j) = temp_
  18.                 End If
  19.             Next j
  20.         Next i
  21.         '============排序============
  22.         ReDim arr(1 To UBound(ar), 1 To d.Count)
  23.         For j = 0 To d.Count - 1
  24.             arr(1, j + 1) = temp(j)
  25.             d(temp(j) & "列") = j + 1
  26.         Next j
  27.         For i = 2 To UBound(ar)
  28.             arr(i, d(ar(i, 1) & "列")) = d(ar(i, 1))
  29.         Next i
  30.         .[S2].Resize(UBound(arr), UBound(arr, 2)) = arr
  31.     End With
  32. End Sub
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-20 09:15 | 显示全部楼层
Justin-2016 发表于 2023-3-19 16:13
感谢帮助,倒数第二个 for j 报错了

少抄了一句代码。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-29 20:27 , Processed in 0.042378 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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