Это зависит от того, нужно ли вам хранить их в представленном порядке. Если вы это сделаете, вы можете использовать следующее:
C2: =IFERROR(MONTH(INDEX($A$1:$A$500,SMALL(IF($A$1:$A$500<>"",ROW($A$1:$A$500),""),ROW()-1))),"")
D2: =IFERROR(DAY(INDEX($A$1:$A$500,SMALL(IF($A$1:$A$500<>"",ROW($A$1:$A$500),""),ROW()-1))),"")
E2: =IFERROR(YEAR(INDEX($A$1:$A$500,SMALL(IF($A$1:$A$500<>"",ROW($A$1:$A$500),""),ROW()-1))),"")
Если у вас все в порядке со вспомогательным столбцом, вы можете просто извлечь даты в их собственный столбец с помощью:
F2: =IFERROR(INDEX($A$1:$A$500,SMALL(IF($A$1:$A$500<>"",ROW($A$1:$A$500),""),ROW()-1)),"")
Все это формулы массива, введенные с помощью сочетаний клавиш CTRL+SHIFT+ENTER. Таким образом, вам нужно выполнять поиск только один раз за строку, а не три раза.
Если они могут быть в любом порядке, вы можете пропустить часть индекса и просто использовать:
C2: =IFERROR(MONTH(SMALL($A$1:$A$500,ROW()-1)),"")
D2: =IFERROR(DAY(SMALL($A$1:$A$500,ROW()-1)),"")
E2: =IFERROR(YEAR(SMALL($A$1:$A$500,ROW()-1)),"")
Опять же, если вы можете использовать вспомогательный столбец, вы можете использовать:
F2: =IFERROR(SMALL($A$1:$A$500,ROW()-1),"")
Это даст вам результаты в порядке возрастания даты и не нужно вводить с помощью сочетания клавиш CTRL+SHIFT+ENTER.
Увеличьте $ A $ 1:$ A $ 500 на все, что вам нужно, и скопируйте формулы вниз, чтобы увеличить количество результатов, которые вы хотите увидеть.
Первый набор формул генерирует список номеров строк, имеющих значения, а затем использует функцию Small для извлечения n-го значения в порядке возрастания, где n на одну единицу меньше строки, в которой находится формула (Row ()- 1).
Второй набор формул точно такой же, за исключением того, что вместо списка номеров строк он просто вытягивает список дат напрямую.