请求实现Google Sheets日程表动态填充函数的技术支持
解决Google Sheets动态填充日程表的问题
直接在Schedule!A2单元格插入以下公式,即可自动匹配DataList的预订数据填充日程:
=ARRAYFORMULA( LET( rawData, DataList!A:D, roomCol, INDEX(rawData,,4), startCol, INDEX(rawData,,2), endCol, INDEX(rawData,,3), nameCol, INDEX(rawData,,1), targetRooms, Schedule!A2:A6, targetDates, Schedule!B1:1, BYROW(targetRooms, LAMBDA(r, BYCOL(targetDates, LAMBDA(d, IF(ISBLANK(d),, TEXTJOIN(", ", TRUE, FILTER(nameCol, roomCol=r, startCol<=d, endCol>=d)) ) )) )) ) )
公式逻辑说明
LET:将数据源和目标区域定义为变量,简化公式结构,提升可读性BYROW+BYCOL:逐个遍历日程表的房间行与日期列,实现二维数据匹配FILTER:精准筛选出当前房间下,日期处于预订起止区间内的成员姓名TEXTJOIN:若同一房间同一天存在多个预订,用逗号拼接显示所有成员ISBLANK:跳过无日期的空列,避免无效计算
适配调整要点
- 确认
DataList列对应关系:A列=成员姓名,B列=预订开始日期,C列=预订结束日期,D列=房间号 targetRooms(Schedule!A2:A6)需覆盖你所有5个房间的行范围targetDates(Schedule!B1:1)要包含所有需要展示的日期列- 若希望空单元格显示特定文本(如"空闲"),可将
TEXTJOIN部分修改为IFERROR(TEXTJOIN(", ", TRUE, FILTER(...)), "空闲")
内容的提问来源于stack exchange,提问作者oohrogerplamer
相关产品推荐
相关产品推荐

