来源:Excel应用之家 MATCH函数是Excel中最常用、最重要的函数之一。MATCH函数和ROW函数、OFFSET函数配合使用,可以取得令人意想不到的结果。 现在我们一起来认识下MATCH函数和INDEX函数、VLOOKUP函数以及OFFSET函数的综合应用。 查找数值的位置 这个例子中我们想知道数字4在数列中的位置,那么在A5单元格中输入“=MATCH(4,$A$3:$E$3,0)”就可以了。函数返回的结果“4”是位置序号,表面数字“4”在这个序列中的位置是第四位。 思路:在这个公式中,参数“0”表示查找等于被查找值“4”的第一个数值的位置。 判定重复值 此例中,单元格区域A9:A18中有重复的数据,我们在C9单元格中输入“=IF(MATCH(A9,$A$9:$A$18,0)=ROW()-8,'','重复')”,下拉即可。 思路
求第n大不重复的值 此例中,单元额区域A24:A33中有重复的数据。我们分别求出第一到第四大的数据。在单元格E24中输入“=LARGE(IF(MATCH($A$24:$A$33,$A$24:$A$33,0)=ROW($A$24:$A$33)-23,$A$24:$A$33),ROW()-23)”,并三键回车,向下拖曳。 思路:
反向查找 我们介绍过用if函数利用{1,0}创建一个新的数组,以用来做反向查找。这里,match函数和offset函数配合使用,也可以达到反向查找的目的。 在单元格E39中我们输入“=OFFSET($A$37,MATCH(D38,$B$38:$B$46,0),0)”,三键回车并向下拖曳即可。 思路:
提取不重复清单 在此例中,单元格区域A51:A60中有重复的数据,在单元格C51中输入 “=OFFSET($A$50,SMALL(IF(MATCH($A$51:$A$60,$A$51:$A$60,0)=ROW($A$51:$A$60)-50,ROW($A$51:$A$60)-50),ROW()-50),0)”,并三键回车,向下拖曳即可。 思路:
在中国式排名中,无论有几个并列,之后的排名仍然顺位排列。即无论有多少个第二名并列,之后的排名仍然是第三名。 我们在单元格C2中输入 “=SUM(--IF($A$2:$A$11>=A2,MATCH($A$2:$A$11,$A$2:$A$11,0)=ROW($2:$11)-1))”并向下拖曳即可。 思路:
和ADDRESS函数组合动态查找单元格地址 如下例,在已知姓名和学科的情况下,查询成绩的地址,并返回成绩。 我们在单元格G5中输入 “=ADDRESS(MATCH($G$2,$A$2:$A$8,0)+1,MATCH($G$3,$B$1:$D$1,0)+1)” 思路:
和INDEX函数或OFFSET函数组合实现动态查找 下列中,我们需要按照姓名和学科来查询成绩。具体步骤如下: 步骤一:在单元格区域A11:B14中通过数据验证建立下拉清单。 步骤二:在单元格C11中输入并下拉即可 “=INDEX($A$1:$D$8,MATCH(A12,$A$1:$A$8,0),MATCH(B12,$A$1:$D$1,0))” 思路:
注意:INDEX函数不支持生成内存数组,因此只能在多单元格数组公式中正常使用。 而下面是一份销售清单,要求依据单元格A12选择的产品,动态地计算“销售总量”。 步骤一:通过“数据验证”在单元格A12中插入产品下拉清单 步骤二:在单元格B12中输入即可 “=SUM(OFFSET($B$1,MATCH($A$12,$A$2:$A$7,0),0,1,6))” 思路:
和VLOOKUP函数组合实现动态查找 下面这个例子,就很好地演示了如何进行动态的查找。 步骤一:在单元格区域A12:A13和B12:B13中分别建立下拉清单 步骤二:在单元格C12中输入 “=VLOOKUP(A12,$A$1:$D$8,MATCH(B12,$A$1:$D$1,0),FALSE)” 步骤三:在单元格C13中输入 “=HLOOKUP(B13,$A$1:$D$8,MATCH(A13,$A$1:$A$8,0),FALSE)” 思路:我们以VLOOKUP函数为例:
大家要多多动手操作,才能更快地掌握这些技巧! |
|
来自: hercules028 > 《excel》