Excel公式: 获取非连续单元格区域中只出现一次的数字
发布时间:2023-03-19 03:03:20
Excel公式: 获取非连续单元格区域中只出现一次的数字
本次的练习是:如下图1所示,有一组非连续的单元格区域,由任意数量的单列区域组成,每个区域中的值有数字、文本或空格。要求从单元格A2开始,使用公式生成一个列表,这个列表由上述非连续单元格区域中所有只出现了一次的数字组成(如图1所示,1、2和9这三个数字在非连续的单元格区域中只出现了一次)。
图1
注意,虽然图1中在单元格区域C1:N12中有很多单元格为空,但解决方案的公式中要考虑这些单元格也可能存在数据的情况。
先不看答案,自已动手试一试。
公式
在单元格A2中输入公式:
=IF(ROWS(A$2:A2)>$A$1,””,AGGREGATE(15,6,(ROW(INDIRECT(“1:”& MAX(RNG)+1))-1)/(FREQUENCY(RNG,ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)=1),ROWS(A$2:A2)))
下拉直至出现空单元格为止。
在单元格A1中,公式:
=SUMPRODUCT(–(FREQUENCY(RNG,ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)=1))
计算该非连续单元格区域中满足要求的数字数量。
公式解析
公式中的RNG是定义的名称。
名称:RNG
引用位置:=$C$2:$C$7,$E$2:$E$4,$E$6:$E$9,$G$3:$G$11,$J$1:$J$9,$L$5:$L$6,$N$3:$N$7,$N$9:$N$10,$N$12
注意,这个联合的单元格区域并不能传递给所有的工作表函数,但还是有些工作表函数能够处理它们。
1. 首先,看看单元格A1中返回满足要求的数字数量的公式:
=SUMPRODUCT(–(FREQUENCY(RNG,ROW(INDIRECT(“1:”&MAX(RNG)+1))-1)=1))
这里的重点是使用FREQUENCY函数,该函数是非常有用的一个函数,能够处理这种不连续的单元格区域。
另一个函数是MAX函数,也可以操作多个、非连续的单元格区域,因此:
MAX(RNG)
能够得到组成RNG的单元格区域中所有数值的最大值,忽略逻辑值、文本。很显然,其返回的结果是9。
这样,公式中的:
ROW(INDIRECT(“1:”&MAX(RNG)+1))-1
转换成:
ROW(INDIRECT(“1:”&9+1))-1
转换成:
ROW(INDIRECT(“1:”&10))-1
转换成:
{1;2;3;4;5;6;7;8;9;10}-1
结果为:
{0;1;2;3;4;5;6;7;8;9}
这里,我们创建了一个由0到区域中最大值的数值组成的数组,用于FREQUENCY函数的参数bins_array。
此时,公式中的:
FREQUENCY(RNG,ROW(INDIRECT(“1:”&MAX(RNG)+1))-1)
成为:
FREQUENCY(RNG,{0;1;2;3;4;5;6;7;8;9})
结果为:
{0;1;1;0;0;5;2;2;0;1;0}
因此,公式:
=SUMPRODUCT(–(FREQUENCY(RNG,ROW(INDIRECT(“1:”&MAX(RNG)+1))-1)=1))
可转换为:
=SUMPRODUCT(–({0;1;1;0;0;5;2;2;0;1;0}=1))
转换为:
=SUMPRODUCT(–({FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE}))
两个减号强迫TRUE/FALSE转换成1/0,即:
=SUMPRODUCT({0;1;1;0;0;0;0;0;0;1;0})
结果为3。
2. 下面来看看从单元格A2开始用来获取值的公式:
=IF(ROWS(A$2:A2)>$A$1,””,AGGREGATE(15,6,(ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)/(FREQUENCY(RNG,ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)=1),ROWS(A$2:A2)))
根据前面公式推导的内容,上面的公式中:
AGGREGATE(15,6,(ROW(INDIRECT(“1:”& MAX(RNG)+1))-1)/(FREQUENCY(RNG,ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)=1),ROWS(A$2:A2))
可以转换为:
AGGREGATE(15,6,({0;1;2;3;4;5;6;7;8;9})/({FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE}),ROWS(A$2:A2))
这是以这种方式使用AGGREGATE函数时要注意的关键技术。因为如果我们在此函数中将第二个参数options设置为6,即“忽略错误值”,那么它将恰好做到这一点。
上述公式可转换为:
AGGREGATE(15,6,{#DIV/0!;1;2;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;9;#N/A},ROWS(A$2:A2))
其第一个参数function_num被设置成15,等价于执行SMALL函数。(你可能想,为什么不将第一个参数设置成5,即MIN,这是不合适的。因为在AGGREGATE函数的第一个参数的所有可选项中,仅14-15能够保证在传递给函数的数组不是实际的工作表区域时能正常运行,而这里的数组是由其他函数生成的,如果设置成1-13中的任一个,则需要传递给函数的数组是实际的工作表区域。)
对于单元格A2的公式中来说,最后一个参数k的值是1,即ROWS(A$2:A2)的返回值。因此,AGGREGATE函数部分转换为:
AGGREGATE(15,6,{#DIV/0!;1;2;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;9;#N/A},1)
结果为1。
这样,单元格A2中的公式转换为:
=IF(1>$A$1,””,1)
即:
=IF(1>3,””,1)
结果为1。


猜你喜欢
- 在Win10的网络配适器中,我们可以看到有非常多的win miniport设备,其实win miniport是wan微型端口的协议,如果用户
- xp系统怎样实现直接登录?其实关于xp直接登录非常简单,下面小编将xp系统跳过登录框直接进入桌面的设置方法分享给大家,希望对大家有所帮助。点
- wps office颜色怎么去掉?我们在编辑word中会有这样的要求:删除特有颜色或者特有字体的内容,在文本内容少的情况下,当然可以手动一个
- 近日,微软正式推出了Windows 10 Anniversary Update周年更新版(简称Win10.1),很多关注着win10系统的伙
- 本月公司员工的工资要调整,经理要求按每个人的职称来加工资。具体要求:职称为初级的本月加20元,职称为中级的本月加50元,职称为高级的本月加7
- 小编今日文章奉上,继续往下看吧~~初入Mac系统,对于惯用Windows的同学会有诸多不习惯,比如「右键新建文件」,小编带你探索New Fi
- 我们知道,Excel“条件格式”功能可以根据单元格内容有选择地自动应用格式,它为Excel增色不少的同时,还为我们带来很多方便。我们知道,E
- wps是金山软件公司的一种办公软件,对日常办公起到了重要作用,那么大家对它的一些功能又有多少了解呢?你知道怎么在wps表格中求百分比吗?下面
- 1、首先双击打开indesign2、设置需要的页面大小和页数3、设置边距,一般内空和上空比外空和下空大,排过书的人都知道4、文件--置入--
- win10不会玩怎么办?MicrosoftDemo网站为win10用户展示了相当全面的信息,用户可以了解Windows 10在PC、平板、手
- 最近有用户反映使用Win10系统时,有些朋友错误地删除了我的计算机图标,而当新安装Win10系统时,有些没有我的计算机图标。这该怎么办呢,下
- 在我们平常电脑的使用中会有很多不需要的垃圾文件产生,为了避免这些垃圾文件占用电脑内存以及电脑桌面空间,我们就会直接将其删除,但是有用户在删除
- 我们知道Mac在默认状态下,10分钟以后就会进入休眠状态,会断开网络、关闭屏幕显示。很多Mac用户可能希望自己的Mac始终处于工作状态,即便
- 我们有时候会通过到点击文件夹的是属性来知道文件的保存位置,但有些使用Win7系统的小伙伴反馈说文件夹属性没有位置选项?那么遇到这种情况应该怎
- win10提示你可能没有权限使用网络资源如何解决呢?很多小伙伴对此还不是很清楚,小编这里就给大家带来有关win10提示你可能没有权限使用网络
- 在Excel中选择多个不相邻单元格时,通常的做法是选择某个单元格后按住Ctrl键继续选择其他单元格。但这个方法有个不足之处,就是不能取消选择
- 用户如果希望一次性修改当前Word2010文档中所有SmartArt图形的主题效果,可以在Word2010文档窗口“页面布局”功能区进行操作
- 问:微软Win7硬件评测实验室在中国成立是哪天?答:微软Windows 7硬件评测实验室于2009年3月25日在北京宣布正式成立中国区实验室
- 7月4日消息,俄罗斯爆料大神WZor在公布了Win10预览版10163更新日志后,又曝光了一张该版本截图7月4日消息,俄罗斯爆料大神WZor
- 对于刚购买的联想笔记本如果想为其增加一块外置扩展屏幕我们需要怎么做呢?联想笔记本外接显示器设置方法其实也非常简单,我们只需要一条