我有一个包含日期的列 (A),我想创建一个包含唯一月份-年份的列。
我可以使用 UNIQUE 函数,但这需要创建一个额外的列 (B):
= DATE(YEAR(A1),MONTH(A1))
和最后一列 = UNIQUE(B1:B)
问题是,我可以在不创建额外列的情况下做到这一点吗?
最佳答案
截至 2023 年,GSheet 和 Excel 都具有 UNIQUE 函数和 BYROW 函数,该函数比 ARRAYFORMULA 定义更好且更易于理解。因此,我提出了一种适用于这两种产品的新解决方案:
=unique(byrow(A:A; lambda(d; date(year(d); month(d); 1))))
解释:BYROW() 函数循环遍历 A 列中的所有日期,并使用 LAMBDA() 构造一个日期列,该列将每个日期的月份日期替换为 1。然后 UNIQUE () 函数仅采用唯一的日期。
-- 下面的答案在 GSheet 中仍然有效,但有点过时,并且在 Excel 中不起作用 --
将日期表达式包装在 ARRAYFORMULA 中:
=UNIQUE(ARRAYFORMULA(DATE(YEAR(A1:A10), MONTH(A1:A10), 1))
Excel 中没有 UNIQUE() 函数,仅存在于 Google 表格中。您可以使用 INDEX/MATCH/COUNTIF 公式方案来模拟它,但它肯定不像上面的解决方案那么简单。
关于excel - Excel/Google 电子表格中独特的月年组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48600780/