【问题标题】:Possible to use Google Spreadsheet functions in Google App Script?可以在 Google App Script 中使用 Google 电子表格功能吗?
【发布时间】:2014-12-05 05:18:34
【问题描述】:

我刚刚发现了 Google App Scripts,但我已经被一些东西难住了......

我正在尝试为查找某些历史股票价格的 Google 电子表格编写脚本。我发现 Google App Scripts 中的 FinanceApp 服务已被弃用,并且似乎被 Google Spreadsheets 中的 GOOGLEFINANCE() 函数所取代。但是,当我只需要一个单元格时,它会返回一个数组,而该数组正在破坏工作。

所以我想编写一个简短的脚本来调用 GOOGLEFINANCE() 电子表格函数,并从 GOOGLEFINANCE() 返回的数组中找到我需要的一条信息。但是,我找不到在脚本中访问电子表格函数(SUM、VLOOKUP、GOOGLEFINANCE 等)的方法。

有没有办法在脚本中访问这些函数?或者,是否有新服务可以替代已弃用的 FinanceApp 服务?

非常感谢您的帮助!

【问题讨论】:

标签: google-apps-script google-sheets google-sheets-formula google-finance


【解决方案1】:

你可以试试这个:

var trick = SpreadsheetApp.getActiveSheet().getRange('D2').setValue('=GOOGLEFINANCE("GOOG")').getValue();

【讨论】:

  • 如果你能在你的答案中提供一些解释,那真的很有帮助。
【解决方案2】:

Google Apps 脚本不支持本机电子表格函数。

您最终可以通过读取您在其中编写公式的单元格的值(在写入和读取中使用脚本)来使用有点麻烦的解决方法,但这将不太实用和/或快速。

【讨论】:

    【解决方案3】:

    有一种可能的方法,使用 .setFormula()。此函数的行为类似于 .setValue(),可以按以下方式使用:

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var mySheet = ss.getSheets()[0]
    
    //Code Below selects the first cell in range column A and B
    var thisCell = mySheet.getRange('A:B').getCell(1,1); 
    
    thisCell.setFormula('=SUM(A2:A4)');
    

    您在此函数中编写的所有公式都被视为字符串,在 .setFormula() 输入中必须包含 ' 或 "。

    【讨论】:

      【解决方案4】:

      您可以尝试结合 GOOGLEFINANCE 的 INDEX 函数-

      供参考,

      =GOOGLEFINANCE("MSFT", "PRICE", "01/01/21")

      返回数组:

          Date    Close
          1/4/2021    217.69
      

      可以添加INDEX函数,使用数组的行、列坐标从数组中挑选出特定的元素。

      =INDEX(GOOGLEFINANCE("MSFT", "PRICE", "01/01/21"),2,2)

      这仅返回第 2 行第 2 列中的数据 - 217.69

      【讨论】:

        猜你喜欢
        • 2012-07-21
        • 2021-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多