如何从日期中获取季度?

mto*_*one 8 microsoft-excel-2007 microsoft-excel

在 Excel 中,如何使用工作表公式从日期中获取年季度?我有一列日期跨越多年。

  • 1 月 1 日至 3 月 31 日 = Q1
  • 4 月 1 日至 6 月 30 日 = Q2
  • 等等...

奖金问题:我怎样才能改变季度,使 Q1 是 4 月至 6 月(1 月至 3 月将是 Q4)。

Dol*_*kle 7

根据您格式化日期值的方式,excel 可能会自动将其转换为“日期代码”。这是自 1900 年 1 月 1 日以来的天数(日期代码为 1)。这个数字然后被不同的日期函数使用。这是一个简单的季度分析的建议公式。

= ROUNDUP(MONTH(A1)/3,0)

这只会给你季度号。然后您可以使用 CONCATENATE 添加文本。

这是一个很棒的教程,里面有很多例子:

http://www.cpearson.com/excel/DateTimeWS.htm

[编辑]

正如@hyperslug 所述,更好的方法是使用以下方法:

=CONCATENATE("Q",ROUNDUP(MONTH(DATE(YEAR(A1),MONTH(A1)-3,DAY(A1)))/3,0))

此方法在除以 3 之前获取月份值之前向前或向后移动日期。您可以通过更改“Month(A1)-3”部分来控制季度开始的月份。

  • 一月使用开始日期:“月(A1)”
  • 四月开始使用日期:“Month(A1)-3”
  • 九月开始使用日期:“月(A1)+4”

加法和减法都可以使用。这是不直观的,但使用减法将开始季度向前移动(-1 是二月),加法将其向后移动(+1 是十二月)。

[/编辑]


[编辑] 注意:此方法有效,但不如上述方法优雅。

经过一番玩耍后,我找到了一种方法来回答您的奖励问题。您可以使用 IF 语句返回基于月份的值 (text/int)。您只需要弄清楚哪个月份与哪个季度相关。

=IF(AND(MONTH(A1)>=4,MONTH(A1)<7),"Q1",IF(AND(MONTH(A1)>=7,MONTH(A1)<10),"Q2",IF) (AND(MONTH(A1)>=10),"Q3",IF(AND(MONTH(A1)>=1,MONTH(A1)<4),"Q4"))))

这是一个使用“IF”、“AND”和“MONTH”函数组合的密集方程。通过修改月份值(在 AND 语句内),您可以进一步控制返回哪个值。我使用了文本字符串,但您可以轻松修改它们以满足您的需要。

[/编辑]

希望这可以帮助