欧内斯特(Ernest)需要公式或宏来首先确定一年中的第N个星期日(假设是该年的第23个星期日),然后返回该星期日发生的月份的名称。他不知道如何构造这样的公式或宏。

可以使用宏来完成此任务,但是使用公式很容易完成,因此我们将遵循该路线。由于Excel使用序列号作为日期,因此可以很容易地进行必要的数学运算来找出第N个星期日。

找出正确公式的诀窍是找出上一年的最后一个星期日。 (是的,最后一个星期日。)可以用多种方法来完成,但这是一个很好的方法,假设您想要的四位数年份存储在单元格A1中:

=DATE(A1,1,1)-WEEKDAY(DATE(A1,1,1)-1)

之所以可行,是因为默认情况下WEEKDAY函数返回的值是1到7(星期日到星期六)。举例来说,假设A1中的年份是2019。这意味着WEEKDAY将返回2019年1月1日的值3,这意味着它位于星期二。从中减去1,得到2,然后从1月1日的实际日期中减去。结果是2018年最后一个星期日的日期,即12月30日。

有了该日期,您所需要做的就是将所需的星期日的数目(假设在单元格B1中)乘以7。将其添加到上面计算的日期中,即可得到第N个星期日的日期所需年份:

=(DATE(A1,1,1)-WEEKDAY(DATE(A1,1,1)-1))+(B1*7)

此时,您有两个选择。一种是可以对上述公式所在的单元格应用自定义格式。使用“ mmmm”的自定义格式将结果显示为完整的月份名称。我倾向于使用替代选项,即以这种方式将整个公式包装在TEXT函数中:

=TEXT((DATE(A1,1,1)-WEEKDAY(DATE(A1,1,1)-1))+(B1*7), "mmmm")

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(1564)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。