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

Google Sheets:基于B列文本自动填充E/F/G列数据求助

Google Sheets 自动填充问题解决方法

你之前的错误点

  • 直接在Q3单元格并列多个等式完全不符合Google Sheets公式语法,单元格公式必须是合法的函数表达式,不能随意堆砌判断式。
  • 使用绝对引用$B$3:$B$99指向整个区域,应该针对当前行的B列单元格做判断,而非整个范围。

方法一:普通公式(下拉式)

这种方法简单直接,适合手动快速设置:

  • 在E3单元格输入:=IF(B3="Sam's", 164, ""),回车后,鼠标放在E3右下角,出现十字光标时下拉到E99,每一行E列会自动根据对应B列的值判断填充。
  • F3单元格输入:=IF(B3="Sam's", 45, ""),下拉到F99。
  • G3单元格输入:=IF(B3="Sam's", 40, ""),下拉到G99。

方法二:数组公式(一键覆盖整列)

不想手动下拉的话,用数组公式一次性应用到整个目标区域:

  • E3输入:=ARRAYFORMULA(IF(B3:B99="Sam's", 164, "")),公式会自动遍历B3-B99,符合条件的E列对应行填164,否则留空。
  • F3输入:=ARRAYFORMULA(IF(B3:B99="Sam's", 45, ""))
  • G3输入:=ARRAYFORMULA(IF(B3:B99="Sam's", 40, ""))

方法三:AppScript 实时自动填充

如果之前的脚本无效,大概率是触发逻辑或范围判断错误,试试这个脚本:

  1. 打开表格,点击顶部「扩展程序」>「Apps 脚本」。
  2. 删除默认代码,粘贴以下内容:
function onEdit(e) {
  const editRange = e.range;
  // 校验编辑的单元格是否在B3:B99,且内容为"Sam's"
  if (editRange.columnStart === 2 && editRange.rowStart >=3 && editRange.rowStart <=99 && editRange.getValue() === "Sam's") {
    const targetRow = editRange.rowStart;
    const activeSheet = e.source.getActiveSheet();
    // 给对应行的E、F、G列赋值
    activeSheet.getRange(targetRow, 5).setValue(164);
    activeSheet.getRange(targetRow, 6).setValue(45);
    activeSheet.getRange(targetRow, 7).setValue(40);
  }
}
  1. 保存脚本(命名比如「AutoFillSam」),关闭编辑器。
  2. 回到表格,在B3-B99输入"Sam's",对应行的E、F、G会自动填充数值。

注意:第一次使用脚本需要授权,按提示完成权限验证即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:25:38