Google Sheets如何根据跟踪号单元格是否为空自动填充发货状态
优先方案:内置公式(无编程基础即可用)
所有主流电子表格工具(Google Sheets、微软Excel、飞书文档、腾讯文档)都可以直接用公式实现,无需写脚本:
- 假设物流跟踪号存储在B列,
Shipped列为相邻的C列,表头占1行 - 点击C2单元格,输入公式:
=IF(ISBLANK(B2),"No","Yes") - 鼠标放在C2单元格右下角,待光标变成十字后下拉填充整列即可,后续跟踪号列内容变更时,
Shipped列会自动同步更新结果。
进阶方案:自动触发脚本(新增订单无需手动拉取公式)
如果需要新增订单行时自动填充结果,不用每次手动拉公式,可以使用对应平台的脚本:
Google Sheets (Apps Script)
操作步骤:
- 打开表格,点击顶部菜单栏「扩展程序」->「Apps Script」
- 替换默认代码为以下内容,可根据你的实际列数修改配置参数:
function onEdit(e) { // 自定义配置:跟踪号列号(A=1、B=2,以此类推)、Shipped列号、表头行数 const TRACKING_NUMBER_COL = 2; const SHIPPED_STATUS_COL = 3; const HEADER_ROW_COUNT = 1; const editedRange = e.range; // 仅响应跟踪号列的编辑操作,跳过表头 if (editedRange.columnStart === TRACKING_NUMBER_COL && editedRange.rowStart > HEADER_ROW_COUNT) { const currentRow = editedRange.rowStart; const trackingValue = editedRange.getValue(); const statusCell = e.source.getActiveSheet().getRange(currentRow, SHIPPED_STATUS_COL); statusCell.setValue(trackingValue ? "Yes" : "No"); } }
- 保存项目并按需授权即可,后续修改跟踪号列内容时会自动更新发货状态。
微软Excel(VBA脚本)
操作步骤:
- 打开Excel文件,按
Alt+F11调出VBA编辑器 - 双击左侧项目栏中你要生效的工作表名称,粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range) ' 自定义配置:跟踪号列号、Shipped列号、表头行数 Const TRACKING_NUMBER_COL As Integer = 2 Const SHIPPED_STATUS_COL As Integer = 3 Const HEADER_ROW_COUNT As Integer = 1 If Target.Column = TRACKING_NUMBER_COL And Target.Row > HEADER_ROW_COUNT Then Cells(Target.Row, SHIPPED_STATUS_COL).Value = IIf(IsEmpty(Target.Value), "No", "Yes") End If End Sub
- 保存文件为「Excel 启用宏的工作簿(*.xlsm)」格式即可生效。
内容的提问来源于stack exchange,提问作者Tyson Biegler
相关产品推荐
相关产品推荐

