Google Sheets Query按最早关联日期筛选指定月份新客户问题求助
解决方案
问题根源
你的原公式仅筛选了当月存在Bob负责的New状态记录的客户,但没有排除那些在上月就已经有New状态记录的客户,导致误判。我们需要的是首次出现(最早联系日期)在目标月份内的Bob负责的New状态客户。
方法一:使用QUERY分组取最早日期
直接通过GROUP BY按客户分组,获取每个客户的最早联系日期,再筛选该日期落在目标月份内的客户:
=IFERROR(UNIQUE(QUERY(Log!B2:N1001070,"select B, min(E) where N = 'Bob' and C = 'New' group by B having min(E) >= date '"&TEXT(C3,"yyyy-mm-dd")&"' and min(E) <= date '"&TEXT(EOMONTH(C3,0),"yyyy-mm-dd")&"' limit 50 label min(E) ''",0)),"")
公式说明:
group by B:按客户名称分组min(E):计算每个客户的最早联系日期having子句:仅保留最早日期在目标月份内的分组label min(E) '':隐藏额外的日期列标题,最终只返回客户名称UNIQUE+IFERROR:确保结果去重且无匹配时显示空值
方法二:使用FILTER+MINIFS精准匹配
通过MINIFS获取每个客户的最早联系日期,再筛选符合条件的记录:
=IFERROR(UNIQUE(FILTER(Log!B2:B, Log!N2:N="Bob", Log!C2:C="New", Log!E2:E=MINIFS(Log!E:E, Log!B:B, Log!B2:B, Log!N:N,"Bob", Log!C:C,"New"), Log!E2:E>=C3, Log!E2:E<=EOMONTH(C3,0))),"")
公式说明:
MINIFS(...):针对当前行的客户,获取其最早的Bob负责的New状态记录日期- 筛选条件:仅保留日期等于该客户最早记录日期、且日期在目标月份内的客户
UNIQUE:去重客户名称
内容的提问来源于stack exchange,提问作者TheGuyThatDoesn'tKnowMuch
相关产品推荐
相关产品推荐

