检查单元格是否含月份并与日期比对的Google Sheets实现需求
解决方案
核心思路
先将YYYY MONTHNAME格式的测试日期转换为Excel可识别的日期值,再结合Test Date Mappings工作表的起止日期区间做判断,同时区分测试通过/失败的场景。
公式实现
假设:
- 主数据集的测试日期列是C列
Test Date Mappings工作表的开始日期列是B列,结束日期列是C列- 主数据集的测试结果列(通过/失败)是D列
F列(测试通过记录的区间判断)
在F2单元格输入以下公式,下拉填充:
=IF(ISBLANK('Test Date Mappings'!B2), "", IF(AND(DATEVALUE(C2&" 1") >= 'Test Date Mappings'!B2, DATEVALUE(C2&" 1") <= 'Test Date Mappings'!C2), "Yes", ""))
公式说明:
DATEVALUE(C2&" 1"):把YYYY MONTHNAME格式(如2024 January)转成当月1号的日期值,用于区间比对ISBLANK('Test Date Mappings'!B2):判断映射表的开始日期是否为空,为空则返回空单元格AND(...):当测试日期同时落在起止区间内时,返回"Yes",否则返回空
G列(测试失败记录的区间判断)
在G2单元格输入以下公式,下拉填充:
=IF(ISBLANK('Test Date Mappings'!B2), "", IF(AND(D2="失败", DATEVALUE(C2&" 1") >= 'Test Date Mappings'!B2, DATEVALUE(C2&" 1") <= 'Test Date Mappings'!C2), "Yes", ""))
公式说明:
- 比F列多了
D2="失败"的判断,仅针对测试失败的记录执行区间校验
注意事项
- 如果
MONTHNAME是中文(如2024 一月),DATEVALUE无法识别,需改用DATE函数手动转换,示例:DATE(LEFT(C2,4), SWITCH(RIGHT(C2,LEN(C2)-5), "一月",1,"二月",2,...,"十二月",12), 1) - 确保
Test Date Mappings工作表的起止日期是Excel标准日期格式,而非文本格式
内容的提问来源于stack exchange,提问作者DanCue
相关产品推荐
相关产品推荐

