分享

文章

 新华书店好书榜 2017-07-24

早上,在群里分享了一个小任务——

如何返回指定日期对应的季度数?

如10月3日,返回4季度。


原本想通过答案给大家分享一个奇妙的发现的(后面会讲)

没想到大家脑洞大开,很快给出了不同的答案

充分展示了函数的强大


就这个问题

现将各位ExcelBroers的答案整理如下,以飨各位。


01 ROUNDUP向上舍入



公式:

=ROUNDUP(MONTH(B2)/3,0)&'季度'

▼ 解析

MONTH返回日期的月份(10),除以3即3.333,ROUNDUP向上舍入,不保留小数,结果为4,即4季度。


02 CEILING向上舍入


公式:

=CEILING(MONTH(B3/3),1)&'季度'

▼ 解析

MONTH(B3/3)将月份转化为小数(10/3=3.333),CEILING对结果向上舍入,返回最小的、基数1的倍数值(4),即4季度。



公式:

=CEILING(MONTH(B3),3)/3&'季度'

▼ 解析 

仍然用CEILING,但是最后再除以3。CEILING将月份值(7)向上舍入为最小的、基数3的倍数值(9),然后再除以3(9/3=3),即返回3季度。



03 数据的奥妙:LEN求位数



公式:

=LEN(2^MONTH(B4))&'季度'

▼ 解析 

这个方法是我原本要分享给大家的,很少有人会注意到这样一个数学规律——

2^1=2,2^2=4,2^3=8:结果全是1位2^4=16,2^5=32,2^6=64:结果全是2位2^7=128,2^8=256,2^9=512:结果全是3位2^10=1012,2^11=2024,2^12=4048:结果全是4位所以,=LEN(2^MONTH(J48))&'季度' 可以返回对应的季度数。


所以,凡是1季度的月份,2^MONTH()的结果都是一个1位数;凡是2季度的月份,2^MONTH()都是一个2位数;凡是3季度的月份,2^MONTH()的结果都是一个3位数;凡是4季度的月份,2^MONTH()都是一个4位数。

因此,通过LEN函数判断2^MONTH()的位数即可确定对应的季度数。


04 VLOOKUP+数组



公式:

=VLOOKUP(MONTH(B5),{1,1;2,1;3,1;4,2;5,2;6,2;7,3;8,3;9,3;10,4;11,4;12,4},2,0)&'季度'

▼ 解析

这个方法很妙,但是不容易理解,尤其对于不了解数组的同学。简单解释如下,{1,1;2,1;3,1;4,2;5,2;6,2;7,3;8,3;9,3;10,4;11,4;12,4}是一个数组,相当于构造了一个12行2列的表,如下图:


第1列为月份,第2列为季度数。然后,用VLOOKUP匹配月份对应的季度即可。


怎么样,学到了吗?

以下是群里的讨论情况~

☜ 左右滑动,查看多张 ☞


如果你也想入群跟大家一起学习

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多