excel查重技巧:如何用组合函数快速统计重复数据(下)

news2025/1/12 8:46:23

数据源照旧,如下图所示,要求统计出不重复的客户数:

在上期我们掌握了破解公式的方法后,今天我们再来看看计算不重复数据个数的第二个公式套路。

套路2:COUNT和MATCH的组合

这个公式的难度就稍微有点大了,一起看看操作过程。

这个公式是数组公式,完成输入后记得按CTRL+SHIFT+回车键,公式两边会自动出现大括号。

公式=COUNT(1/(MATCH(B2:B23,B2:B23,0)=ROW(1:22)))用到了三个函数,COUNT、MATCH和ROW,不管操作还是原理,这个公式都要难于第一个公式。

那么为什么还要介绍这个公式呢?

这是因为在这个公式中,用到的一些思路和方法,会在很多强大的公式中反复遇到的,因此理解第二个套路,有助于提升公式运用的能力。

言归正传,还是用公式求值来破解这个公式的原理吧。

从图中可以看出,首先计算的是MATCH这部分,关于这个函数,之前有详细的教程介绍《MATCH:函数哲学家,找巨人做伴。新出道必学!》,建议先去搞清楚函数的基本功能。

简单来说MATCH有三个参数,查找值、查找区域和查找方式,公式得到的是查找值在查找区域内首次出现的位置,点一下求值就能看到结果。

还是看客户42337,一共出现了五次,MATCH函数得到的结果都是1,说明这个客户首次出现的位置是1。

要强调一下,这个1是查找范围中的位置,我们的查找范围是从第二行开始的。

对于MATCH得到的这一组数据,一定要理解其含义。继续点求值可以得到ROW这部分的结果。

ROW可以得到参数对应的行号,例如ROW(A1),结果就是1,而ROW(1:22),得到的就是前22行的行号,也就是1到22这一组数字。

注意公式MATCH(B2:B23,B2:B23,0)=ROW(1:22)中的范围是不同的,MATCH是2到23行,实际是22行数据,而ROW的范围是以实际数据的行数为依据的。

继续点求值,公式会判断MATCH得到的这一组数据与ROW得到的这一组数据是否一致,结果是一组逻辑值。

从结果可以发现,每个客户首次出现的位置,公式结果就是TRUE。

这里有必要普及一下逻辑值的知识了。

在Excel中有六个比较的符号,=(等于)、>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、<>(不等于),本例中用的是等于。

比较的结果就是逻辑值,逻辑值有两个,分别是TRUE和FALSE,TRUE表示结果正确,FALSE表示结果不正确。

例如1>2,这个比较的结果就是FALSE。

逻辑值在和数字进行加减乘除等运算时,TRUE相当于1,FALSE相当于0。

在这一步计算中,就是用数字1和这一组逻辑值进行计算,当分母为TRUE时,1/1得到1;当分母为FALSE时,1/0会得到错误值,分母为零。

点求值就能看到这个结果。

如果理解了以上原理,最后的结果就很好理解。

因为COUNT只做一件事,统计有几个数字。在这一组结果中,只有五个1是数字,因此最终的结果就是5。

很多时候,1/都用0/代替了,也许这是高手们的一种习惯吧。

当你真正的懂得了公式原理之后,1/和0/将不会再是造成你困扰的原因。

对第二个公式的原理就分析到这了,在这个公式中,用到了很多高级公式常用的技能,例如使用ROW得到一个数组,使用各种比较运算得到一组逻辑值,进而通过对逻辑值的计算得到一些错误值(错误值并不是一点用都没有哦)。而使用0/还是1/,除了一部分特殊情况之外,大多数情况是没有区别的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/145952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Word控件Spire.Doc 【Table】教程(3):如何在C#、VB.NET中设置Word表格样式

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

聊聊帮助别人这件事--爱摸鱼的美工(12)

年近了&#xff0c;上班途中依然匆忙 看女孩子们渐渐开始倒腾 做了新发型&#xff0c;做了美美的指甲 换上了新衣服&#xff0c;买了新包 电话里讨论着 去哪里过年&#xff0c;买什么年货 好像以前的我也这样 今年挣得少了&#xff0c;不想添新衣&#xff08;不能&#xff09; …

基于QWidget和QImage的水印添加实现

目录 1. 基于QWidget的屏幕阅读水印的添加 1.1 平铺 1.1.1 核心代码 1.1.2 构造函数中设置透明度和鼠标穿透 1.1.3 调用 1.1.4 效果展示 1.2 指定位置添加水印 1.2.1 核心代码 1.2.2 设置水印透明度和鼠标穿透 1.2.3 调用 1.2.4 效果展示 2、基于QImage的屏幕水印的…

QT 学习笔记(十四)

文章目录一、TCP/IP 通信过程简介1. Socket 通信2. Linux 下的 TCP/IP 通信过程3. QT 下的 TCP/IP 通信过程3.1 在 QT 中实现 TCP/IP 服务器端通信的流程3.2 客户端通信流程二、TCP/IP 通信过程操作实现1. 服务器端2. 客户端三、服务器端和客户端实现代码1. 主函数 main.c2. 服…

重装系统重新分区方法教程

对电脑进行系统重装以后&#xff0c;若是想电脑使用起来更稳定舒适&#xff0c;就要对电脑硬盘进行系统分区&#xff0c;但是许多用户都不知道怎样分区&#xff0c;今天小编就来为大家详细介绍一下重装系统重新分区方法教程。 工具/原料&#xff1a; 系统版本&#xff1a;win1…

11 个非常实用的 Python 和 Shell 拿来就用脚本实例!

我工作中用到的几个脚本&#xff0c;主要分为&#xff1a;Python和Shell两个部分。 Python 脚本部分实例&#xff1a;企业微信告警、FTP 客户端、SSH 客户端、Saltstack 客户端、vCenter 客户端、获取域名 ssl 证书过期时间、发送今天的天气预报以及未来的天气趋势图&#xff…

Verilog语法笔记(夏宇闻第三版)-赋值语句和块语句

目录 赋值语句: (1).非阻塞(Non_Blocking)赋值方式( 如 b < a; ): (2).阻塞(Blocking)赋值方式( 如 b a; ): 例&#xff1a; 块语句&#xff1a; 顺序块&#xff1a; 例&#xff1a; 并行块&#xff1a; 例&#xff1a; ​编辑 块名&#xff1a; 起始时间和结束…

php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02

php运算符&#xff0c;类型转换&#xff0c;打印输出语句相较于其他语言的特殊部分php运算符php的类型转换php打印输出语句php运算符 1.php运算符与其他高级语言相同的部分 算术运算符&#xff08;&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;%&#xff09;&#xff0…

使用Flask快速部署PyTorch模型

对于数据科学项目来说&#xff0c;我们一直都很关注模型的训练和表现&#xff0c;但是在实际工作中如何启动和运行我们的模型是模型上线的最后一步也是最重要的工作。 今天我将通过一个简单的案例&#xff1a;部署一个PyTorch图像分类模型&#xff0c;介绍这个最重要的步骤。 …

OAK-PoE设备故障排查详解

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手…

Linux小黑板(5):磁盘与文件系统

"这月蹦迪没我" 一、浅谈磁盘 磁盘作为计算机硬件里&#xff0c;唯一的机械设备。在数据存储的领域&#xff0c;有着不可磨灭的作用。相较于&#xff0c;保持通电情况下具有保持数据的不丢失的内存&#xff0c;磁盘能够"永久性"地存储 数据。 磁盘是计算机…

1. R语言介绍、Rstudio的基本使用、【R包的安装与使用】、帮助命令、内置数据集

课程视频链接&#xff1a;https://www.bilibili.com/video/BV19x411X7C6?p1 本笔记参照该视频&#xff0c;笔记顺序做了些调整【个人感觉逻辑顺畅】&#xff0c;并删掉一些不重要的内容 系列笔记目录【持续更新】&#xff1a;https://blog.csdn.net/weixin_42214698/category_…

【Linux】进程控制:父进程与子进程

目录1 进程创建1.1 认识fork1.2 进程创建的目的1.3 写时拷贝1.4 进程创建失败的场景2 进程退出2.1 进程退出状态2.2 进程退出的方式2.3 exit、_exit、return2.3.1 概念2.3.2 区别3 进程等待3.1 理解进程等待3.2 进程等待的方式3.2.1 wait和waitpid3.2.2 status位图结构3.3 阻塞…

【一起从0开始学习人工智能0x04】python相关AI复习【超全面】【收藏】

基础小结 数据类型&#xff1a;Numbers、String、list、tuple、dict字符编码&#xff1a;可以直接.encode&#xff08;‘utf-8’&#xff09;、.decode(ascii)循环&#xff1a;for-in迭代器、whilelist列表-最频繁的数据类型。-完成大多数集合类的数据结构实现。它支持字符&am…

十六、状态管理——Vuex(4)

本章概要 表单处理Vuex 与组合 API模块 16.8 表单处理 在表单控件上通常会使用 v-model 指令进行数据绑定&#xff0c;如果绑定的数据是 Vuex 中的状态数据&#xff0c;就会遇到一些问题。看以下代码&#xff1a; form.html <div id"app"><my-component&…

一场衍生于产业的深度变革正在上演,总结起来就是产业互联网的变革

毫无疑问的是&#xff0c;一场衍生于产业的深度变革正在上演。在这样一场深度变革之中&#xff0c;曾经看似无法改变的存在&#xff0c;有了进化的可能性&#xff1b;曾经让玩家们望而却步的领域&#xff0c;有了进军的可能性。如果对这样一场深度变革进行一次总结的话&#xf…

vanishing point detection in autopilot

1. 概述 消失点一种直观的解释是图像中的平行线的交点&#xff0c;也就如下图中路面边界绘制的直线在图像中的交点。 这样的点在自动驾驶场景下可以为解析车辆状态提供一些信息&#xff0c;比如较为常规的运用便是用于车辆的pitch角度。在传统方法中会通过如霍夫算子检测图片…

2022稳定学习年度研究进展系列报告丨精华观点总结

近年来&#xff0c;在独立分布假设的前提下&#xff0c;机器学习模型的表现越来越好。但在实际应用场景中&#xff0c;数据本身却具有很强的异质性和差异性&#xff0c;这就对模型的泛化能力产生了较高的要求。为了解决分布外泛化问题&#xff0c;稳定学习应运而生。12月28日&a…

Python计算机视觉:人脸识别

讲明一下:并没有实现人脸识别的算法,只是利用人脸特征文件(文件从官网上下载),从而进行人脸识别,总感觉识别出来的效果还是有问题的,如:图片最好是人脸的正脸。 1. 人脸特征文件下载 直接去github或者gitee(建议gitee)上去搜索opencv即可,如下: 选择第一个直接进入即…

一篇文章带你了解——Linux中 文件权限 和 粘滞位的 概念 / 作用 及 实现方法

粘滞位首言用户权限文件权限文件类型分类文件访问者的分类实际解读文件权限文件权限设置方法为啥要有文件权限为啥要有粘滞位粘滞位的好处如何添加粘滞位首言 要了解粘滞位&#xff0c;首先得了解文件及用户权限 用户权限 Linux下有两种用户&#xff1a;超级用户&#xff08…