Google Sheets筛选表添加日期范围过滤功能求助
Google Sheets 筛选含指定日期范围的评论行
我在「Comments Table」工作表中有一个筛选表,当前用以下公式获取数据:
=IFNA(UNIQUE(filter({'Master Line List'!C:C,'Master Line List'!F:F,'Master Line List'!I:I,'Master Line List'!G:G,'Master Line List'!A:A},'Master Line List'!I:I=C1,'Master Line List'!G:G=D1)),""
现在需要新增G2和H2的起止日期过滤规则:只返回**Comments列(B列)**文本里包含处于G2-H2日期范围内日期的行。我尝试整合公式但没生效,失效公式如下:
=filter({'Master Line List'!C:C,'Master Line List'!F:F,'Master Line List'!I:I,'Master Line List'!G:G,'Master Line List'!A:A},'Master Line List'!I:I=C1,'Master Line List'!G:G=D1,byrow({'Master Line List'!C:C,'Master Line List'!F:F,'Master Line List'!I:I,'Master Line List'!G:G,'Master Line List'!A:A,lambda(Σ,or(bycol(split(Σ,char(10)),lambda(Λ,isbetween(--left(Λ,find("``",Λ)),G2,H2)))))))
修正后的可用公式
=IFNA(UNIQUE(FILTER( {'Master Line List'!C:C,'Master Line List'!F:F,'Master Line List'!I:I,'Master Line List'!G:G,'Master Line List'!A:A}, 'Master Line List'!I:I=C1, 'Master Line List'!G:G=D1, BYROW('Master Line List'!B:B, LAMBDA(comment, OR( BYCOL( SPLIT(comment, CHAR(10)), LAMBDA(line, ISBETWEEN(--LEFT(line, FIND(" ", line)-1), G2, H2) ) ) ) )) )), "")
失效原因说明
BYROW参数错误:传入了所有输出列的数据,但实际只需要处理Comments列(B列),多余列会导致逻辑混乱- 日期提取逻辑错误:
find("``",Λ)里的双反引号是无效匹配,根据评论行格式,应该用空格来拆分日期和后续内容 - 缺失原公式的
IFNA和UNIQUE逻辑,导致无匹配时返回错误值,且可能出现重复行
公式逻辑拆解
- 保留原有的
I:I=C1、G:G=D1两个基础过滤条件 - 用
BYROW遍历每一行的Comments内容 - 把多行评论按换行符拆分成单独条目
- 提取每个条目中的日期部分,转成数值后判断是否在G2到H2的范围内
- 只要该行评论里有一个日期符合范围,就保留整行
- 最后去重并处理无匹配时的空值
内容的提问来源于stack exchange,提问作者Kolev_I_N
相关产品推荐
相关产品推荐

