如何按条件填充Google Sheet空白单元格:同组邮箱用相同编码
填充Google Sheet分组邮箱的对应编码
方法一:用数组公式自动填充
在B2单元格直接输入以下公式,回车后即可自动填充所有空白的编码:
=ARRAYFORMULA(IF(A:A="Email", "", IF(B:B<>"", B:B, LOOKUP(2, 1/(A$1:A1="Email")*(B$1:B1<>""), B$1:B1))))
公式原理
- 跳过A列为「Email」的行,保持B列空白
- 若B列已有值,直接保留原值
- 对B列空白单元格,向上查找最近的「Email」标记之后的第一个非空编码,并填充该值,确保同一组内编码一致
方法二:用Google Apps Script批量处理
如果数据量较大,或者需要重复执行填充操作,用脚本更高效:
- 打开表格,点击「扩展程序」→「Apps 脚本」
- 替换默认代码为以下内容:
function fillBlankCodes() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const data = sheet.getDataRange().getValues(); let currentCode = ""; let inGroup = false; for (let i = 0; i < data.length; i++) { const aCell = data[i][0]; const bCell = data[i][1]; if (aCell === "Email") { currentCode = ""; inGroup = true; continue; } if (inGroup) { bCell !== "" ? currentCode = bCell : data[i][1] = currentCode; } } sheet.getDataRange().setValues(data); }
- 点击「运行」,完成授权后即可自动填充所有空白单元格。
脚本逻辑
- 遍历所有行,遇到「Email」时切换到新组,并重置当前编码
- 在组内记录第一个出现的编码,后续空白单元格直接复用该编码
- 最后批量更新表格数据,避免逐行操作的冗余
内容的提问来源于stack exchange,提问作者user36548
相关产品推荐
相关产品推荐

