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

Google Sheets多列转置保留空值及批量清空跨表答案方法

Google Sheets 多选题录入表问题解决方案

跨表映射保留空白单元格

原公式自动剔除空白单元格,是因为Google Sheets拼接垂直数组时会默认过滤无值空单元格,用空文本做占位即可解决。
单个学生行的映射公式替换为以下写法即可完整保留所有题目位置,空值对应未作答状态:
=TRANSPOSE({IF(Student1!B2:B4="","",Student1!B2:B4);IF(Student1!E7:E81="","",Student1!E7:E81);IF(Student1!I7:I66="","",Student1!I7:I66)})

  • 要生成所有学生的汇总行,只需把公式中Student1替换为对应学生工作表名,多个学生的公式段用分号拼接在同一个大数组内,就会自动按Student1、Student2、Student3的顺序对应汇总表第1、2、3行,完全符合映射规则
  • 公式生成的空文本占位符在导出CSV时会被识别为标准空单元格,不会干扰后续批阅流程

批量清空各学生页作答内容

通过Google Apps Script写简单宏即可实现一键清空,操作步骤如下:

  • 打开表格后点击顶部菜单栏「扩展程序」→「Apps Script」,进入脚本编辑器
  • 删除编辑器内默认的占位代码,粘贴以下代码:
function clearAllStudentAnswers() {
  const currentSheet = SpreadsheetApp.getActiveSpreadsheet();
  // 按需修改下方配置,增减学生工作表、调整要清空的区域即可
  const taskConfig = [
    {sheet: "Student1", clearRanges: ["B2:B4", "E7:E81", "I7:I66"]},
    {sheet: "Student2", clearRanges: ["B2:B4", "E7:E81", "I7:I66"]},
    {sheet: "Student3", clearRanges: ["B2:B4", "E7:E81", "I7:I66"]}
  ];
  taskConfig.forEach(item => {
    const targetSheet = currentSheet.getSheetByName(item.sheet);
    if (!targetSheet) return;
    item.clearRanges.forEach(rangeAddr => {
      targetSheet.getRange(rangeAddr).clearContent();
    })
  })
}
  • 点击脚本编辑器顶部的保存按钮,给项目命名后点击运行按钮,首次运行会弹出账号授权提示,按页面指引完成授权即可执行清空操作
  • 后续需要重置作答内容时,直接运行该函数即可;也可以在汇总表插入绘图按钮,把脚本绑定到按钮上,点击表格内按钮就能完成清空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:27:25