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

Google Sheets根据单元格值添加带公式行实现股票持仓跟踪

功能实现核心方案

你需要的效果完全可以通过Google Apps Script实现,核心逻辑参考如下:

  • 触发逻辑支持两种配置:
    • 手动触发:给表格加自定义菜单,选中需要拆分的行后点击菜单按钮即可执行
    • 自动触发:绑定onEdit事件,修改K列(卖出数量)数值后自动判断是否满足拆分条件,自动执行插行逻辑
  • 核心代码示例:
function splitHoldingRow() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const targetRow = sheet.getActiveCell().getRow();
  // D列=买入数量,K列=卖出数量,对应你需求里的判断条件
  const buyAmount = sheet.getRange(targetRow, 4).getValue();
  const sellAmount = sheet.getRange(targetRow, 11).getValue();

  // 仅当卖出数量大于0且小于买入数量时执行拆分
  if (sellAmount > 0 && sellAmount < buyAmount) {
    // 在当前行下方插入新行
    sheet.insertRowAfter(targetRow);
    const newRowNum = targetRow + 1;
    // 复制原行的所有格式、公式到新行
    const copyRange = sheet.getRange(targetRow, 1, 1, sheet.getLastColumn());
    copyRange.copyTo(sheet.getRange(newRowNum, 1), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
    // 清空指定列的内容:A、B、C、D、F、G、K、L、N、O列,对应列号1、2、3、4、6、7、11、12、14、15
    const needClearCols = [1,2,3,4,6,7,11,12,14,15];
    needClearCols.forEach(colIndex => {
      sheet.getRange(newRowNum, colIndex).clearContent();
    });
    // H列仅粘贴原行的实际值,不保留公式
    sheet.getRange(targetRow, 8).copyTo(sheet.getRange(newRowNum, 8), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
    // 可选优化:原行买入数量修改为已卖出的数量,新行填入剩余未卖出的数量,无需手动修改
    sheet.getRange(targetRow, 4).setValue(sellAmount);
    sheet.getRange(newRowNum, 4).setValue(buyAmount - sellAmount);
  }
}
自定义菜单配置(简化操作)

把下面的代码加到脚本编辑器中,刷新表格后顶部会出现自定义菜单,不用每次进入脚本编辑器执行代码:

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('持仓管理工具')
    .addItem('拆分未售完持仓', 'splitHoldingRow')
    .addToUi();
}
学习建议

如果需要扩展更多功能,可以按照下面的路径学习:

  • 先掌握Google Apps Script中Spreadsheet、Sheet、Range三个核心类的常用方法,这是所有表格脚本开发的基础
  • 遇到具体需求点时拆成小模块搜索相关案例即可,比如需要自动触发就查「Apps Script 触发器配置」,需要批量修改数值就查「Range批量赋值」相关内容
  • 初期不需要看太长的系统教程,针对需求逐个实现小功能,上手速度最快

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:57:02