如何修改Google Sheets公式,仅统计多日期单元格中符合条件的最大日期
解决方案:统计每个单元格最大日期符合条件的数量
基础版公式(包含单日期+多日期单元格,仅统计每个单元格的最大日期是否达标)
=SUM(ARRAYFORMULA( --(IFERROR( BYROW(IMPORTRANGE("[sheet id]","'Oct 2022'!$O$5:$O$200"), LAMBDA(cell, MAX(IFERROR(DATEVALUE(SPLIT(REGEXREPLACE(cell,"[,\s]+",CHAR(10)),CHAR(10)))) ) ) >= DATE(2023,7,1) )) )
核心逻辑拆解
BYROW + LAMBDA:针对每个单元格独立处理,确保多日期单元格的日期不会和其他单元格混淆,这是和原公式全局拆分的核心区别REGEXREPLACE(cell,"[,\s]+",CHAR(10)):统一把单元格内的逗号、空格替换为换行符,保证拆分规则一致DATEVALUE + SPLIT:将拆分后的日期文本转为可计算的日期值,IFERROR处理无效文本MAX(...):提取当前单元格内所有日期的最大值--(...) >= DATE(2023,7,1):将"最大值是否达标"的布尔结果转为1/0,方便SUM统计总数
进阶版公式(仅统计多日期单元格的最大日期是否达标)
如果需要排除单日期单元格,只针对包含多个日期的单元格统计,可添加多日期判断:
=SUM(ARRAYFORMULA( --(IFERROR( BYROW(IMPORTRANGE("[sheet id]","'Oct 2022'!$O$5:$O$200"), LAMBDA(cell, IF(REGEXMATCH(cell,"[,\s]"), MAX(IFERROR(DATEVALUE(SPLIT(REGEXREPLACE(cell,"[,\s]+",CHAR(10)),CHAR(10)))), NA() ) ) ) >= DATE(2023,7,1) )) )
REGEXMATCH(cell,"[,\s]"):通过识别单元格内的逗号/空格,判断是否为多日期单元格,单日期单元格返回NA()不参与统计
内容的提问来源于stack exchange,提问作者David J. Myers
相关产品推荐
相关产品推荐

