VBA在低版本Excel中创建unique函数的方法

news/2024/12/26 18:25:32/

       UNIQUE函数通常用来返回列表或范围中的一系列唯一值,也就是过滤掉重复值。我们可以利用 UNIQUE 函数 与 FILTER 函数的组合进行深度筛选,但在Excel2021以上版本才会提供该函数,在低版本的Excel中我们可以使用VBA创建一个自定义函数来模仿高版本Excel的UNIQUE函数的功能。以下是一个简单的VBA函数,它接受一个范围作为参数,返回一个删除了重复值后的数组。

Option Explicit
Function mUnique(rng As Range) As VariantDim dict As ObjectSet dict = CreateObject("Scripting.Dictionary")Dim cell As Range' 遍历范围中的每个单元格For Each cell In rngIf Not dict.Exists(cell.Value) And cell.Value <> "" Thendict.Add cell.Value, NothingEnd IfNext cell' 将字典键(唯一值)存储到数组中mUnique = dict.Keys
End Function

        要使用这个函数,你可以在Excel的VBA编辑器中插入这段代码(通过按下Alt + F11),然后在Excel表中像使用任何其他函数一样使用它。例如,如果你有一个名为"MyRange"的单元格范围,包含了一些可能的重复值,你可以在另一个单元格中使用这样的公式“=mUnique(MyRange)”,这将返回一个下一行并且列数与原范围相同的区域,其中包含了删除重复项后的值。

        由于低版本Excel不支持自动输出数组,所以如果要输出数组,不能直接在一个单元格中输入公式,而应该同时选中多个单元格(水平方向),然后再输入公式并按“Ctrl+Shift+Enter”三键结束,如果不确定数组的值有多少个,可以多选一些单元格,此时可能会输出一部分错误值的单元格,因为数组不支持部分删除,所以要删除错误值必须将所选的数组范围全部清除,然后再按正确的个数来重新选择使用公式的范围,并按照上面的步骤重新输入公式。

        如果要将水平数组变成垂直数组,可以在公式前面加上转置函数transpose,选择输入公式的范围就要按垂直方向选,其他操作方法不变。


http://www.ppmy.cn/news/1543315.html

相关文章

HTML、JavaScript和CSS实现注册页面设计

目录 一、实现要求 二、实现页面图 1、注册页面 2.用户ID、用户名、口令验证成功后显示页面 三、用户ID、用户名、口令、确定口令验证逻辑js代码 1、验证用户ID 2、验证用户名 3、验证口令密码 四、总结 五、代码仓库 一、实现要求 综合使用HTML、JavaScript和CSS进…

uni-app使用movable-area 实现数据的拖拽排序功能

文档地址 template部分 <movable-area :style"getAreaStyle"><movable-view class"table-row" v-for"v,i in move.list":key"v.id":y"v.y"change"handle_moving"direction"vertical"touchst…

Linux 系统性能调优技巧

Linux 是一个强大且灵活的操作系统&#xff0c;广泛应用于服务器、云计算、嵌入式系统以及桌面环境。在高负载和复杂应用环境中&#xff0c;Linux 系统性能调优变得尤为重要。本文将深入介绍 Linux 系统性能调优的基本概念和实践技巧&#xff0c;涵盖 CPU、内存、磁盘 I/O、网络…

BERT,RoBERTa,Ernie的理解

BERT&#xff1a; 全称&#xff1a;Bidirectional Encoder Representations from Transformers。可以理解为 “基于 Transformer 的双向编码器表示”。含义&#xff1a;是一种用于语言表征的预训练模型。它改变了以往传统单向语言模型预训练的方式&#xff0c;能够联合左侧和右…

C/C++中的内存对齐详解

一、内存对齐概述 &#xff08;一&#xff09;内存对齐的定义与重要性 内存对齐在 C/C 中是一种重要的机制&#xff0c;它确保数据在内存中的存储地址满足特定的规则。具体来说&#xff0c;计算机系统对不同的数据类型有合法地址的限制&#xff0c;要求对象的地址必须是特定值…

C++学习:类和对象(二)

一、默认成员函数 1. 什么是默认成员函数&#xff1f; 在C中&#xff0c;每个类都有一些特殊的成员函数&#xff0c;如果程序员没有显式地声明&#xff0c;编译器会自动为类生成这些函数&#xff0c;这些函数称为默认成员函数 2. 默认成员函数列表 默认构造函数&#xff08…

【QT】Qt窗口(下)

个人主页~ Qt窗口&#xff08;下&#xff09;~ Qt窗口 五、对话框2、Qt内置对话框&#xff08;1&#xff09;Message Box&#xff08;2&#xff09;QColorDialog&#xff08;3&#xff09;QFileDialog&#xff08;4&#xff09;QFontDialog&#xff08;5&#xff09;QInputDia…

【JavaEE】【多线程】进阶知识

目录 一、常见的锁策略1.1 悲观锁 vs 乐观锁1.2 重量级锁 vs 轻量级锁1.3 挂起等待锁 vs 自旋锁1.4 普通互斥锁 vs 读写锁1.5 可重入锁 vs 不可重入锁1.6 不公平锁 vs 公平锁 二、synchronized特性2.1 synchronized的锁策略2.2 synchronized加锁过程2.3 其它优化措施 三、CAS3.…