DC娱乐网

Excel 没有季度函数,如何列出当前季度的每一天?

今天继续说日期序列:如何生成当日所在季度的每一天?案例:生成当前日期所在季度的完整日期列表,效果如下图所示。解决方案:整

今天继续说日期序列:如何生成当日所在季度的每一天?

案例:

生成当前日期所在季度的完整日期列表,效果如下图所示。

解决方案:

整个公式比较长,为了帮助大家理解,我把它拆分开来,分段讲解。

1. 在 B2 单元格输入以下公式:

=DATE(YEAR(TODAY()),CHOOSE(CEILING(MONTH(TODAY())/3,1),1,4,7,10),1)

公式释义:

date 是用于生成日期的函数,格式为 date(年,月,日);

YEAR(TODAY()):今天日期所在的年份,用作 date 的第一个函数;

CEILING(MONTH(TODAY())/3,1):

ceiling 函数的作用是将第一个参数向上舍入到最接近第二个参数的倍数;

用 month 提取出当日所处的月份,除以 3 以后以 1 的倍数向上舍入,就能根据月份计算出季度数,结果分别为 1、2、3、4;

CHOOSE(...,1,4,7,10):

choose 函数的作用是使用索引号返回数值参数列表中的数值;

语法为 choose(索引号,值1, [值2], ...);

以季度为索引号,提取出每个季度的第一个月的月份;

这段公式在 date 的第二个参数的位置,承担月份的职责;

DATE(...,...,1):有了前面的年和月,第三个参数为 1,得到的日期就是所处季度的第一天。

2. 在 C2 单元格输入的以下公式:

=EOMONTH(DATE(YEAR(TODAY()),CHOOSE(CEILING(MONTH(TODAY())/3,1),1,4,7,10)+2,1),0)

公式释义:

这里的 date 函数跟前面异曲同工,唯一的差别是在第二个参数的公式后面 +2,作用是提取出当季度的最后一个月份;

EOMONTH(...,0):最后用 eomonth 函数提取出当月的最后一天的日期。

3. 在 A2 单元格中输入以下公式:

=SEQUENCE(C2-B2+1,,B2)

公式释义:

SEQUENCE 函数的作用是生成一序列连续的数值;

第一个参数 C2-B2+1 是数列的行数,用季度的最后一个日期减去第一个日期,再 +1,就是总天数,即总行数;

第二个参数是列数,省略的话默认为 1;

第三个参数 B2 是起始值。

4. 将 A 列的格式修改为日期。