多行多列提取不重复值的数组公式太慢了,能优化吗?
 求助内容是在一个工资表汇总内,提取不重复的员工姓名,并且提供了附件,附件的名字就叫“特别慢”。
 先来看看这个名叫“特别慢”的工资汇总表中的数据吧:
 
 有没有看眼晕了?哈哈
 更让人眼晕的是这个提取不重复姓名的公式;
 =INDIRECT(TEXT(MIN(IF((COUNTIF($P$1:P1,$A$3:$N$86)=0)*($A$3:$N$86<>””)*MOD(COLUMN($A$3:$N$86),2),
 ROW($A$3:$N$86)*100+COLUMN($A$3:$N$86)),2^16),”R00C00″),)
 在数据量大的工作表中使用这样复杂的公式,简直就是反人道主义啊。
 用楼主的话说:“下拉到十几个的时候就特别慢了,公式能优化吗?如果不能优化,用什么方法好些?”
 今天咱们先不说这个反人道主义的公式是啥意思,看看用什么简便的方法能高效的解决问题。
1、 插入数据透视表
 首先在A列之前插入一个空白列,这步特别重要哦,作用后面会说到。
 再依次按Alt →D→P,调出数据透视表向导:
 
 根据提示选择数据所在的范围,这个范围包括A列刚刚插入的空白列,作用是保证所有数据都可以在数据透视表的值字段:
 
 单击【完成】按钮,会自动插入一个新的工作表,并且有一个默认样式的数据透视表。
 
 
2、调整透视表结构
 还需要继续调整一下,将【数据透视表字段】列表中的【行】、【列】、【页1】的勾选全部去掉:
 
 然后将【数据透视表字段】列表中的【值】,从值区域拖动到行区域:
 
 这时候,数据透视表的行字段就有数百个数字和姓名列表了:
 
 接下来的工作是去掉这些数字内容,要不要一个个勾选啊?
 咱们有简便方法哈,别急。
 
3、标签筛选
 标签筛选,筛选大于特大号数值9e307的内容,因为文本是大于任何数字的,所以这样筛选后,就是全部的文本内容了:
 
 OK,收工了,不看广告看疗效吧:
 
 图文过程好像特别复杂的样子,其实这个过程也就是十几秒吧: