Google Sheets员工排班表匹配当日日期查询值班信息公式求助
Google Sheets 日期匹配返回当日排班数据方案
首先明确通用前提假设:员工排班表所在工作表名称为shifts employee,排班表A列为日期列,B列及之后为员工姓名、班次等对应排班数据,当前仪表盘工作表的J11单元格存储待匹配的当日日期。你可以根据自己的实际表结构调整公式内的范围参数。
场景1:单日仅1条排班记录
可直接用VLOOKUP实现匹配:
- 仅返回指定列(比如员工姓名列)公式:
=VLOOKUP(J11, 'shifts employee'!A:Z, 2, FALSE) - 一次性返回当日所有关联排班数据的数组公式:
=ARRAYFORMULA(IFERROR(VLOOKUP(J11, 'shifts employee'!A:Z, SEQUENCE(COUNTA('shifts employee'!1:1)), FALSE), "无匹配排班"))
说明:公式会自动匹配排班表的所有表头列,无需手动调整列数参数,无匹配结果时的提示文本可自定义修改
场景2:单日有多条排班记录(多人同日值班)
用FILTER公式可一次性返回所有匹配到的行数据:=FILTER('shifts employee'!B:Z, 'shifts employee'!A:A=J11, "当日无排班数据")
说明:公式会自动溢出所有匹配到的行和列,上述示例中查询范围设置为B:Z是为了跳过重复的日期列,需要保留日期列的话直接把范围改成A:Z即可
常见问题排查
- 匹配不到结果时优先核对两个单元格的日期格式是否一致,避免出现一个是日期格式、一个是文本格式的情况
- 如果排班表的日期自带时间戳,可把匹配条件改成
INT('shifts employee'!A:A)=INT(J11)来忽略时间部分的差异 - 如果需要隐藏匹配不到时的错误提示,在外层套
IFERROR函数即可
内容的提问来源于stack exchange,提问作者Han
相关产品推荐
相关产品推荐

