【问题标题】:Google Sheets, Add row based on cell value with formulas includedGoogle表格,根据包含公式的单元格值添加行
【发布时间】:2021-10-16 06:19:24
【问题描述】:

我在谷歌表格电子表格中有一个相当复杂的表格(至少对我来说),旨在跟踪财政年度的股票持有量(它还包括成本基础调整和资本收益的计算)。

表格分为两部分,左侧详细说明了购买情况,包括价格、购买金额以及右侧与库存处置相关的日期。我试图允许计算不同时处理整个采购订单,即,如果购买了 15 个但仅售出 4 个,另外 11 个将在以后出售。

我可以看到实现这一点的最容易阅读的方式是,如果公式/脚本可以读取已售出的数量,如果低于购买量,请在下方添加一行,在需要的地方填写适当的值以进行进一步计算。不幸的是,我完全不知道如何让它发挥作用。

Google 表格中是否有允许根据单元格的值添加行的功能?如果是这样,我是否也可以让它填写表格的适当公式以进行适当的计算?

作为我希望的示例,下图中是当​​前表格的示例,如果 K8

我知道这是非常小众的,假设它甚至是可能的,如果有人对从哪里开始寻找任何建议,YouTube 视频或诸如此类的东西,将不胜感激。

非常感谢。

Sample Image of Table

[编辑:我被用户 on another forum 引导到 Apps 脚本文档,稍微窃取了 stackoverflow、那里用户的鼓励以及我能够自己编写函数的文档]

【问题讨论】:

    标签: google-sheets google-sheets-formula formula


    【解决方案1】:

    作为一个更新,在一些轻微的帮助和大量的窃取下,我能够将这个脚本放在适当的位置,以完全满足我的需要。

    // global 
    var ss = SpreadsheetApp.getActive();
    
    function onOpen() {
      var menu = [{name:"Split stock parcel", functionName:"addRow"}];
      ss.addMenu("Split Sale", menu);
    }
    
    function addRow() {
      var sh = ss.getActiveSheet();
      var cell = sh.getActiveCell();
      var SelectRow = cell.getRow(); 
      var lCol = sh.getLastColumn(), range = sh.getRange(SelectRow,5,1,1), range1 = sh.getRange(SelectRow, 9, 1, 2), range2 = sh.getRange(SelectRow,13,1,1), range3 = sh.getRange(SelectRow,16,1,4), clone = sh.getRange(SelectRow,8,1,1).getFormula(), clone1 = sh.getRange(SelectRow+1,8,1,1), range4 = sh.getRange(SelectRow+1,1,1,1), range5 = sh.getRange(SelectRow,3,1,1); 
      sh.insertRowsAfter(SelectRow, 1);
      range.copyTo(sh.getRange(SelectRow+1, 5, 1, 1), {contentsOnly:false});
      range1.copyTo(sh.getRange(SelectRow+1, 9, 1, 2), {contentsOnly:false});
      range2.copyTo(sh.getRange(SelectRow+1, 13, 1, 1), {contentsOnly:false});
      range3.copyTo(sh.getRange(SelectRow+1, 16, 1, 4), {contentsOnly:false});
      range5.copyTo(sh.getRange(SelectRow+1,3,1,1),{contentsOnly:false});
     clone1.setFormula(clone)
     range4.setValue("Split Sale")
    

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    相关资源
    最近更新 更多