修法布施得聪明智慧 , 多分享让生活更美好 。 从海量数据中筛选出不重复值(处理数据经常遇到 , 如笔者经验《Excel数据批量转置(二列转多列)》、《Excel怎样快速根据重复字段合并其它列数据》、《Excel怎样从数据集选r个数据排列组合列表(一)》等也用到) , 如果是行数据可以通过【筛选】中【高级】功能来达到 , 如果是列或单元格区域数据就不能处理 , 下面分享怎样快速列举不重复数据序号、位置和值的处理方法 。 1Excel数据批量转置(二列转多列)
1Excel如何快速按照反复字段归并其它列数据
2Excel如何从数据集选r个数据摆列组合列表(一)
文章插图
需要这些哦
Microsoft Office Excel 2007
Excel VBA
处置方式/
1起首打开Microsoft Office Excel 2007 , 新建文档并保留文件名《Excel如何快速列举不反复数据序号、位置和值 .xlsm》(演示文件 , 下面代码复制到能运行宏的工作簿都可以)如图 。
文章插图
2然后按下快捷键ALT+F11打开VBA(宏)编纂界面 , 然后点菜单栏【插入】下拉中列表中点【模块(M)】如图 。
文章插图
3然后插入了一个模块1 , 在代码框中复制如下代码:
Option Base 1
Sub 选数据列举不反复()
'2020-8-7 22:46:52
Dim myrange As Range, myranges As Range, zhtj(), i As Long, a As Long
Set myranges = Selection
ReDim zhtj(myranges.Count, 2)
i = 0
a = 0
On Error Resume Next
With CreateObject("scripting.dictionary")
For Each myrange In myranges
【Excel怎样快速列举不重复数据序号、位置和值】 a = a + 1
If myrange.Value <> "" Then
i = i + 1
.Add myrange.Value, myrange.Address(RowAbsolute:=False, ColumnAbsolute:=False)
zhtj(i, 1) = i
zhtj(i, 2) = a
If Err.Number <> 0 Then
i = i - 1
If
Err.Clear
If
Next myrange
Set myrange = Application.InputBox(Prompt:="选择提取数据输出一个单位格", Type:=8)
myrange.Resize(1, 4) = Array("序号", "原数据序号", "单位格地址", "不反复数值")
myrange.Offset(1, 0).Resize(i, 2) = zhtj
myrange.Offset(1, 2).Resize(i, 1) = WorksheetFunction.Transpose(.items)
myrange.Offset(1, 3).Resize(i, 1) = WorksheetFunction.Transpose(.keys)
With
Sub
文章插图
4以上操作动态过程如下:
推荐阅读
- Excel表格中,如何利用函数计算工龄
- 怎样开通滴滴出行微信免密支付
- 小红书怎样解绑QQ账号
- 手机怎样自动拦截响一声的陌生电话
- 怎样将手机微博界面设置成英文界面
- 怎样关闭手机淘宝指纹支付功能
- 怎样在wps文字中创建十字箭头标注
- 怎样开启今日头条APP夜间阅读模式
- 怎样查看抖音充值记录
- EXCEL怎么使用SUMIFS多条件求和函数