您现在的位置是:主页 > 教程 >
如何将Excel工作薄中区域内的值按出现次数提取到同一列的方法
发布时间:2023-10-16 18:46:25所属栏目:教程 已帮助人编辑作者:Excel自学教程
对于Excel工作薄中一个包含重复数值的区域,要将其中的数值按出现次数的多少提取到一列,通常可以用包含MODE函数的数组公式。例如数值区域为A1:E10,要将其中的数值提取到G列,如图。
在G2中输入:
=MODE(IF(COUNTIF($G$1:G1,A$1:E$10)=0,A$1:E$10))
公式输入完毕按Ctrl+Shift+Enter结束,然后拖动填充柄向下填充公式,直到出现“#N/A”为止。
受MODE函数的限制,该公式仅对数值有效,且不能提取只出现一次的数值。要将区域中所有的数据按出现次数提取到一列,可用VBA代码来实现。如将下图A1:E10区域中的文本按出现次数多少提取到G列:
按Alt+F11,打开VBA编辑器,在代码窗口中输入下列代码并运行,即可G列得到按出现次数降序排序的文本,在H列得到对应文本的出现次数。
Sub 按出现次数排序()
Dim d As Object
Dim Arr
Dim i As Integer, j As Integer
Application.ScreenUpdating = False
'提取不重复值并计算出现次数
Set d = CreateObject("Scripting.Dictionary")
Arr = Range("A1:E10")
For i = 1 To UBound(Arr, 1)
For j = 1 To UBound(Arr, 2)
If Not d.Exists(Arr(i, j)) Then
d.Add Arr(i, j), 1
Else
d.Item(Arr(i, j)) = d.Item(Arr(i, j)) + 1
End If
Next
Next
'输出并排序
Range("G2").Resize(d.Count) = Application.Transpose(d.keys)
Range("H2").Resize(d.Count) = Application.Transpose(d.items)
Range("G2:H2").Resize(d.Count).Sort key1:=Range("H2"), Order1:=xlDescending
Set d = Nothing
Application.ScreenUpdating = True
End Sub
说明:如果文本出现的次数相同,将按先行后列的顺序依次提取
以上就是excel自学教程为您提供如何将Excel工作薄中区域内的值按出现次数提取到同一列的方法的解读,本文章链接: http://www.5enet.cn/Excel_jiaocheng/77284.html 欢迎分享转载,更多相关资讯请前往教程
相关文章
企业IT外包服务
excel自动换行显示不全怎么办
excel批量删除超链接
excel 神奇的函数 公式结果就是公式本身
怎么锁定 Excel 表格
excel插入图片的基本方法,以及插入图片之后的编辑对齐,和工作表保护状态插
excel2013中数据透视表添加字段、自定义字段名称、编辑和删除字段
excel 向左查询数据还用vlookup就out了,这两个函数让你的效率提升80%
如何利用Excel的 MAX函数 计算最大值
excel 填充颜色的两种使用,纯色和渐变色填充。以及excel填充颜色的快捷操作
excel中利用IFERROR函数屏蔽Vlookup的匹配错误
excel 不能自动求和的6大原因,并同时针对不同原因给出不同的解决方法来处理
Excel图表的层次[瞒天过海]
excel iseven函数判断偶数应用
Excel VBA MsgBox用法介绍
Subtotal函数的使用方法
扫码关注
- 专注IT行业,10年IT行业经验