如何在Google Sheets中匹配今日日期并镜像其对应相邻单元格到今日视图
Google Sheets 跨表同步今日高亮内容到「今日视图」解决方案
方案1:公式方案(无需代码,适配少量工作表场景)
如果你的日历内容都集中在1-2个工作表内,直接使用公式即可实现需求:
- 首先在「今日视图」任意空白单元格(如A1)输入今日日期公式:
=TODAY() - 在A2单元格输入如下匹配公式,向右填充到G列、向下填充到第8行,即可自动同步日历表中今日日期对应7*7区域的内容:
=IFERROR(OFFSET(日历!$A$1,MATCH(TODAY(),日历!$A:$A,0)-1+ROW(A1)-1,COLUMN(A1)-1),"")
- 如需遍历多个工作表,先在「今日视图」空白列(如Z列)列出所有需要检索的日历工作表名称,再在A2单元格输入数组公式:
=BYROW(SEQUENCE(7),LAMBDA(row_offset,BYCOL(SEQUENCE(7),LAMBDA(col_offset,REDUCE("",Z:Z,LAMBDA(res,sheet,IF(res<>"",res,IFERROR(OFFSET(INDIRECT(sheet&"!$A$1"),MATCH(TODAY(),INDIRECT(sheet&"!$A:$A"),0)-1+row_offset-1,col_offset-1),"")))))))
方案2:Apps Script脚本方案(稳定适配多工作表、自动识别高亮)
如果需要遍历全工作簿、或者直接识别绿色高亮单元格同步,推荐使用脚本方案,支持每日自动更新无需手动操作:
- 操作步骤:
- 打开表格后点击顶部菜单栏「扩展程序」->「Apps 脚本」
- 删除编辑器内默认代码,粘贴如下代码:
function syncTodayView() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const todayView = ss.getSheetByName("今日视图"); const targetRange = todayView.getRange("A2:G8"); targetRange.clearContent(); // 按日期匹配替换成按高亮匹配,修改下方判断逻辑即可 const today = new Date(); today.setHours(0,0,0,0); const allSheets = ss.getSheets(); let targetCell = null; // 遍历所有工作表查找今日日期/高亮单元格 for(let sheet of allSheets) { if(sheet.getName() === "今日视图") continue; const data = sheet.getDataRange().getValues(); for(let r = 0; r < data.length; r++) { for(let c = 0; c < data[r].length; c++) { // 按日期匹配逻辑 if(data[r][c] instanceof Date) { const cellDate = new Date(data[r][c]); cellDate.setHours(0,0,0,0); if(cellDate.getTime() === today.getTime()) { targetCell = sheet.getRange(r+1, c+1); break; } } // 按高亮匹配逻辑(替换上面的日期判断即可,颜色码改成你的绿色值) // if(sheet.getRange(r+1,c+1).getBackground() === "#34a853") { // targetCell = sheet.getRange(r+1, c+1); // break; // } } if(targetCell) break; } if(targetCell) break; } // 同步7*7区域内容到今日视图 if(targetCell) { const sourceVals = targetCell.offset(0,0,7,7).getValues(); targetRange.setValues(sourceVals); } }- 点击保存按钮,命名项目后按照提示授权脚本访问表格权限
- 设置自动更新:点击左侧菜单栏「触发器」(闹钟图标)-> 「添加触发器」,选择
syncTodayView函数,事件源选择「时间驱动」,触发频率设置为「每日」,选择你需要的更新时间保存即可。
内容的提问来源于stack exchange,提问作者James Doherty
相关产品推荐
相关产品推荐

