多行多列提取不重复值的数组公式太慢了,能优化吗?

求助内容是在一个工资表汇总内,提取不重复的员工姓名,并且提供了附件,附件的名字就叫“很慢”。

先来看看这个名叫“很慢”的工资汇总表中的数据吧:


有没有看眼晕了?哈哈

更让人眼晕的是这个提取不重复姓名的公式;

=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,收工了,不看广告看疗效吧:


图文过程好像很复杂的样子,其实这个过程也就是十几秒吧:


声明:本站所有文章均出自互联网,只为学习之用;如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。