如何使用Match()对范围做多条件匹配并结合通配符使用
H列通配符匹配实现
你需要的部分匹配逻辑可以直接用Google Sheets内置的通配符匹配规则实现,H列第二行输入以下公式后下拉填充即可:
=XLOOKUP("*"&G2&"*", D:D, D:D, "无匹配记录", 2)
参数说明:
- 第1参数用
"*"&G2&"*"给G列的匹配内容前后拼接通配符,实现任意位置包含的匹配效果 - 第5参数填
2即为启用通配符匹配模式
如果你的表格版本不支持XLOOKUP,可以用INDEX+MATCH组合实现相同效果:
=IFERROR(INDEX(D:D, MATCH("*"&G2&"*", D:D, 0)), "无匹配记录")
表2生成指定区间每日缺勤原因
先假设表1的缺勤记录结构为:A列存起始日期、B列存结束日期、C列存缺勤原因,表2A列用来生成连续日期序列,A2单元格输入以下公式即可自动生成从起始到结束日期的所有连续日期:
=SEQUENCE(表1!B2 - 表1!A2 + 1, 1, 表1!A2, 1)
B列对应行匹配缺勤原因,B2输入以下公式后下拉填充:
=FILTER(表1!C:C, (表1!A:A <= A2) * (表1!B:B >= A2), "无缺勤记录")
如果存在多条缺勤记录覆盖同一日期,可以把公式调整为TEXTJOIN拼接多个结果:
=TEXTJOIN("、", TRUE, FILTER(表1!C:C, (表1!A:A <= A2) * (表1!B:B >= A2), "无缺勤记录"))
内容的提问来源于stack exchange,提问作者Joe Pringle
相关产品推荐
相关产品推荐

