Мне нужно создать электронную таблицу с двумя столбцами: начальный месяц / год и последний месяц / год. Затем у меня есть еще пять столбцов: 2009 | 2010 | 2011 | 2012 | 2013
Строка под этими пятью столбцами будет содержать количество месяцев в интервале, приходящихся на этот год. Если у меня январь / 2009 - февраль / 2011, результат будет:

2009 - 12
2010 - 12
2011 - 2
2012 - 0
2013-0

Могу я сделать это без макросов?

0
user2712231 13 Май 2014 в 18:47

3 ответа

Лучший ответ

С датами в A2 и B2 и годами только в C1 по горизонтали попробуйте эту формулу в C2 по горизонтали (и вниз, если требуется)

=IFERROR(DATEDIF(MAX($A2,DATE(C$1,1,1)),MIN($B2,DATE(C$1,12,31)),"m")+1,0)

0
barry houdini 13 Май 2014 в 21:37

Эта формула должна работать:

=IF(ROUNDUP(($B2-C$1)/30;0)>12;12;IF(ROUNDUP(($B2-C$1)/30;0)<0;0;ROUNDUP(($B2-C$1)/30;0)))

Эта формула считает, что у вас есть дата начала в A2 и дата окончания в B2 в формате даты, и вы можете использовать настраиваемый формат ячейки (мммм / гггг), чтобы он выглядел как январь / 2009. Поместите эту формулу в C2, заголовок которой (ячейка C1) должен быть 2009 в формате даты (01-01-2009). Вы можете использовать произвольный формат ячеек (гггг), чтобы он выглядел как 2009 год.

Теперь перетащите эту формулу по горизонтали с заголовками 2010,2011 в формате даты соответственно.

Если у вас возникнут проблемы, дайте мне знать

Обратите внимание, что вам может потребоваться заменить точку с запятой (;) на запятую (,) в формуле

0
neophyte 13 Май 2014 в 15:36

Учитывая количество лет в C1: g1 (при необходимости измените), вы можете попробовать следующую формулу:

=SUMPRODUCT(N(YEAR(EDATE(Initial_Month_Year,ROW(INDIRECT("1:" &1+DATEDIF(Initial_Month_Year,Final_Month_Year,"m")))-1))=C$1))

Введите его в какую-нибудь ячейку, например C2 и залейте вправо, насколько это необходимо.

0
Ron Rosenfeld 13 Май 2014 в 20:16