您的位置:来学习素材网 > 办公软件 > excel教程

猜你喜欢

2023-11-20 10:50
Excel中按指定条件实现报表筛选
[文章导读]Excel中按指定条件实现报表筛选

来自爱上Excel合伙人社群的一个提问:

模拟数据如下:

1问题:

在O2单元格下拉列表中选择负责人,下方自动列出该负责人相关数据

2要达到的效果:

3解决方法:

在N4单元格输入公式:

=INDEX($A$4:$J$7,ROW(A1),MATCH($O$2,$A$2:$J$2,0)+MOD(COLUMN(B1),2)-1),向右向下填充。

4公式原理分析:

Index函数功能:

在给定单元格区域中,返回特定行列交叉处的值或引用。

Index参数说明:

参数1:返回所需要数据的数据区域,这里使用$A$4:$J$7

参数2:返回第几行的数据,这里使用Row(A1)

参数3:返回第几列的数据,这里使用MATCH($O$2,$A$2:$J$2,0)+MOD(COLUMN(B1),2)-1

下面重点来分析下该公式的第三参数:

首先我们要分析一下数据分布的规律,将它转换成数值

效果如下:

转换出来的负责人为什么是2,4,6,8,10呢?因为他们所在列的数字列号就是2,4,6,8,10

这个列号是根据数据区域来转换的,而不是根据工作表的列来转换的哟

那接下来内容里的12345…8910能不能理解了呢?

问题:为什么每一列的数字都在变化,而行的却没有变化呢?如果不理解请看上面的描述

这样转换出来的效果能看出,每选择一个负责人,他的数据所对应的列就是他所在的位置列和负一列,所以我们要想办法在结果区域中返回这样的数字

首先使用的是Match函数:MATCH($B$42,$A$2:$J$2,0)

参数1:要查找的值,引用$B$42单元格

参数2:查找区域,也可以理解为在什么地方查找,引用$A$2:$J$2单元格区域

参数3:查找匹配方式,0这里使用精确匹配(如果不用精确匹配那找出来的有可能是其它结果)

经过测试,它返回的效果如下:

这是一个公式拉出来的效果,通过与我们整理出来的效果对比可以看出区别在于负1列的值需要减1,也就是说我们需要加下面这样的数值才能得到我们需要的效果

为什么是这样的呢???

2+-1=多少? 2+0=多少?

6+-1=多少? 6+0=多少?

赶紧拿计算器算一下,看结果是不是刚好是我们需要的,“别怀疑,我就是这样猜的,纯属巧合!”

这样的效果怎来呢?

使用 Mod 函数, MOD(COLUMN(B1),2)-1

返回两数相除的余数,然后-1

参数1:COLUMN(B1),目的回指定单元格引用的列号

B列是第2列,2/2余数为0,0-1自然就是负1了

C列是第3列,3/2 余数为1,1-1=0好像也是正确的吧,真是太巧了

当然,你也可以偿试修改B1为其它单元格,反正函数玩不坏,玩坏了也别叫我赔…

接下来把Match和Mod套起来看一下效果是不是我们要的了呢?

测试好以后,再把这个公式放到Index函数的第三参数吧,看看效果怎么样

注意match函数的第一参数是要查找的值,即O2单元格内容

好了,今天的分享就到这里了,若有疑问欢迎留言或到合伙人社群提出疑惑!

有关VBA解法我们下期同一时间再见!

Excel技巧

声明:本站拒绝任何弹窗、插件以及广告联盟的广告,本QQ号(254031582)只解决会员问题,素材失效问题,软件使用问题一律不回。

为广大设计朋友提供平面设计素材和教材、PSD素材、C4D模型、3DMAX模型、AE模板、矢量模板等下载

苏ICP备2023039977号-2

Copyright © 2010-2020laixuexi.cc. All Rights Reserved .