С наименьшим возможным изменением от того, как работает ваш собственный код:
=CHOOSE(MOD(MONTH($A$1)+Row()-2, 12)+1, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
Во-первых, +Row()-2
означает, что вам больше не нужно вводить +1
, +2
, +3
вручную - он будет использовать номер строки, в которой находится ячейка. (В зависимости от того, с какой строки начинается ваш список, вам может потребоваться настроить -2
)
Далее мы используем Mod(<adjusted month>,12)
- это означает, что каждый раз, когда мы достигаем 12, он сбрасывается обратно в 0: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3, 4, ...
Наконец, добавьте 1.
Если мы начнем в декабре, а формула будет в строке 2, тогда мы получим MOD(Month("2018-12-01")+Row()-2, 12)+1
, который станет MOD(12 + 2 - 2, 12) + 1
или MOD(12, 12) + 1
и, наконец, 0 + 1
.
Следующий элемент будет в строке 3, поэтому MOD(Month("2018-12-01")+Row()-2, 12)+1
становится MOD(12 + 3 - 2, 12) + 1
или MOD(13, 12) + 1
и, наконец, 1 + 1
для февраля.