Google Sheets月历实现单日多预约显示的VLOOKUP多条件匹配问题咨询
草坪养护预约日历多记录显示解决方法
背景说明
该表格为草坪养护业务设计,已完成客户信息脱敏处理,仅保留与问题相关的内容。业务单日预约量最高不超过5单,表格主要使用人员为负责预约登记、财务核对的行政人员。
需求目标
*Month(日历标签页)的日期块内可以分多行展示同一日期的所有预约记录。
当前存在的问题
当前日历标签页通过VLOOKUP函数从「Work Log」标签页调取「Next Appt」字段内容,仅能返回匹配到的第一条客户信息。例如「Work Log」中8月30日存在Alice、Bob两条预约记录,*Month标签页仅能显示首条的Alice信息。
已尝试的解决方法
- 尝试用
IFS搭配多个VLOOKUP匹配Job#与对应日期,未调试出正确语法输出符合条件的客户姓名 - 尝试用
IF搭配多个VLOOKUP实现多记录返回,未达到预期效果
具体公式规则要求
当对应行F列(F28、F29、F30、F31、F32)的JOB#与「Work Log」标签页的「Job # of the Day」字段匹配、且对应预约日期为E27时,E列对应行(E28、E29、E30、E31、E32)输出「Work Log」标签页中同时满足两个匹配条件的客户姓名。
实现方案
你可以直接在E28单元格输入对应公式,下拉填充到E32即可实现需求,适配单日最多5单的业务场景:
公式内容(适用于JOB#为文本格式的场景)
=IFERROR(QUERY('Work Log'!A:C,"select A where B = date '"&TEXT($E$27,"yyyy-mm-dd")&"' and C = '"&$F28&"' limit 1",0),"")
字段对应说明
- 公式中
'Work Log'!A:C为「Work Log」标签页的查询数据范围,请根据你的实际列范围调整 - A为「客户姓名」列序号、B为「Next Appt」日期列序号、C为「Job # of the Day」列序号,请根据你表格的实际列布局修改对应序号
- 如果你的JOB#为数字格式,将公式中
and C = '"&$F28&"'修改为and C = "&$F28&"即可
效果说明
- 有匹配记录时返回对应客户姓名,无匹配记录时返回空值,不会出现报错提示影响表格可读性
- 不需要修改原有表格的整体结构,仅替换原有
VLOOKUP相关公式即可生效
内容的提问来源于stack exchange,提问作者khelllendros
相关产品推荐
相关产品推荐

