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

如何在Google Sheets中根据姓名匹配自动修改下拉列表值

实现Google Sheets自动匹配姓名并更新状态的两种方法

方法1:使用公式快速生成状态

  • 适用场景:不需要手动修改C列状态,完全依赖B列和G列的匹配关系自动更新
  • 操作步骤:
    1. 选中C2单元格
    2. 输入公式:=IF(COUNTIF(G:G, B2)>0, "IN", "OUT")
    3. 将公式下拉填充到C列所有需要的行
  • 说明:公式会检查当前B列姓名是否在G列存在,存在则显示IN,否则显示OUT;后续B列或G列内容更新时,C列会自动同步变化

方法2:使用Google Apps Script实现自动更新(支持手动修改)

  • 适用场景:需要灵活控制,既支持自动更新状态,也允许手动修改C列的值
  • 操作步骤:
    1. 打开目标Google表格,点击顶部菜单栏的扩展程序→Apps脚本
    2. 删除编辑器内的默认代码,粘贴以下脚本:
function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  const range = e.range;
  
  // 仅处理B列(第2列)或G列(第7列)的编辑操作,跳过表头行
  if ((range.getColumn() === 2 || range.getColumn() === 7) && range.getRow() > 1) {
    const lastRow = sheet.getLastRow();
    const bValues = sheet.getRange(`B2:B${lastRow}`).getValues().flat();
    const gValues = sheet.getRange(`G2:G${lastRow}`).getValues().flat();
    
    // 遍历B列所有行,匹配G列姓名后更新C列状态
    bValues.forEach((name, index) => {
      const targetRow = index + 2;
      if (gValues.includes(name)) {
        sheet.getRange(targetRow, 3).setValue("IN");
      }
    });
  }
}
  1. 点击编辑器顶部的保存按钮,给脚本命名(比如「AutoUpdateINOUT」),关闭脚本编辑器
  • 扩展功能:如果需要当姓名从G列移除时,自动将C列改回OUT,可把脚本里的forEach循环部分替换为:
bValues.forEach((name, index) => {
  const targetRow = index + 2;
  if (gValues.includes(name)) {
    sheet.getRange(targetRow, 3).setValue("IN");
  } else {
    sheet.getRange(targetRow, 3).setValue("OUT");
  }
});
  • 说明:脚本会在编辑B列或G列内容时自动触发,匹配的C列会被设为IN(或移除匹配后设为OUT),不影响手动修改其他行的状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:10:32