分享

一个小问题就能看出你的函数功底……

 L罗乐 2018-01-14

Excel基础学习园地


公众号“Excel基础学习园地”是一个免费发布Excel基础知识、函数应用、操作技巧、学习方法等资讯的公众号,请点击上方“Excel基础学习园地”添加关注,方便我们每天向您推送精彩资讯。


今天我们通过一个很常见的编序号问题,来测试一下大家的函数功底,问题如图,要根据B列的部门在A列生成一组序号,如果有不同的部门,序号就增加1:

拿到这个问题不知道大家是如何分析的,比较常规的思路是这样的:

这个编号就是对部门进行计数,相同部门算一次,实际上就是依次统计B列部门的不重复个数。

所以公式就有了:=SUMPRODUCT(1/COUNTIF(B$2:B2,B$2:B2))

关于这个公式之前的文章有过详细讲解,可以参考阅读:统计不重复数据个数的若干公式解析,脑洞大开了……


既然说到常规思路,那么就会有不常规的思路,再来换个角度看看这个问题,就本例而言,实际上还有一个特点,部门是经过排序的,也就是说,如果B的部门发生了变化,就加1,由此得到一个不常规的公式:=SUM(B1<>B2,A1)

这个公式考察了两个基本功:

1、公式用B2<>B1,来对比B列当前行的部门是不是和上一行的部门名称相同,得到逻辑值TRUE或是FALSE,逻辑值在计算的时候TRUE相当于1,FALSE相当于0;

2、SUM函数可以忽略单元格中的文本,所以这里用了A1做参数并不会得到错误值。

对于这个公式,一些刚接触函数的朋友可能还是没有理解,下面来做一个简单说明:

以A2单元格中的公式为例:

=SUM(B2<>B1,A1),B2单元格的“企划”不等于B1的“部门”,因此B2<>B1得到逻辑值TRUE,用它和A1作为SUM函数的参数,SUM函数忽略A1单元格的文本,只计算TRUE,最终得到计算结果1。

到了A3单元格,公式变成:

=SUM(B3<>B2,A2) ,B3单元格与B2相同,因此B2<>B1得到逻辑值FALSE,用它和A2单元格的序号1作为SUM函数参数,最终结果是2。

其他单元格的计算过程也是如此。


如果明白了这个不太常规的思路,其实这个公式还可以更有个性:=(B1<>B2) N(A1)


这个公式更直接,拿逻辑值直接与上一个单元格相加,至于这个N(A1),只是为了将A1的文字变成0而已,否则就会得到错误值,因为文本不能直接拿来计算的。


这三个公式同样可以解决这个问题,你更喜欢哪一个呢?

老菜鸟一直说的函数基础,就包含了逻辑值的运用,如果基础真的够扎实,解决问题并不需要掌握很多函数,而是能把简单的函数用到极致,正所谓大道至简,返璞归真!




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多