Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 17427|回复: 46

[已解决]求助:关求不重复值的函数公式解释

[复制链接]
发表于 2009-11-12 13:16 | 显示全部楼层 |阅读模式

咨询了一下有关求不重复值的函数,

LOOKUP(1,0/NOT(COUNTIF($B$1:$B1,$A$1:$A$13)),$A$1:$A$13),麻烦大家帮看一下,能不能解释一下啊?看不懂,理解不透

[此贴子已经被兰色幻想于2009-11-12 16:47:20编辑过]
最佳答案
2009-11-12 13:35

1、$B$1:$B1这是一个活动区域,公式应该是写在B2单元格中的,并确保B1单元格已经有一个值,当公式向下复制时,区域会变成$B$1:$B2,$B$1:$B3,$B$1:$B4……等等,就象是一个圆规,顶点不变半径在不断变大。

2、在这个变动的区域中查找有多少个值不在$A$1:$A$13区域中(NOT(COUNTIF($B$1:$B1,$A$1:$A$13))),如果“不在”就会显示为“TRUE”,如果“在”就会显示为"FLASE"

3、用0做分子,刚才得到的TRUE,FLASE做分母,得到的值是,如果分母为TRUE,值为0,如果分母为FALSE,值为错误值。

4、LOOKUP(1,{0,0,0,0,错误值,0,0}),1相当于这个数组中的最大值(用0除以任何数,得到的数组不可能比0大,因此1就是最大值了,不需要9^232作最大值了),LOOKUP查找不到最大值就会定位到数组的最后一个值,也就是第三个参数$A$1:$A$13的最后一个值。

5、该公式得到的不重复值是由原区域从最后开始查找,因此排序会倒过来。

[此贴子已经被兰色幻想于2009-11-12 16:27:20编辑过]

评分

参与人数 1 +10 收起 理由
sunjing-zxl + 10 这个公式不错,学习了

查看全部评分

发表于 2009-11-12 13:30 | 显示全部楼层
回复

使用道具 举报

发表于 2009-11-12 13:35 | 显示全部楼层    本楼为最佳答案   

关于求不重复值函数公式的解释

1、$B$1:$B1这是一个活动区域,公式应该是写在B2单元格中的,并确保B1单元格已经有一个值,当公式向下复制时,区域会变成$B$1:$B2,$B$1:$B3,$B$1:$B4……等等,就象是一个圆规,顶点不变半径在不断变大。

2、在这个变动的区域中查找有多少个值不在$A$1:$A$13区域中(NOT(COUNTIF($B$1:$B1,$A$1:$A$13))),如果“不在”就会显示为“TRUE”,如果“在”就会显示为"FLASE"

3、用0做分子,刚才得到的TRUE,FLASE做分母,得到的值是,如果分母为TRUE,值为0,如果分母为FALSE,值为错误值。

4、LOOKUP(1,{0,0,0,0,错误值,0,0}),1相当于这个数组中的最大值(用0除以任何数,得到的数组不可能比0大,因此1就是最大值了,不需要9^232作最大值了),LOOKUP查找不到最大值就会定位到数组的最后一个值,也就是第三个参数$A$1:$A$13的最后一个值。

5、该公式得到的不重复值是由原区域从最后开始查找,因此排序会倒过来。

[此贴子已经被兰色幻想于2009-11-12 16:27:20编辑过]

评分

参与人数 1 +18 收起 理由
sunjing-zxl + 18 解释的很完美

查看全部评分

回复

使用道具 举报

发表于 2009-11-12 13:45 | 显示全部楼层

COUNTIF($B$1:$B3,$A$1:$A$13) 统计B区域 包含A列条件的值有几个  如果没有值为0

not 把为0 变成 rtue   把不为0的变为假    {#DIV/0!;#DIV/0!;0;0;0;0;0;0;0;0;0;0;0}

0/  0除后   0还是得0   

LOOKUP (1,区域或数组,区域)  在数组中查不到1这个值  就取最后一个值

 

这个公式 A列中  不包含B列值的 最后一个记录

回复

使用道具 举报

发表于 2009-11-12 14:06 | 显示全部楼层

QUOTE:
以下是引用faliming7在2009-11-12 13:35:00的发言:

1、$B$1:$B1这是一个活动区域,公式应该是写在B2单元格中的,并确保B1单元格已经有一个值,当公式向下复制时,区域会变成$B$1:$B2,$B$1:$B3,$B$1:$B4……等等,就象是一个圆规,顶点不变半径在不断变大。

2、在这个变动的区域中查找有多少个值不在$A$1:$A$13区域中(NOT(COUNTIF($B$1:$B1,$A$1:$A$13))),如果“不在”就会显示为“TRUE”,如果“在”就会显示为"FLASE"

3、用0做分子,刚才得到的TRUE,FLASE做分母,得到的值是,如果分母为TRUE,值为0,如果分母为FALSE,值为错误值。

4、LOOKUP(1,{0,0,0,0,错误值,0,0}),1相当于这个数组中的最大值(用0除以任何数,得到的数组不可能比0大,因此1就是最大值了,不需要9^232作最大值了),LOOKUP查找不到最大值就会定位到数组的最后一个值,也就是第三个参数$A$1:$A$13的最后一个值。

5、该公式得到的不重复值是由原区域从最后开始查找,因此排序会倒过来。


解释的太好了·············

回复

使用道具 举报

 楼主| 发表于 2009-11-12 15:26 | 显示全部楼层

QUOTE:
以下是引用faliming7在2009-11-12 13:35:00的发言:

2、在这个变动的区域中查找有多少个值不在$A$1:$A$13区域中(NOT(COUNTIF($B$1:$B1,$A$1:$A$13))),如果“不在”就会显示为“TRUE”,如果“在”就会显示为"FLASE"

3、用0做分子,刚才得到的TRUE,FLASE做分母,得到的值是,如果分母为TRUE,值为0,如果分母为FALSE,值为错误值。

4、LOOKUP(1,{0,0,0,0,错误值,0,0}),1相当于这个数组中的最大值(用0除以任何数,得到的数组不可能比0大,因此1就是最大值了,不需要9^232作最大值了),LOOKUP查找不到最大值就会定位到数组的最后一个值,也就是第三个参数$A$1:$A$13的最后一个值

关键的地方还是没明白。第2,3。。。还得麻烦你再讲深一些。总是没有转过来。

回复

使用道具 举报

发表于 2009-11-12 17:10 | 显示全部楼层

QUOTE:
以下是引用心馨在2009-11-12 15:26:00的发言:

关键的地方还是没明白。第2,3。。。还得麻烦你再讲深一些。总是没有转过来。

2、COUNTIF($B$1:$B1,$A$1:$A$13)的意思是在变动区域$B$1:$B1中分别查找A1;A2;A3;A4;A5;A6;A7;A8;A9;A10;A11;A12;A13的个数,如果A1不在前面这个变动区域中,那就是个数为0,如果A1在前面的变动区域中,那就是个数为1。这样会得到一个纵向数组,类似{0;0;0;0;0;0;1;0;0;0;0;0;0}。前面加上一个NOT就把这样一个数组返转过来变成了{1;1;1;1;1;1;0;1;1;1;1;1;1},翻译成中文就是说“如果A1不在前面这个变动区域中,那就是真的(TRUE),如果A1在前面的变动区域中,那就是假的(FLASE

3、由第二步得到的是类似这样一个纵向数组{TRUE;TRUE;TRER;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE},0除以这个数组得到的应该是{0/TRUE;0/TRUE;0/TRUE;0/TRUE;0/TRUE;0/FALSE;……},0/TRUE会得到0,而0/FLASE会得到一个错误值。

回复

使用道具 举报

发表于 2009-11-13 13:19 | 显示全部楼层

向小学 和初中生学习!

回复

使用道具 举报

发表于 2009-11-13 13:34 | 显示全部楼层

学习[em06][em07]
回复

使用道具 举报

发表于 2009-11-13 17:06 | 显示全部楼层

[em07]谢谢,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 22:26 , Processed in 0.320708 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表