excel引用指定单元格数据_要捕获Excel数据区域满足多条件单元格数据值?两种方法轻松搞定...

哈喽,各位粉丝朋友好,前阵子有一个名叫“寻觅032”的粉丝私信请教了我一些办公方面的问题,并且QQ加我为好友,这位QQ号为“1203241251”的朋友单独和我交流了一些财务数据处理方面的问题,他前阵子发的两个文件我因为期末工作的事忙,没来得及处理。这不?该粉丝朋友发的两个文件我昨天处理了一下,也给予他解决了。昨天解决该他的问题,我是用VBA后台的自定义函数处理的,他发的文件究竟是什么问题呢?我根据他的描述,大致总结了一下,其实质就是如何处理在一个财务数据中“找到大于本行“预计累计销量”的进货累计数量,且该累计数量是最小的”问题。

事实上,我接收他发的原文件后,仔细分析了一下,他所要求的操作无非就是在一个特定数据区域中实现多条件的数据捕获操作,并求得这些捕获的数据中的最小数据拿出来。昨天给他用VBA方式实现,非常简单,但是该粉丝朋友说他对VBA不是很熟悉,我也在网上与他交流,简单解释了一下,希望他能够慢慢看懂。而今天监考完后,我回到自己的办公室,开机后,无聊期间,忽然想起昨天给这位粉丝解决的问题。总感觉不是很完美,正如这位粉丝朋友所说的一样,也许也有很多人不甚了解VBA,可能理解起来比较费时、费事,鉴于这种情况。我决心今天开辟第二种纯粹在工作表中用简单公式的形式实现昨天这位粉丝的问题,这样增加一种解决问题的方案,大家更多可以进行选择。所以,我今天准备给给位粉丝朋友全面分析两种方法实现多条件下捕获Excel数据区域的特定数据的方法:VBA自定义函数法+Excel工作表中普通公式法。

好吧,我们依然废话不多说了,说干就干哦。下面,我们就借助这位粉丝朋友的案例开始解决问题吧。首先,我们来看一下,该粉丝朋友发给我的文件内容及其他在QQ上和我沟通想实现的功能。

一、粉丝朋友要解决问题的案例内容和想法截图

5aa3be3c20d5f3acb720480a3b741e16.png

图1 粉丝朋友的想法及案例内容

二、分析名叫“寻觅032”粉丝朋友的问题

该朋友的问题实质上就是多条件下对Excel单元格数据区域捕获特定的单元格数据的操作。如果用VBA后台方式实现的话,自由度更高,也很简单(当然,我是说对于有一定程序基础的朋友而言哈),用循环和条件判断结构实现将满足多条件的数据暂存于自定义的动态数组中,结束后用工作表函数Small即可实现回传特定捕获的单元格数据值。

但是,如果我们用普通Office办公的粉丝朋友而言,要实现这种功能数据的抓取,要在原工作表中用普通公式的话,还得好好构思一下,因为涉及到多条件的问题,而这个多条件同时满足的设计,建议最好不要用AND形式(不信大家可以试试),最好用“*”号的形式将多个条件连接起来实现多条件(每个条件务必用括号“( )”括起来)的同时满足效果。例如,我们如果要用IF结构实现同时满足A>0且B>0的情况下返回结果A+B的结果,我们可以将公式写成“=IF((A>0)*(B>0),A+B)”的形式来解决问题,其中的两个条件分别是“(A>0)”和“(B>0)”。而且,我们不建议采用“=IF(AND(A>0,B>0),A+B)”的形式。

三、用两种方法轻松解决粉丝朋友的问题

(一)用VBA法实现捕获Excel数据区域满足多条件的单元格数据值

1、我们只需在模块中定义一个自定义函数,然后在工作表中引用我们自定义的这个函数即可。其定义的代码见下图模块1中的代码截图。如下图所示

19b75dff9fa206320ab57885d72198e7.png

图2 在模块1中自定义函数代码截图

2、在工作表中正确的位置,引用这个自定义函数以实现捕获Excel数据区域满足多条件的单元格数据值

例如,我们在工作表的H2位置输入公式“=IFERROR(Find_MinQuantity_Not_Less_Than_Expected_Quantity(D2,E2),"未找到符合条件的数量")”。如下图所示

d93730b8f91386dc27bb0cd434edb727.png

图3 工作表H2单元格公式编辑栏输入的自定义函数公式

3、用单元格自动填充公式功能,实现其他单元格的数值获取。如下图所示

f3f2bcfb4cfe1d80caaf44977d9dd40e.png

图4 自动填充公式,生成所有要求数值的单元格数据生成

看了以上的代码及其引用自定义函数,感觉我们的VBA方法还是蛮自由的,设计也很简单到位的,为了给给位粉丝更好理解VBA自定义的函数,我特地为各位加了注释,希望各位能够慢慢看懂哦!接下来,我们准备给各位分享解决该问题的人人都会的普通公式法实现捕获Excel数据区域满足多条件的单元格数据值。

(二)用普通公式法实现捕获Excel数据区域满足多条件的单元格数据值

1、我们可以在工作表的J2单元格输入公式“=MIN(IF((A2:A31=D2)*(B2:B31>=E2),B2:B31))”。如下图所示

1dd6043ff8c7faf6f20d91dcd379bda2.png

图5 J2单元格输入的求捕获的数据中的最小值数据公式

2、随机按住++,将上面的公式变为数组格式公式(数组格式公式,在原有的公式基础上外侧会自动生成花括号{ }形式),同时,可以看到J2单元格已经出现了我们需要抽取的数据。如下图所示

60f60dae2da8eff90cb11f940939eb8a.png

图6 生成数组格式公式

3、利用单元格的自动填充功能,实施对J2单元格的数组格式公式进行J2单元格后续的单元格自动填充复制。效果如下图所示

6584793bccc21c96463015f0bc29fbf6.png

图7 自动填充数组格式公式实现特定数据的所有抓取

四、为了让大家对公司的理解,我们在工作表中也详细总结了它们的详尽解释哦,各位好好看看吧。如下图所示

dddbca626af8b260e3d096f9a8c7c2f8.png

图8 工作表中VBA和普通公式法的必要总结解释

好了,我们本次同样完整地用两种方法分析并实现了在Excel单元格区域实现满足多条件的数据捕获及其特定数据的抽取,虽然内容不大,但是实用意义比较大,各位可以用我的方法,举一反三地解决Excel中出现的这些类似问题了啦!哈哈,本次作品的方法还是挺香吧!

最后,还是那句老话,非常感谢各位粉丝朋友的长期关注(头条号:跟我学Office高级办公)、推广和对作品的点评!疫情快过去了,加之天气越来越热了,大家还是要多多注意身体健康哦,与此同时,也请多多关注我的Office高级办公有实用意义的后续原创作品哦!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值