Excel/Google电子表格中的独特月份-年份组合

czq61nw1  于 2023-01-27  发布在  Go
关注(0)|答案(2)|浏览(260)

我有一个日期列(A),我想创建一个具有唯一月份-年份的列。
我可以使用UNIQUE函数,但这需要创建一个额外的列(B):= DATE(YEAR(A1),MONTH(A1))和最后一列= UNIQUE(B1:B)
问题是,我能在不创建额外列的情况下完成它吗?

azpvetkf

azpvetkf1#

截至2023年,GSheet和Excel都有UNIQUE函数和BYROW函数,后者比ARRAYFORMULA定义更好,更容易理解。因此,我提出了一个新的解决方案,在这两种产品中都适用:

=unique(byrow(A:A; lambda(d; date(year(d); month(d); 1))))

说明:BYROW()函数循环遍历A列中的所有日期,并使用LAMBDA()构造一个日期列,该日期列用1替换每个日期所在月份的日期。2然后UNIQUE()函数只接受唯一的日期。

  • --下面的答案在GSheet中仍然有效,但有点过时,在Excel中不起作用--*

将日期表达式包含在ARRAYFORMULA中:

=UNIQUE(ARRAYFORMULA(DATE(YEAR(A1:A10), MONTH(A1:A10), 1))

Excel中没有UNIQUE()函数,它只存在于Google Sheets中。你可以使用INDEX/MATCH/COUNTIF格式的公式来模拟它,但它肯定没有上面的解决方案那么简单。

xtfmy6hx

xtfmy6hx2#

当我使用2018年2月的答案时,我总是在列表的最后得到一个奇怪的日期。这是因为空白单元格被考虑在内了。
我使用过滤器来删除它们,这给了我唯一的月/年值

=UNIQUE(ARRAYFORMULA(DATE(YEAR(FILTER(A1:A10, A1:A10<>"")), MONTH(FILTER(A1:A10, A1:A10<>"")), 1)))

相关问题