大数跨境
0
0

查找重复数据的几种使用方法(2)(MATCH函数与INDIRECT函数滚动查找法)

查找重复数据的几种使用方法(2)(MATCH函数与INDIRECT函数滚动查找法) Excel数据分析之道
2023-10-25
0

在文章 “查找重复数据的几种使用方法(1)(FILTER函数)”中,我们介绍了利用FILTER函数来查找重复数据,制作明细表的基本方法,这个函数使用很简单,查找重复数据也非常方便。

如果你的Excel没有FILTER函数呢?我们可以联合使用MATCH函数与INDIRECT函数,来建立滚动查找。

下图是一个销售清单,现在要求制作一个对账单表格,把某个指定客户的所有销售明细查找出来。




明细表的制作,本质上就是查找重复数据。但是单独使用VLOOKUP函数或者MATCH都无法实现,因为这两个函数都只能查找第一个出现的数据。


不过,我们可以这样来考虑:第一次用MATCH函数定位出指定数据的第一次出现的行,比如数据在20行,那么第二次定位时,从21行(=20+1,往下移一行)开始往下定位,就可以定位出该数据第二次出现的行,比如数据在35行。第三次定位就从36(=35+1,往下移一行)行开始往下定位,依此类推,直至把指定数据的所有出现的位置都查找出来,再利用INDEX就可以把各个位置的数据取出。


这种查找又称循环查找,其关键点是如何构建一个动态的、不断往下移动的查找区域,这个问题由INDIRECT函数来解决是最容易不过了。下面是这个查询表的具体制作过程。


步骤1:设计一个辅助列,这里是K列,保存每次查找到指定客户的行号,如下图所示。



步骤2:在单元格K5输入查找指定客户第一次出现位置的公式:


=MATCH(B2,销售清单!B:B,0)


注意:这里从单元格K5开始做公式,是为了与查询表一致,这样便于创建简便的公式。


步骤3:在单元格K6输入第2次查找公式:


=MATCH($B$2,INDIRECT("销售清单!B"&K5+1&":B2000"),0)+K5


这个公式的含义是:


先构建一个动态的查找区域“"销售清单!B"&K5+1&":B2000"”,这个区域的起始单元格就是上一次找到的位置往下移一行(即K5+1),再利用INDIRECT函数将这个手工连接的字符串转换为新查找区域的引用。


需要注意的是,第二次找到的位置是当前单元格区域的相对位置,因此还需要在此结果上加上上一次的位置行号,转换成工作表的行号,这就是在MATCH结果上加K5的原因。


步骤4:将单元格K6的公式往下复制到一定的行(视源数据区域的大小,多复制点),就得到每次查找的位置行号。如果从某个单元格开始出现错误值了,就表明下面没有要查找的客户了。


步骤5:在查询表的第5行的各单元格输入下面的公式,然后往下复制到一定的行,就得到指定部门所有的明细数据。


单元格A5:

=IFERROR(INDEX(销售清单!A:A,$K5),"")


单元格B5:

=IF(AND(A5="",A4<>""),"合计",IFERROR(INDEX(销售清单!B:B,$K5),""))

这个公式是在明细表的最底部自动插入合计行。


单元格C5:

=IFERROR(INDEX(销售清单!C:C,$K5),"")


单元格D5:

=IFERROR(INDEX(销售清单!D:D,$K5),"")


单元格E5:

=IFERROR(INDEX(销售清单!E:E,$K5),"")


单元格F5:

=IFERROR(INDEX(销售清单!F:F,$K5),"")


单元格G5:

=IFERROR(INDEX(销售清单!G:G,$K5),"")


单元格H5:

=IF(B5="合计",SUM($H$4:H4),IFERROR(INDEX(销售清单!H:H,$K5),""))

这个公式是在明细表的底部,自动计算所有明细的合计金额。


单元格I5:

=IFERROR(INDEX(销售清单!I:I,$K5),"")


步骤6:选择单元格区域A5:I2000,设置两个条件格式:


(1)当A列里有数据时,自动加边框;

(2)当B列的数据是“合计”两个字时,自动加边框、加颜色,如图下图。



步骤7:最后把K列隐藏起来。


这样,就制作完成了动态的客户对账单的模版。只要在单元格B2选择输入任意客户名称,就自动得到该客户的明细数据。




【声明】内容源于网络
0
0
Excel数据分析之道
全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
内容 1106
粉丝 0
Excel数据分析之道 全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
总阅读332
粉丝0
内容1.1k