一、问题描述 日常工作中,咱们经常会遇到一些数据提取方面的问题,今天就和大家一起分享一下从多行多列中提取不重复值的技巧。 先来看数据源:

python提取透视表中的某两列数据中的数据 利用透视表提取数据_echo 多行


二、函数解法 牛A同学是公式达人,给出的公式是这样的:

=INDIRECT(TEXT(MIN((COUNTIF(E$1:E1,$A$2:$C$5)+(A$2:C$5<=""))/1%%+ROW(A$2:C$5)/1%+COLUMN(A$2:C$5)),"r0c00"),)&""

python提取透视表中的某两列数据中的数据 利用透视表提取数据_echo 多行_02


看晕了吗?哈哈哈哈……

python提取透视表中的某两列数据中的数据 利用透视表提取数据_字段_03


三、技巧解法 牛B同学用透视表一样可以解决。 先在数据前插入一个空白列,然后依次按Alt、  D、  P,调出透视表向导。 生成透视表之后,在字段列表中将默认的【行】、【列】拖动到字段列表之外,再将【值】拖动到行区域,OK了。 (动画比较大,如果无法自动播放,可点击一下图片)

python提取透视表中的某两列数据中的数据 利用透视表提取数据_公众号_04


这里有两个小问题: 1、为什么要先插入一个空白列呢?

这是因为使用多重合并计算数据区域的方法创建透视表时,会默认将数据源最左侧的一列作为透视表中的行标签,其他列的数据会成为透视表中的值字段。 为了保证所有姓名都在值字段,所以在数据源前面插入了一个空白列,来充当透视表的行标签了。 2、为什么要将值字段拖动到行标签区域呢?

这是因为数据透视表的行标签有自动去重复的功能,咱们利用这一特点,就可以完成不重复值的提取了。 四、结语 第一种方法,公式书写困难并且计算效率低,如果数据量比较多,Excel有可能直接就挂了。 第二种方法操作简单,在各个版本都可以实现,你也试试吧。