早上,在群里分享了一个小任务—— 如何返回指定日期对应的季度数? 如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列的表,如下图:
怎么样,学到了吗? 以下是群里的讨论情况~ ▼ ☜ 左右滑动,查看多张 ☞ ▼ 如果你也想入群跟大家一起学习 |
|
来自: 新华书店好书榜 > 《「OFFICE」》