答案1
这取决于您是否需要按照显示的顺序保留它们。如果需要,您可以使用以下命令:
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)。
第二组公式完全相同,只是它不是使用行号列表,而是直接提取日期列表。