美文网首页
函数没有你想象中的那么复杂,只要想明白就能写出来

函数没有你想象中的那么复杂,只要想明白就能写出来

作者: 甘彬 | 来源:发表于2019-04-24 15:54 被阅读0次

对于很多Excel新手和入门级用户来说,公式函数仿佛就是Excel学习晋级的一只拦路虎。很多人会用死记硬背的方式把常用IF、COUNTIFS、SUMIFS、VLOOKUP函数的语法背了下来,可在实际应用的时候,却还是不知道在什么场景下用什么函数。

说到死记硬背,我想起来在李笑来老师的《把时间当作朋友》一书中看到的一则故事:

那天下课之后,一个男孩捧着我写的那本非常畅销的《TOEFL iBT高分作文》让我给他前面。我签了。然后他说“老师,我可不可以问你一个问题?”我笑着说“你现在可以直接问第二个了。”他说:“老师,你说,如果我把你这本书里的作文全都背下来,在考场上默写一篇,会不会被判雷同呢?”我当时一下子失去了耐心,尽管没有发火,但是语气里肯定有一些东西:“那你说呢?!”那个男孩脸红了一下,迅速走了。

显然,用死记硬背的方法是学不好写作的,李笑来老师在书中说到:“作是只有想清楚了,才有可能写清楚。想不清楚,连写出来的必要都没有。

这句话同样适用于Excel函数的学习。在Excel线下培训讲解到函数这个模块的时候,给学员讲解函数的语法和各个参数的概念之前,我都会告诉学员:“函数没有你想象中的那么复杂,只要想明白的就能写出来。”

编写函数之前,一定要梳理出数据背后的规律,我来举例说明一下。

前段时间给某银行企业培训完Excel课程之后,学员M拿着他工作中的一个问题向我咨询。这是M的业务数据(数据为模拟):

这是M需要计算的收益数据的计算规则,如果资产分类是“非标准化资产”,那么收益的计算公式是=B2*E2/F2,以此类推的按照底部的条件来计算收益。

Excel常用的5大函数及其语法分别是:

求和:SUM(区域)

逻辑判断:IF(逻辑判断式,真值,假值)

多条件计数:COUNTIFS(条件范围1,条件1,条件范围2,条件2,……)

多条件求和:SUMIFS(求和范围,条件范围1,条件1,条件范围2,条件2,……)

条件查询:VLOOKUP(查询值,数据源,返回第几列,0/1)

通常我们在遇到计算条件是如果……那么……,这类的规则的时候,一定会想到对应的函数是逻辑判断IF函数,现在判断条件有6个,也就意味着要嵌套5层IF函数才能完成这个条件判断。而实际上M的需求比现在我们看到的规则还更复杂,这就意味着将嵌套更多层的IF函数才能实现他的需求。

如果仔细观察这个运算规则,你会发现第一个B2都是固定的,最后一个F2也是固定的。唯有中间乘的数据在发生变化。

那我们是不是可以将中间乘的E2、D2或0.2拆分到两列中,看到上面的拆分结果,现在你可能有会1个问题:为什么E后面不写行号2?

因为行号2不是固定的,第一个地址如果我们直接引用B2,当公式往下复制的时候,B2会自动变成B3、B4、B5……。而后面的E2、D2我们需要根据左边的资产分类为条件,查询出这一列,再用间接引用函数INDIRECT引用出这个数据。

有关INDIRECT函数的用法,请参考此文:Excel中神秘的间接引用函数Indirect。此时如果把2写到E或D的后面,2就变成固定的。

现在的规则就变成了根据A列查询返回K列的数据了,想清楚了我们就知道接下来的公式应该怎样写了。

首先,用VLOOKUP函数用A2作为查询条件,返回K列的数据,需要用到查询函数VLOOKUP。

=VLOOKUP(A2,I:K,3,0)

接着让后面的2变成动态可变的,就需要用到ROW返回行号的函数。

=VLOOKUP(A2,I:K,3,0)&ROW(A2)

现在要把D2、E2变成对应的数据,就要用到间接引用函数INDIRECT。

=INDIRECT(VLOOKUP(A2,I:K,3,0)&ROW(A2))

由于有部分是没有引用结果的,所以需要用IFERROR函数来指定错误值的显示,如果出错了我们就返回0.2。

=IFERROR(INDIRECT(VLOOKUP(A2,I:K,3,0)&ROW(A2)),0.2)

最后前面添加B2,后面除以F2就得到了我们想要的结果了。

=B2*IFERROR(INDIRECT(VLOOKUP(A2,I:K,3,0)&ROW(A2)),0.2)/F2

涉及到复杂公式计算的时候,我们是很难一步到位的写出这个公式的,这样一步步把公式嵌套进去,能让公式化繁为简。

公式其实就把你思考的过程转换成Excel能识别的语言,只要想明白了你一定能写出来。

相关文章

  • 函数没有你想象中的那么复杂,只要想明白就能写出来

    对于很多Excel新手和入门级用户来说,公式函数仿佛就是Excel学习晋级的一只拦路虎。很多人会用死记硬背的方式把...

  • ios宏的使用和技巧

    替换字符 简单函数宏 复杂函数宏 之前的内容很容易明白了对吧,不过复杂的函数宏就没那么容易明白了。先看一下宏中的一...

  • Python基础14

    第八章 函数 8.1 函数是什么 这一小节可以不看 从这一篇教程开始,我会让你明白Python没有你想象中的那么简...

  • 销售心法——人人都能做销售

    去吧 他没有你想象中的那么可怕 你只需知道你是谁,对手是谁 去吧 他没有你想象中的那么复杂 你只需知道这是一个基数...

  • 开店没有想象中的简单也没有那么复杂

    姐姐的店开了约摸半个月了。我们都是新手小白,之前从不知道开店是怎样一种体验。这次虽然是姐姐开店,全程参与的我也是切...

  • 不要太多付出,傻女孩

    其实对于感情,脑补的更多一些,说明白了就是自以为是。其实,你没有想象中的那么好,她也没有想象中的那么美。不过...

  • 对写作的思考和体会

    写作没有那么复杂,不需要什么条条框框束缚,想写什么拿起笔就能写。更容易吧最真实的想法写出来,有些事情写出来要比说出...

  • 人与人没有想象的那么复杂

    好像有的时候,生活没有你想象的那么难,上午班会撕名牌,一个班里的女生其实不怎么熟悉,却因为分到了一个队里,几分钟后...

  • 傻白甜

    人生就是这样,不会因为你做了什么,世界就会为你改变!人生远没有你想象的那么简单,可也没你想象中那么复杂,因为一切都...

  • 你没有想象中那么伟大

    做了一梦,丧尸爆发。客官一看,欧!要烂剧情了。回忆剩下不多,记得跟好朋友跑上了一架巴士,把门都关上,打开了禁止入内...

网友评论

      本文标题:函数没有你想象中的那么复杂,只要想明白就能写出来

      本文链接:https://www.haomeiwen.com/subject/brvggqtx.html