如何在Google Sheets的ArrayFormula中使用Min函数获取每行最早日期
Google Sheets ArrayFormula逐行取最早日期解决方案
方法1:BYROW + LAMBDA 方案(推荐)
这是当前兼容性最好、逻辑最清晰的实现方式,公式仅需输入一次即可自动溢出所有行的计算结果,自动忽略空白单元格。
假设待计算的日期数据位于A2:C区域(第1行为表头,从第2行开始为数据行),在输出列的首个单元格(如D2)输入以下公式即可:=BYROW(A2:C, LAMBDA(row, IF(COUNTA(row)=0, "", MIN(row))))
逻辑说明
- BYROW会逐行遍历指定的日期区域,将每行数据传入LAMBDA函数处理
- COUNTA判断当前行是否全为空白,全空白则返回空值避免无效计算
- MIN函数自动忽略空白单元格,仅对有效日期取最小值
方法2:无LAMBDA兼容方案
如果你的Google Sheets版本暂不支持LAMBDA系列函数,可以使用以下通用公式实现同等效果,同样以A2:C区域为例:
=ARRAYFORMULA(IF(A2:A="",,QUERY(QUERY(SPLIT(FLATTEN(ROW(A2:C)&"|"&A2:C),"|"),"select Col1,min(Col2) where Col2 is not null group by Col1"),"select Col2 offset 1",0)))
注意事项
- 输出列需提前设置为日期格式,否则会显示日期对应的数字序列号
- 若日期区域存在非日期类无效文本,可将MIN部分修改为
MIN(IF(ISDATE(row), row,)),过滤无效值后再计算最小值
内容的提问来源于stack exchange,提问作者Craig Avis
相关产品推荐
相关产品推荐

