在数据总是更新的表格中用公式提取列中不重复项的内容
作用:如在一个数据总是更新变化的表格中提取不重复内容做数据有效性的下拉菜单 (数据有效性的下拉菜单是很不智能的,有多少内容显示多少,不管是否重复)。
公式:B2=INDEX(A:A,MATCH(0,COUNTIF($B$1:B1,$A$1:$A$100),0))&""
用法:A列是数据,公式在B2输入,ctr+shift+enter输入后向下拓展。
讲解: COUNTIF(区域,条件),match(查找项,区域,查找方式(0为精确,1为模糊)),用index(区域,行,列) 。
B2单元格中:求A1~A100 单元格在$B$1:B1区域的求和,$B$1:B1区域无内容,计数都为0,即结果为{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0......0(100位)}, match(查找项,区域,查找方式(0为精确,1为模糊)),精确查找0的位置得出1,用index(区域,行,列) =index(区域,1,) 索引出第1个内容(“是打发”) 。
B3单元格中:求A1~A100 单元格在$B$1:B2区域的求和,$B$1:B2内容为{"",“是打发”}, A1~A100重复值查询结果为1,非重复值查询结果为0, match精确查找到0的位置,用index(区域,行,列) =index(区域,列,) 索引出第N个内容。
同理,Bn单元格中:求A1~A100 单元格在$B$1:B2区域的求和,$B$1:Bn-1内容为{"",“是打发”}, 如果A1~A100的重复值查询结果为1,非重复值查询结果为0, match精确查找到0的位置,用index(区域,行,列) =index(区域,列,) 索引出第N个内容。
注意:
1、区域$B$1:B1是表示当向下扩展公式时,区域首个位置不发生相对变化,即绝对应用。
2、公式中的区域最好比被查询的数的区域多1行或以上,因为如果区域刚好是内容所在区域,查询的区域则为{内容,内容,...内容} ,当内容全部都有列举出来后,countif计数全是1,即{1,1....1},match 查不到0就会得出#NA。 如果区域改成比数据区域多1行,那么空的那个单元格计数是0,match查找的位置就是这个单元格位置,而不至于是#NA即{1,1....1,0(最后1个)}。那么Index会直接索引出它的空值并通过&“”转换成空白。
3、Countif中的被查询值不能写成整个区域A:A,写整列EXCEL无法计算出来(可以认为整列是一个无穷多的数据,在区域中无法统计)。