You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets实现指定单元格首次为X时自动发送邮件通知

Google Sheets 未匹配值首次触发邮件提醒方案

现有流程概述

  • 使用IMPORTHML函数从多个网站抓取数据
  • 通过公式=IF(COUNTIF(A:A, B3), "O", "X")(E3、G3逻辑同理)对比A列自有站点数据,生成O/X标记
  • 用条件格式将X标红,快速识别未匹配值

需求目标

仅在C3、E3、G3首次出现X,且对应左侧单元格(B3、D3、F3)是首次抓取到值时发送提醒邮件,避免因X持续存在重复发件。邮件需包含X左侧单元格的数值。

实现方案

1. 新增提醒标记列

在表格空白区域(如H、I、J列)分别对应C3、E3、G3的提醒状态:

  • H3对应C3,I3对应E3,J3对应G3
  • 初始值留空,触发邮件后标记为已提醒

2. 编写Google Apps Script脚本

脚本核心逻辑:检查目标单元格是否满足「左侧有值+当前为X+未标记提醒」,满足则发邮件并标记状态。

示例代码:

function checkAndSendAlert() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 配置监控组:[左侧值单元格, X判断单元格, 提醒标记单元格]
  const monitorGroups = [
    ["B3", "C3", "H3"],
    ["D3", "E3", "I3"],
    ["F3", "G3", "J3"]
  ];
  
  const recipient = "你的收件邮箱@xxx.com"; // 替换为实际邮箱
  let alertMsg = "";

  monitorGroups.forEach(group => {
    const valueCell = sheet.getRange(group[0]);
    const checkCell = sheet.getRange(group[1]);
    const flagCell = sheet.getRange(group[2]);

    const targetValue = valueCell.getValue();
    const checkResult = checkCell.getValue();
    const hasAlerted = flagCell.getValue();

    // 触发条件:左侧有值 + 未匹配(X) + 未发过提醒
    if (targetValue !== "" && checkResult === "X" && hasAlerted === "") {
      alertMsg += `未匹配值:${targetValue}\n`;
      flagCell.setValue("已提醒"); // 标记为已发送
    }
  });

  // 有内容则发送邮件
  if (alertMsg) {
    MailApp.sendEmail({
      to: recipient,
      subject: "Sheet未匹配值首次提醒",
      body: "首次检测到以下未匹配自有站点的数据:\n\n" + alertMsg
    });
  }
}

3. 设置定时触发器

  • 打开脚本编辑器(表格顶部「扩展程序」>「Apps脚本」)
  • 点击左侧「触发器」图标,添加新触发器:
    • 选择函数:checkAndSendAlert
    • 事件源:「时间驱动」
    • 类型:根据数据更新频率选择(如「小时计时器」每1小时运行,或「天计时器」固定时段运行)

关键说明

  • 首次运行脚本需完成权限授权,按照提示操作即可
  • 标记列可隐藏,不影响现有表格使用
  • 手动验证后若将X改为O,无需修改标记列,标记仅用于判断首次触发

内容的提问来源于stack exchange,提问作者thomas1988

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:30:14