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

如何借助Google Sheet实现客户仅查看自身培训记录?

Google Sheet实现学员仅查看个人培训记录的方法

完全可以实现这个需求,下面是两种实用的方案:

方案一:查询函数+受保护范围(简单易上手)

  • 第一步:把所有培训记录放到一个隐藏工作表(比如命名为「总数据库」),只给自己开放这个表的编辑/查看权限,学员看不到这个表。
  • 第二步:新建一个对外的工作表(比如叫「个人记录查询」):
    • 在A1单元格写提示:请输入你的姓名:,B1单元格留空让学员输入自己的名字
    • 在A3单元格粘贴公式:=IF(B1="","",QUERY('总数据库'!A:C,"SELECT * WHERE A = '"&B1&"'",1))
    • 给这个表设置「受保护的范围」,锁定公式区域,防止学员修改公式,同时给所有学员开放这个表的「查看」权限。
      学员只要输入自己的姓名,就能自动筛选出属于自己的培训记录。

方案二:Google Apps Script自动匹配(无需手动输入)

如果想让学员打开表格直接看到自己的记录,不用手动输入姓名,可以用脚本实现:

  1. 打开你的Google Sheet,点击顶部「扩展程序」→「Apps Script」
  2. 删除默认代码,粘贴下面的脚本:
function onOpen() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const userEmail = Session.getActiveUser().getEmail();
  // 提前建一个「用户映射」工作表,A列存姓名,B列存对应学员的Google登录邮箱
  const userMapSheet = ss.getSheetByName('用户映射');
  const userMapData = userMapSheet.getDataRange().getValues();
  let targetName = '';
  
  // 匹配当前登录用户的邮箱对应的姓名
  for (let i = 1; i < userMapData.length; i++) {
    if (userMapData[i][1] === userEmail) {
      targetName = userMapData[i][0];
      break;
    }
  }

  const dataSheet = ss.getSheetByName('总数据库');
  const allData = dataSheet.getDataRange().getValues();
  // 创建或重置「我的记录」工作表
  let personalSheet = ss.getSheetByName('我的记录');
  if (personalSheet) {
    personalSheet.clearContents();
  } else {
    personalSheet = ss.insertSheet('我的记录');
  }

  // 筛选并写入当前用户的记录
  const filteredRecords = allData.filter(row => row[0] === targetName);
  if (filteredRecords.length > 0) {
    personalSheet.getRange(1, 1, filteredRecords.length, filteredRecords[0].length).setValues(filteredRecords);
  } else {
    personalSheet.getRange(1,1).setValue('未找到你的培训记录');
  }

  // 隐藏其他工作表,只显示个人记录
  ss.getSheets().forEach(sheet => {
    if (sheet.getName() !== '我的记录') {
      sheet.hideSheet();
    }
  });
}
  1. 保存脚本(命名随便,比如「PersonalRecordFilter」),首次运行需要授权(按照提示完成权限验证即可)
  2. 给学员分配表格的「查看」权限,他们打开表格时,脚本会自动根据登录邮箱匹配姓名,筛选出对应的记录,并且只显示「我的记录」工作表,看不到其他学员的数据。

注意事项

  • 方案一里要确保学员输入的姓名和「总数据库」里的完全一致(包括大小写、空格),否则查不到数据
  • 方案二必须提前建好「用户映射」表,把姓名和对应登录邮箱一一对应,避免重名导致的错误
  • 无论用哪种方案,「总数据库」工作表一定要设置成仅你能访问,防止学员看到全部数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:20:24