ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于文本数组的统计和排序,感谢帮忙!!!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-15 16:14 | 显示全部楼层 |阅读模式
从A1-AB1中统计得到数字排序并显示次数,相同次数的数字则按照从小到大排序,数字在前统计的次数在后,例如出现次数相同的(都出现25次):5、1、9则AC1排序是1(25) 5(25) 9(25)............................. 新建 zip Archive.zip (25.97 KB, 下载次数: 15)

TA的精华主题

TA的得分主题

发表于 2024-10-15 16:42 | 显示全部楼层
=TEXT(SUM((ROUND(IFERROR(MOD(LARGE(COUNTIF($A1:$AB1,"*"&ROW($1:$10)-1&"*")/1%+1/ROW($1:$10),COLUMN(A1)),10^{4,0})^{1,-1},1)-{0,1},))/10^{2,-2}),"0(00)")

TA的精华主题

TA的得分主题

发表于 2024-10-15 16:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
供参考


  1. Sub 整合()
  2.     Dim dataRange As Range
  3.     Set dataRange = Range("A1:AB1")
  4.     Dim dict As Object
  5.     Set dict = CreateObject("Scripting.Dictionary")
  6.     Dim cell As Range
  7.     For Each cell In dataRange
  8.         If IsNumeric(cell.Value) Then
  9.             If dict.exists(cell.Value) Then
  10.                 dict(cell.Value) = dict(cell.Value) + 1
  11.             Else
  12.                 dict.Add cell.Value, 1
  13.             End If
  14.         End If
  15.     Next cell
  16.     Dim keys() As Variant
  17.     keys = dict.keys
  18.     Dim values() As Variant
  19.     values = dict.items
  20.     Dim i As Long, j As Long
  21.     Dim tempKey As Variant
  22.     Dim tempValue As Long
  23.     For i = LBound(keys) To UBound(keys) - 1
  24.         For j = i + 1 To UBound(keys)
  25.             If values(i) < values(j) Or (values(i) = values(j) And keys(i) > keys(j)) Then
  26.                 tempKey = keys(i)
  27.                 keys(i) = keys(j)
  28.                 keys(j) = tempKey
  29.                 tempValue = values(i)
  30.                 values(i) = values(j)
  31.                 values(j) = tempValue
  32.             End If
  33.         Next j
  34.     Next i
  35.     Dim outputStr As String
  36.     For i = LBound(keys) To UBound(keys)
  37.         outputStr = outputStr & keys(i) & "(" & values(i) & ") "
  38.     Next i
  39.     Range("AC1").Value = outputStr
  40. End Sub
复制代码



image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-15 16:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我走我流 发表于 2024-10-15 16:42
=TEXT(SUM((ROUND(IFERROR(MOD(LARGE(COUNTIF($A1:$AB1,"*"&ROW($1:$10)-1&"*")/1%+1/ROW($1:$10),COLUMN(A ...

依次统计出10个数字的次数,例如1(25) 5(25) 9(25) 3(22) 4(22) 7(22) 2(21) 6(21) 8(21) 0(20)
image.png

TA的精华主题

TA的得分主题

发表于 2024-10-15 17:03 | 显示全部楼层
=TEXTJOIN(" ",,TEXT(MOD(LARGE(COUNTIF(A1:AB1,"*"&ROW($1:$10)-1&"*")*10^6+(11-ROW($1:$10))*10^4+(ROW($1:$10)-1)*10^2+COUNTIF(A1:AB1,"*"&ROW($1:$10)-1&"*"),ROW($1:$10)),10^4),"0(00)"))

TA的精华主题

TA的得分主题

发表于 2024-10-15 17:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =LET(a,TOCOL(REGEXP(CONCAT(A1:AB1),".")),b,SORT(GROUPBY(a,a,COUNTA,,0),2,-1),TOROW(INDEX(b,,1)&"("&INDEX(b,,2)&")"))
复制代码


image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-15 17:09 | 显示全部楼层
solextrade 发表于 2024-10-15 17:03
=TEXTJOIN(" ",,TEXT(MOD(LARGE(COUNTIF(A1:AB1,"*"&ROW($1:$10)-1&"*")*10^6+(11-ROW($1:$10))*10^4+(ROW( ...

大哥就是牛,感谢大哥无私的帮助

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-15 17:16 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-10-15 17:47 | 显示全部楼层
  1. =LET(k,COLUMN(A:J)-1,p,CONCAT(A1:AB1),s,LEN(p)-LEN(SUBSTITUTE(p,k,"")),SORTBY(k&"("&s&")",s,-1))
复制代码
图.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 03:05 , Processed in 0.035724 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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