ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-6-17 00:19 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
人员出现次数    求助代码

文件.zip

7.87 KB, 下载次数: 14

TA的精华主题

TA的得分主题

发表于 2024-6-17 07:11 | 显示全部楼层
函数更为简单一些,,
=SORT(HSTACK(UNIQUE(TOCOL(B1:K2,1)),COUNTIF(B1:K2,UNIQUE(TOCOL(B1:K2,1)))),2,-1)
image.png

TA的精华主题

TA的得分主题

发表于 2024-6-17 07:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-6-17 07:27 | 显示全部楼层
字典基础操作...

文件.rar

19.2 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2024-6-17 07:29 | 显示全部楼层
参与一下。。。。
image.png
image.png

文件.zip

19.01 KB, 下载次数: 6

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-17 07:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
字典经典用法之一

附件供参考。。。

文件.zip

18.64 KB, 下载次数: 7

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-17 07:32 | 显示全部楼层
参与一下。。。

  1. Sub ykcbf()  '//2024.6.17
  2.     Set d = CreateObject("Scripting.Dictionary")
  3.     arr = Sheets("Sheet1").[b1:k2]
  4.     ReDim brr(1 To 1000, 1 To 2)
  5.     For Each k In arr
  6.         If k <> Empty Then d(k) = d(k) + 1
  7.     Next
  8.     With Sheets("Sheet12")
  9.         .UsedRange = ""
  10.         .[b1].Resize(d.Count, 2) = WorksheetFunction.Transpose(Array(d.keys, d.items))
  11.         .[b1].Resize(d.Count, 2).Sort .[b1], 1
  12.     End With
  13.     MsgBox "OK!"
  14. End Sub
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-17 07:59 | 显示全部楼层
学习一下字典,打扰了
Sub test()
arr = Sheet1.[b1].CurrentRegion
Set d = CreateObject("scripting.dictionary")
For i = 1 To UBound(arr)
   For j = 1 To UBound(arr, 2)
      If arr(i, j) <> "" Then
         d(arr(i, j)) = d(arr(i, j)) + 1
      End If
   Next
Next
brr = Application.WorksheetFunction.Transpose(Array(d.keys, d.items))
For i = 1 To UBound(brr)
   For j = i + 1 To UBound(brr)
      If brr(i, 2) < brr(j, 2) Then
         temp = brr(i, 1): temp1 = brr(i, 2)
         brr(i, 1) = brr(j, 1): brr(i, 2) = brr(j, 2)
         brr(j, 1) = temp: brr(j, 2) = temp1
      End If
   Next
Next
Sheet2.[b1].Resize(UBound(brr), 2) = brr
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-17 09:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-6-17 09:15 | 显示全部楼层
  1. Sub 测试()
  2.     Dim i%, j%, arr, brr
  3.     Dim dic As Object, key, keys
  4.     Set dic = CreateObject("scripting.dictionary")
  5.     arr = Sheet1.Range("A1").CurrentRegion
  6.     For i = 1 To UBound(arr)
  7.         For j = 1 To UBound(arr, 2)
  8.             If arr(i, j) <> "" Then
  9.                 key = arr(i, j)
  10.                 dic(key) = dic(key) + 1
  11.             End If
  12.         Next
  13.     Next
  14.     keys = dic.keys
  15.     ReDim brr(1 To dic.Count, 1 To 2)
  16.     For i = 1 To dic.Count
  17.         brr(i, 1) = keys(i - 1)
  18.         brr(i, 2) = dic.items()(i - 1)
  19.     Next
  20.     Sheets("sheet12").Range("B1").Resize(dic.Count, 2) = brr
  21. End Sub
复制代码

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-9-27 22:48 , Processed in 0.045946 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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