当前位置: 首页 > article >正文

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

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

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

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

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

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


http://www.kler.cn/a/377147.html

相关文章:

  • Elasticsearch中的常用操作
  • Redis全系列学习基础篇之位图(bitmap)常用命令的解析
  • java8 list map 聚合求和
  • 线性代数求特征值和特征向量的技巧
  • 深基坑结构施工安全在自动化监测不知道怎么布设测点?不知道用什么设备?
  • 论分布式架构设计及其实现
  • CSRF与SSRF
  • DPDK event 驱动开发
  • 本周我都做了啥?(10.25-11.1)
  • 【css】CSS 文本溢出显示省略号
  • 【STM32】INA3221三通道电压电流采集模块,HAL库
  • Linux-计算机网络-探索epoll是同步阻塞的还是异步非阻塞的
  • 将一个文件夹存放到 GitHub 已有仓库
  • 在网卡属性里面更改IP地址后的IP和用ipconfig输出的IP不一致
  • 2-3-4树的层序打印
  • Android R S T U版本如何在下拉栏菜单增加基本截图功能
  • 小北的字节跳动青训营与LangChain系统安装和快速入门学习(持续更新中~~~)
  • 「C/C++」C/C++ 之 变量作用域详解
  • 【D3.js in Action 3 精译_038】4.2 D3 折线图的绘制方法及曲线插值处理
  • 项目一:使用 Spring + SpringMVC + Mybatis + lombok 实现网络五子棋