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

谷歌表格观影清单:随机抽取未勾选已看电影的函数/脚本求助

谷歌表格随机抽取未观看影片解决方案

方法一:公式实现(无需脚本)

在I5单元格中输入以下公式即可自动抽取未勾选“已看”的影片:

=IFERROR(INDEX(FILTER(B:B, H:H=FALSE), RANDBETWEEN(1, COUNTA(FILTER(B:B, H:H=FALSE)))), "没有未观看影片")
  • 逻辑说明:
    • FILTER(B:B, H:H=FALSE):筛选出H列(已看复选框)未勾选的所有影片名称(B列)
    • COUNTA(...):统计筛选后剩余的未观看影片数量
    • RANDBETWEEN(1, ...):生成1到未观看影片总数之间的随机整数
    • INDEX(...):根据随机数选取对应位置的影片
    • IFERROR(...):当没有未观看影片时,显示提示文本避免报错

方法二:Apps脚本实现(支持按钮触发)

如果需要手动触发抽取操作,可以用脚本实现:

  1. 打开你的谷歌表格,点击顶部菜单栏「扩展」→「Apps脚本」
  2. 清空默认代码,粘贴以下脚本:
function randomUnwatchedMovie() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 获取B列到H列的所有数据(从第2行开始跳过表头)
  const dataRange = sheet.getRange(2, 2, sheet.getLastRow() - 1, 7);
  const data = dataRange.getValues();
  // 过滤掉已勾选“已看”的影片(H列对应数组索引6)
  const unwatchedMovies = data.filter(row => !row[6]);
  
  if (unwatchedMovies.length === 0) {
    sheet.getRange("I5").setValue("没有未观看影片");
    return;
  }
  // 随机选取一部未观看影片
  const randomIdx = Math.floor(Math.random() * unwatchedMovies.length);
  // 将结果写入I5单元格
  sheet.getRange("I5").setValue(unwatchedMovies[randomIdx][0]);
}
  1. 点击脚本编辑器顶部的「保存」按钮,命名项目(比如“随机选电影”)
  2. 点击「运行」按钮,首次运行需要授权脚本访问你的表格数据
  3. 返回表格,点击「插入」→「绘图」,绘制一个按钮(比如“抽电影”),右键按钮选择「分配脚本」,输入randomUnwatchedMovie后确定,之后点击按钮即可触发抽取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:25:02