Как я могу получить квартал года от даты?

8

В Excel, как я могу получить квартал года от даты, используя формулу листа? У меня есть столбец с датами, охватывающими несколько лет.

  • С 1 января по 31 марта = 1 квартал
  • Апрель-01 по июнь-30 = Q2
  • так далее...

Бонусный вопрос: как я могу сдвинуть квартал, чтобы Q1 был апрелем-июнем (январь-март будет Q4).

MTONE
источник

Ответы:

7

В зависимости от того, как вы отформатировали значение даты, Excel может автоматически преобразовать его в «код даты». это количество дней с 1 января 1900 года (код даты 1). Этот номер затем используется различными функциями даты. Вот предложенная формула для простого анализа квартала.

= НЕДЕЛЯ (МЕСЯЦ (А1) / 3,0)

Это просто даст вам номер квартала. затем вы можете использовать CONCATENATE для добавления текста.

Вот отличный учебник с множеством примеров:

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

[РЕДАКТИРОВАТЬ]

Как утверждает @hyperslug, лучший способ сделать это - использовать следующее:

= СЦЕПИТЬ ( "Q", ОКРУГЛВВЕРХ (МЕСЯЦ (ДАТА (ГОД (А1), МЕСЯЦ (А1) -3, ДЕНЬ (А1))) / 3,0))

Этот метод сдвигает дату вперед или назад, прежде чем получить значение месяца перед делением на 3. Вы можете контролировать месяц, в котором начинается квартал, изменив раздел «Месяц (А1) -3».

  • Дата начала использования января: «Месяц (А1)»
  • Дата начала использования апреля: "Месяц (А1) -3"
  • Дата начала использования сентября: «Месяц (А1) +4»

Сложение и вычитание могут оба использоваться. Это не интуитивно понятно, но использование вычитания перемещает начальную четверть вперед (-1 - февраль), а сложение - назад (+1 - декабрь).

[/РЕДАКТИРОВАТЬ]


[РЕДАКТИРОВАТЬ] Примечание. Этот метод работает, но он не такой элегантный, как описанный выше.

Поработав, я нашел способ ответить на ваш бонусный вопрос. Вы можете использовать операторы IF для возврата значения (text / int) на основе месяца. Вы просто должны выяснить, какие месяцы связаны с каким кварталом.

= ЕСЛИ (И (МЕСЯЦ (А1)> = 4, МЕСЯЦ (А1) <7), "В1", ЕСЛИ (И (МЕСЯЦ (А1)> = 7, МЕСЯЦ (А1) <10), "Q2", ЕСЛИ (И (МЕСЯЦ (А1)> = 10), "Q3", ЕСЛИ (И (МЕСЯЦ (А1)> = 1, МЕСЯЦ (А1) <4), "В4"))))

Это плотное уравнение, которое использует комбинацию функций «IF», ​​«AND» и «MONTH». Изменяя значения месяца (внутри операторов AND), вы можете дополнительно контролировать, какое значение возвращается. Я использовал текстовые строки, но вы могли легко изменить их в соответствии с вашими потребностями.

[/РЕДАКТИРОВАТЬ]

Надеюсь это поможет

Doltknuckle
источник
Большое спасибо - использую это прямо сейчас!
Mtone
1
Или=CONCATENATE("Q",ROUNDUP(MONTH(DATE(YEAR(A1),MONTH(A1)-3,DAY(A1)))/3,0))
гиперслуг
Вау @hyperslug, это гораздо лучший способ сделать это. Все, что вам нужно сделать, чтобы изменить начальный месяц 1-го квартала, - это добавить или вычесть из первого расчета данных «Месяц (А1) -3». Я слишком привык работать с заявлениями IF / TEN.
Doltknuckle
2

Бонусный ответ:

=MOD(INT((MONTH(A1)-1)/3)-1,4)+1
Toc
источник
1

Это должно быть более эффективным:

=CONCATENATE("Q", INT(MONTH(A1)/4) + 1)
Дэвид
источник
2
Более эффективно чем что? Почему вы делаете это требование?
Ƭᴇcʜιᴇ007
Вычислений меньше (преобразование даты и т. Д.), Количество параметров сохраняется на минимальном уровне, и оно короче. Хотя я должен использовать INT вместо FLOOR. Я проверю это первым.
Дэвид
это работает, я обновил ответ.
Дэвид
0

Следующая формула должна работать:

=IF(OR(MONTH(A1)=1,MONTH(A1)=2,MONTH(A1)=3),"Q1",IF(OR(MONTH(A1)=4,MONTH(A1)=5,MONTH(A1)=6),"Q2",IF(OR(MONTH(A1)=7,MONTH(A1)=8,MONTH(A1)=9),"Q3",IF(OR(MONTH(A1)=10,MONTH(A1)=11,MONTH(A1)=12),"Q4",""))))

Удачи.

Сиська джордж
источник