-
去除重复内容,就用这个EXCEL公式,1分钟搞定!(数组公式返回不重复的值,不适用透视表的情况下)
2020-03-29 17:45:40去除重复内容,就用这个EXCEL公式,1分钟搞定! 一份高中录取名册中,上千条学生信息,生源校有七八十所,如何从表中轻松提取出不...其实,我们可以运用一个数组公式,就可以轻松提取出不重复内容。 在上图,F...去除重复内容,就用这个EXCEL公式,1分钟搞定!
一份高中录取名册中,上千条学生信息,生源校有七八十所,如何从表中轻松提取出不重复的生源校名单呢?
有人或许会这样做:复制录取名册中所有生源校到一个空白EXCEL表中,再按学校名排序,最后分段再删除重复的部分。这样做,不仅费时、费力,最重要的,还有可能误删了数据。
其实,我们可以运用一个数组公式,就可以轻松提取出不重复内容。
在上图,F2单元格中,写下数组公式:=INDEX(D:D,1+MATCH(,COUNTIF(F$1:F1,D$2:D$21),))&"",编辑完成后,按Ctrl+Shift+回车(一定要按这三个键噢!),然后往下复制,直至没有新学校名称出现为止。
现在,为大家讲解一下这个数组公式:
1)COUNTIF(F$1:F1,D$2:D$21):用COUNTIF函数,从F1单元格开始的扩展区域,查找D$2:D$21区域(生源校)每个数据的个数,返回一个由0和1构成的数组,如果D$2:D$21区域的数值在公式扩展区域中出现过,结果就是1;如果没出现,结果就是0。这个公式中,COUNTIF函数的第一参数,采用了行绝对引用(F$1)和相对引用(F1),向下复制,依次会产生:F$1:F2、F$1:F3、F$1:F4、。。。公式提取结果就会被重复利用。
2)利用MATCH函数,在COUNTIF函数返回的数组中查找第一个0的位置,也就是查找首次出现的数据所在的位置。由于生源校的标题行占了1行,所以,将这个值+1,就得到需要提取的不重复值在查找区域中行的位置。
3)最后,利用INDEX函数,以MATCH函数的计算结果作为索引值,提取D列对应位置上的不重复值。用&" ",避免显示错误值。
这个公式,可能有一点点理解难度,不过,不影响你使用,到时,你只要会复制公式,改一下参数就行了。今后,对于类似提取不重复内容的工作,就会既轻松,又准确、高效。
每天学习一点点,每天进步一点点,积硅步,必能致千里,得大成。
-
数组
2020-05-04 09:39:58II) 连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作 a) 数组如何实现下标随机访问。 引入数组再内存种的分配图,得出寻址公式 b) 纠正...1. 数组如何实现随机访问
1) 数组是一种线性数据结构,用连续的存储空间存储相同类型数据
I) 线性表:数组、链表、队列、栈 非线性表:树 图
II) 连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作
a) 数组如何实现下标随机访问。
引入数组再内存种的分配图,得出寻址公式
b) 纠正数组和链表的错误认识。数组的查找操作时间复杂度并不是O(1)。即便是排好的数组,用二分查找,时间复杂度也是O(logn)。
正确表述:数组支持随机访问,根据下标随机访问的时间复杂度为O(1)
2. 低效的插入和删除
1) 插入:从最好O(1) 最坏O(n) 平均O(n)
2) 插入:数组若无序,插入新的元素时,可以将第K个位置元素移动到数组末尾,把心的元素,插入到第k个位置,此处复杂度为O(1)。作者举例说明
3) 删除:从最好O(1) 最坏O(n) 平均O(n)
4) 多次删除集中在一起,提高删除效率
记录下已经被删除的数据,每次的删除操作并不是搬移数据,只是记录数据已经被删除,当数组没有更多的存储空间时,再触发一次真正的删除操作。即JVM标记清除垃圾回收算法。
3. 警惕数组的访问越界问题
用C语言循环越界访问的例子说明访问越界的bug。此例在《C陷阱与缺陷》出现过,很惭愧,看过但是现在也只有一丢丢印象。翻了下书,替作者加上一句话:如果用来编译这段程序的编译器按照内存地址递减的方式给变量分配内存,那么内存中的i将会被置为0,则为死循环永远出不去。
4. 容器能否完全替代数组
相比于数字,java中的ArrayList封装了数组的很多操作,并支持动态扩容。一旦超过村塾容量,扩容时比较耗内存,因为涉及到内存申请和数据搬移。
数组适合的场景:
1) Java ArrayList 的使用涉及装箱拆箱,有一定的性能损耗,如果特别管柱性能,可以考虑数组
2) 若数据大小事先已知,并且涉及的数据操作非常简单,可以使用数组
3) 表示多维数组时,数组往往更加直观。
4) 业务开发容器即可,底层开发,如网络框架,性能优化。选择数组。
5. 解答开篇问题
1) 从偏移角度理解a[0] 0为偏移量,如果从1计数,会多出K-1。增加cpu负担。为什么循环要写成for(int i = 0;i<3;i++) 而不是for(int i = 0 ;i<=2;i++)。第一个直接就可以算出3-0 = 3 有三个数据,而后者 2-0+1个数据,多出1个加法运算,很恼火。
2) 也有一定的历史原因 -
js数组添加、修改、删除元素和数组方法集合
2019-03-20 13:45:59js数组添加元素和数组方法js数组添加、修改、删除元素和数组方法集合数组添加、修改、删除元素数组合并功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一...js数组添加、修改、删除元素和数组方法集合
这是作者第一次整理js数组的API内容会不全,会持续更新
数组添加、修改、删除元素
//添加 let myArray=[1,2,3]; myArray.push(4,5);//5,数组尾部添加元素,返回数组的新长度,注意不是返回数组, console.log(myArray)//[1,2,3,4,5],并且修改数组. myArray.unshift(6,7);//7,数组头部添加元素,返回数组的新长度,注意不是返回数组。 console.log(myArray)//[6,7,1,2,3,4,5],并且修改数组。 myArray.splice(2,0,'心恋');//[],第一个参数为从哪里(下标)开始,第二个参数为(从第一个参数的下标)删除几个元素,第三个参数为添加的元素可以是多个,返回值为删除的元素组成的新数组,没有返回新数组 console.log(myArray)//[6,7,'心恋',1,2,3,4,5],并且修改数组 //删除 let a = [1,2,4]; a.pop();//4,删除数组的最后一个元素,并返回删除的元素。 console.log(a)//[1,2],并修改数组。 let a = [1, 2, 3]; let b = a.shift();//1,删除数组的第一个元素,并返回删除的元素 console.log(a);//[2,3],并修改数组 //修改 let a = [1, 2, 3]; a[1]=5;//[1,5,3];也可使用splice //slice()方法返回一个从开始(下标)到结束(下标)(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象,原始数组不会被修改。 let a = [1, 2, 3]; let b=slice(1,2)//[2]
数组合并
let arr1 = ['1', '2', '3']; let arr2 = ['d', 'e', 'f']; let arr3 = arr1.concat(arr2);//['1', '2', '3','d', 'e', 'f'],用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
-
将一个数组中的值按逆序重新排放。_Excel 正序、逆序编号,这到底是普通公式还是数组公式?...
2021-01-14 16:37:00如何快速生成序号,并且在数据表中间删除或插入行后还能自动重新按顺序编号?说到这里大家肯定应该明白,用手工拖动产生的顺序编号是满足不了需求的,需要用公式生成活的编号。即使用了公式,如果有上万行数据,要...工作中经常需要给数据表添加序号。如何快速生成序号,并且在数据表中间删除或插入行后还能自动重新按顺序编号?
说到这里大家肯定应该明白,用手工拖动产生的顺序编号是满足不了需求的,需要用公式生成活的编号。
即使用了公式,如果有上万行数据,要拖动复制公式也是不小的工作量。如何快速生成编号呢?
更有甚者,万一工作中需要从大到小逆序编号,大家都会吗?
案例:
如下图所示,快速从 1 至 20 按顺序、逆序的顺序编号。
解决方案 1:
row 函数的这种排序用法,是平时大家比较常用的。如果还不会的同学,现在赶紧来学一下。
1. 选中 A1 单元格,在左上角的名称框中就会看到“A1”
2. 在“A1”后面输入“:A20”--> 回车
此时就选中了 A1:A20 区域的所有单元格。
3. 输入以下公式 --> 按 Ctrl+Enter 回车:
=ROW(a1)
现在就批量完成了 1 至 20 的顺序编号。
接下来,从 20 至 1 逆序编号,会的人举手。
4. 将 A 列复制粘贴至 B 列 --> 选中 B1:B20 区域
5. 在公式栏中,在原有的公式前面加上“21-”,完整公式如下 --> 按 Ctrl+Enter 回车:
=21-ROW(B1)
顺序编号立刻就变成了逆序的。
解决方案 2:
同样是用 row 函数,这个方法就更神奇了,不过前提是 Excel 要更新到高版本,比如 O365。
1. 在 C1 单元格中输入以下公式,回车即可:
=ROW(1:20)
C 列就自动填充了 1 至 20 的序号,从下图的效果可以看出,选中 C1:C20 的任意单元格,整个区域都会有凸起效果,此时整个区域相当于使用了数组公式。
Excel 最新版本简化了数组的应用,不需要按三键结束也能产生数组效果。是不是很神奇?
2. 如果要按从大到小的逆序排序,只要在 D1 单元格中输入以下公式,回车即可:
=21-ROW(1:20)
同样不需要按三键,D 列即相当于数组公式。
一个公式,两种用法,大家更爱哪种?
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。
-
数组基础
2020-07-29 21:13:21II) 连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作 a) 数组如何实现下标随机访问。 引入数组再内存种的分配图,得出寻址公式 b) 纠正... -
(笔记整合)数组
2019-03-02 11:54:44II) 连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作 a) 数组如何实现下标随机访问。 引入数组再内存种的分配图,得出寻址公式 b) 纠正... -
(三)数组
2018-11-14 15:29:05数组在内存中的分配图,得出寻址公式。 例:a[k]_address = base_address + k * type_size,a[k][j]_address = base_address + (k*n+j) * type_size 下标k为偏移量,所以从0开始。 2.如何改善低效的插入和删除?... -
05-数组:为什么很多编程语言中数组都从0开始编号
2019-06-23 16:40:25如何实现随机访问 数组有两个特点 数组是一种线性表,元素是连续的,只有前后关系; 数组在内存中是连续的内存空间,存储同一种类型的数据。因此优缺点如下: 优点:随机访问,此时时间复杂度为O(1); 缺点:插入... -
JavaScript操作数组方法
2020-11-23 15:19:44JavaScript 操作数组和对象方法spliceconcatjoinpoppushshiftslicesort创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你... -
数组专题 基础实用函数表达
2019-02-16 09:54:36基础实用函数表达数组是个实用的工具遍历及其基本操作执行包含外部变量的运算删除排序查找与统计学结合插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右... -
2.删除字符串中的某个字符。(借助字符数组实现)
2020-10-12 09:18:58有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学... -
算法与数据结构(3)------数组
2020-12-02 15:11:32II) 连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作 a) 数组如何实现下标随机访问。 引入数组再内存种的分配图,得出寻址公式 b) ... -
pd.merge 结果出现重复_用数组计算不重复数据的个数原来这么简单
2020-12-17 03:48:51日常工作中,我们常常会遇到一些带有重复值的数据列。例如下面表格中的姓名列,标红色的是重复数据,...01不重复个数的计算公式首先来看如何计算C列的不重复姓名个数,直接上公式:这是一个数组公式,输入完后需要... -
普通指针与数组指针的区别
2019-01-30 13:18:02普通指针与数组指针的区别如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的... -
如何删除excel中,某一列值等于某个值的那些行
2018-05-23 19:11:42比如删除A列单元格是5的行B1输入=INDEX(A:A,SMALL(IF($A$1:$A$10<&...数组公式,先按住CTRL+SHIFT,最后回车公式下拉复制B列>右键>选择性粘贴>数值删除A列,OK.... -
textjoin去重_excel中几列相同的数据,多列去重? | excel表格删除重复数据
2020-12-31 11:44:00Excel中a列和c列的数据有相同的,也有不同的,如何去重后现在在另一个表格的a列这个不算难问题,你上传一下的数据表,帮你做了。...",,IF(MATCH(A1:A10,A1:A10,)=ROW(1:10),A1:A10,"")) 数组公式c... -
中文版Excel.2007公式与函数应用宝典 1/2
2012-04-06 18:29:44第IV部分 数组公式 第V部分 其他公式技术 第VI部分 开发自定义工作表功能 第VII部分 附录 ∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽ 作者介绍 John Walkenbach被誉为“电子表格先生... -
中文版Excel.2007公式与函数应用宝典 2/2
2012-04-06 18:37:14第IV部分 数组公式 第V部分 其他公式技术 第VI部分 开发自定义工作表功能 第VII部分 附录 ∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽ 作者介绍 John Walkenbach被誉为“电子表格先生... -
数据结构与算法之美--打怪升级路4
2018-11-26 23:52:24连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作 数组如何实现下标随机访问。 引入数组再内存种的分配图,得出寻址公式 a[i]_... -
sql for循环_提取不重复数据在Excel、SQL与Python中的处理方法
2020-12-09 06:53:25村长今天跟大家简单分享一下...一、Excel1.1、函数法(数组公式)函数公式:=IFERROR(INDEX(A:A,SMALL(IF(MATCH($A$2:$A$16,$A$2:$A$16,0)=ROW($1:$15),ROW($2:$16),9^9),ROW(A1))),"")1.2、技巧法(删除重复值)操作步... -
sql 去重求和_Excel数据透视表 | 快速去重求和
2020-12-06 22:17:31表格中同一物料有多次领退记录且数量不一致现需统计每种物料的结存情况 (领退数量相加)前面已学习如何通过数据筛选+Sumif函数实现去重求和通过数据高级筛选删除重复项Sumif函数+数组输入公式=SUMIF(B3:B10,F3:F6,D3:... -
day08-集合【LinkedList、HashSet、Collection集合体系】
2017-10-31 19:00:01Day08 集合1.数据结构是用来研究如何存储数据的,也就是研究存储数据的方式的。... 计算元素的地址的公式:数组的地址+索引*每个元素占用的空间大小; 特点: 查询和修改数据速度快;删除速度比较慢; 2.链表: 不是 -
JavaScript学习笔记
2019-06-28 21:52:26JavaScript学习笔记JavaScript简介break与continue变量空间函数数组对象创建对象删除对象属性遍历功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个... -
中文版Excel.2007高级VBA编程宝典 1/2
2012-04-06 16:00:163.6.1 一个数组公式的例子 3.6.2 数组公式日历 3.6.3 数组公式的优缺点 3.7 计数和求和技巧 3.7.1 计数公式的示例 3.7.2 求和公式的示例 3.7.3 其他计数工具 3.8 使用日期和时间 3.8.1 输入日期和... -
数据结构 - 浙江大学(尚硅谷)
2021-01-31 09:55:16第一天什么是数据结构好的算法算法复杂度分析实例1、最大子列和问题数据结构存储——数组或链表多项式表示链表插入删除注意事项功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何... -
java的单向链表
2020-09-14 06:06:27Java的单向列表单向链表如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你... -
Visual C++开发实战1200例(第1卷).(清华出版.刘锐宁.梁水.李伟明).part1
2016-06-16 01:35:39实例139 删除数组中重复的连续元素 实例140 删除有序数组中的重复元素 实例141 数组合并 实例142 利用数组计算平均成绩 实例143 数组中整数的判断 实例144 判断二维数组中是否有相同的元素 实例145 计算两个... -
Visual C++开发实战1200例(第1卷).(清华出版.刘锐宁.梁水.李伟明).part2
2016-06-16 01:38:19实例139 删除数组中重复的连续元素 实例140 删除有序数组中的重复元素 实例141 数组合并 实例142 利用数组计算平均成绩 实例143 数组中整数的判断 实例144 判断二维数组中是否有相同的元素 实例145 计算两个... -
第一种思路,出现次数超过一半的数字,不管如何,必然这个数字位于数组中间的位置,因此可以采用类似于快排的划分的方法,找到位于数组中间的位置的数字,然后在顺序检索是否这个数字出现次数超过一半。第二种思路...
-
C#编程经验技巧宝典
2008-06-01 08:59:33106 <br>0175 如何检索指定条件数组中的元素 107 <br>0176 如何动态改变数组长度 108 <br>0177 如何反转数组中元素的顺序 108 <br>0178 如何排序数组中的元素的顺序 109 <br>0179 如何创建...
-
漫谈TCP新算法Elastic-TCP
-
移动手机用户体验的三个层次
-
axios学习优化及使用
-
鸿蒙系统Harmonyos源码架构分析-第1期第2课
-
JMETER 性能测试基础课程
-
PHP base64 编码转化图片并进行指定路径的保存和上传处理
-
项目管理工具与方法
-
两个栈实现队列
-
斜光轴数字强度相关计量的像模糊容限
-
编程训练第十三期——在排序数组中查找元素的第一个和最后一个位置
-
app服务端.rar
-
龙芯生态应用开发基础:C语言精要
-
2021-02-27
-
谈谈对于企业级系统架构的理解
-
Cmake 教程
-
FastDFS 分布式文件系统部署
-
使用websocket实现php消息实时推送完整示例
-
Prisma初体验【逆向生成数据模型】
-
Python启蒙到架构师的核心技术精讲课程
-
在 Linux 上构建企业级 DNS 域名解析服务