超牛的Excel动态查询表!不管老板想对比哪两组数据,秒速给他结果!

编按:让Excel实现动态查询,这是数据分析所必备的技能之一。老板们也都很爱这样直观又方便的查询办法。今天,小E给大家带来的就是如何快速实现这个操作的方法……每天一点小技能,职场打怪不得怂!

正文:

日常的工作中我们经常会遇到这样的情况:对比并查询两款不同型号的产品在功能上的异同点。过去我们都是拿着产品手册来查询的,不仅效率低下,而且还非常容易出错。

本着“懒是社会进步的源动力”这一原则,我们直接用EXCEL来替我们查找异同点。

下面是某公司产品手册上的产品功能图,已经做了一定的数据处理。

表中,如果单元格为空,表示没有某项功能;如果单元格为P,表示具有某项功能并且参数为默认值;如果单元格为其他值,表示某项功能的具体参数。

我们希望在下图中的单元格B2和F2中输入两个不同型号的产品如A1和A2后,EXCEL能自动列出两种型号的相同点和差异点。

01

那如何实现上面的自动对比效果呢?

为了方便大家,我将规格表和查询表放在了一起。

在单元格A5中输入公式=INDEX(H:H,SMALL(IF((INDEX($I$2:$R$21,,MATCH(B$2,$I$1:$R$1,))=INDEX($I$2:$R$21,,MATCH(F$2,$I$1:$R$1,)))*(INDEX($I$2:$R$21,,MATCH(B$2,$I$1:$R$1,))<< span="">>""),ROW($2:$21),4^8),ROW(A1)))&""

三键回车并向下拖曳即可。

函数解析:

本质上讲,这个公式依旧是一个一对多的查询公式。相同功能项需同时满足两个条件:条件1,参数相等;条件2,不为空值。判断两个条件是否同时满足,可以将两个条件的判断结果相乘来实现。

1.MATCH(B$2,$I$1:$R$1,)和MATCH(F$2,$I$1:$R$1,)部分,定位产品A1和产品A2在产品表中的列数值。

2.INDEX($I$2:$R$21,,MATCH(B$2,$I$1:$R$1,))部分求得产品A1所在列的所有参数清单,其结果为{"5200ml";"200W";"2000Pa";"√";"√";"√";0;0;"√";"√";0;"√";"√";0;0;0;0;0;0;0};同理,INDEX($I$2:$R$21,,MATCH(F$2,$I$1:$R$1,))的结果为{"5200ml";"200W";"2000Pa";"√";0;"√";"√";0;"√";"√";0;0;"√";0;0;0;0;0;0;0}。

3.用逻辑符号“=”判断参数是否相等的结果为{TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}。

4.INDEX($I$2:$R$21,,MATCH(B$2,$I$1:$R$1,))<>""部分是判断参数是否为空,其结果为{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}。

5.把上述两个判断相乘的结果是{1;1;1;1;0;1;0;0;1;1;0;0;1;0;0;0;0;0;0;0}。参数相等且不为空的都为1,其他则都为0。

6.用IF函数赋值,等于1的,返回相应的行号;等于0的,返回4^8,也就是将不相等和均等于空值的赋予了极大值。

7.用SMALL函数将IF函数的结果从小到大依次返回,不符合条件的自然排在了后方。

8.为何最后要链接空值""?是为了将INDEX函数返回的0变为空。

02

相同功能找到后,再把功能的参数查找出来,这时用VLOOKUP函数就可以解决了。

在单元格B5中输入“=IF(A5="","",VLOOKUP(A5,H:R,MATCH(B$2,$H$1:$R$1,),))”并向下拖曳即可。这个公式比较简单,我们不再详细介绍了。

03

接下来我们来看看如何提取差异点。

这里所谓的差异点,即两种产品中的不同功能点,譬如有的功能只在A1中有,也有的功能只在A2中有。

我们在单元格D5中输入公式

=INDEX(H:H,SMALL(IF((INDEX($I$2:$R$21,,MATCH(B$2,$I$1:$R$1,))<>INDEX($I$2:$R$21,,MATCH(F$2,$I$1:$R$1,))),ROW($2:$21),4^8),ROW(A1)))&""并三键回车并向下拖曳即可。

函数解析:

这次是要寻找不同点,因此使用了“<>”,然后利用一对多查询公式即可返回需要的清单了。

04

最后,我们需要把参数提取出来。它们都很简单:

1.在E5单元格输入公式=IFERROR(VLOOKUP(D5,H$1:R$21,MATCH(U$2,H$1:R$1,),0)&"","")

2.在F5单元格输入公式=IFERROR(VLOOKUP(D5,H$1:R$21,MATCH(F$2,H$1:R$1,),0)&"","")

好了,今天和大家分享的就是这些内容!

(0)

相关推荐

  • 精通Excel数组公式14:使用INDEX函数和OFFSET函数创建动态单元格区域

    excelperfect 动态单元格区域是指当添加或删除源数据时,或者随着包含单元格区域的公式被向下复制时根据某条件更改,可以自动扩展或收缩的单元格区域,可以用于公式.图表.数据透视表和其他位置. 那 ...

  • Excel公式技巧71:查找一列中有多少个值出现在另一列中

    excelperfect 有时候,我们想要知道某列中有多少个值同时又出现在另一列中,例如下图1所示,列B中有一系列值,列D中有一系列值,哪些值既出现有列B中又出现在列D中.因为数据较少,不难看出,在列 ...

  • 查找!查找!永恒的查找!

    excelperfect 查找,永恒的主题. 从一大堆数据中找出我们需要的数据,这是Excel中常用的操作.如果使用公式来进行查找,那么Excel提供了丰富的函数,让你随条件不同获取想要的数据.其中, ...

  • VLOOKUP函数不能查找最后一个值,怎么办?

    VLOOKUP函数是使用最多的Excel函数之一,能够查找到第一个值并返回对应的值,然而,如果查找的项有多个,如何查找到最后一个值呢? 举个例子,如下图1所示的数据,要查找"员工15&quo ...

  • 超赞的Excel动态查询表,太多人想学!

    回复[目录]学习113篇Excel教程 全套Excel视频教程,微信扫码观看 008号是谁?电话多少? 这不是相亲,而是员工信息快速查询!可能你所在公司的人员成百上千,怎么根据工号快速查询到职员的信息 ...

  • 如何在Excel表格当中快速对比出两组数据的不同

    我们在利用Excel表格进行日常办公时,如果需要将两组数据之间的不同之处查找出来标注或者修改,仅靠用户一组一组的去对比,工作效率将非常低下.今天我们就来教大家,如何在Excel表格当中快速对比出两组数 ...

  • ​Excel中双层饼图的做法,让两项数据表述清楚

    饼图可以让观看者一目了然地了解每一部分占的份额,当一个总的概念又分为几个小的类别之后,有小类别的数额,同时又有总概念的数额,这个时候,我们就可以用双层饼图来表达了. 示例 首先,我们选中姓名和业绩,插 ...

  • Excel如何实现两组数据存在差异的情况下突出显示

    在表1与表2中序号行相同的情况下,A列或B列数据存在不同值时,表2中的A列和B列均突出显示,如图5-30所示. 图5-30 使用颜色突出显示,自然会想到用条件格式,试试能不能做出来.需要判断前后不一致 ...

  • Excel教程:超赞的动态查询表,太多人想学!

    008号是谁?电话多少? 这不是相亲,而是员工信息快速查询!可能你所在公司的人员成百上千,怎么根据工号快速查询到职员的信息呢?你需要制作一张员工信息动态查询表!有了信息动态查询表,别说姓啥.电话,就是 ...

  • Excel动态图表,超简单的制作过程

    制作的图表信息多的情况下,不方便查看,可以制作一个动态图表,根据分类查看数据,点击对应的分类按钮,就能直观地看到对应的数据.下面教你制作动态图表的小技巧. 效果演示: 开始制作: 1.选中数据,点击插 ...

  • 比Vlookup函数好用100倍,又一个超牛Excel函数来了!

    最近由Vlookup引起的查找高手对决中,Xlookup.Wlookup函数出尽了风头.而此时还有一个低调的Excel2019函数偷笑不语,论本事,它也可以秒杀Vlookup,它就是: FILTER函 ...

  • 用Excel制作动态查询表。#抖来学习 #dou来聊职场

    用Excel制作动态查询表。#抖来学习 #dou来聊职场

  • 这几个超牛函数,你的Excel里有没有?

    小伙伴们好啊,今天和大家分享几个Office 365中新函数的典型用法,有了这些新函数,让原本复杂的计算变得越来越简单. 1.数据转置 如下图所示,为了便于打印,要将A列中的姓名,转换为多行多列. D ...