首页 > 解决方案 > 如何确保以 CSV 格式发布的 GoogleSheet 上的附加公式中的值正确

问题描述

通过创建一个使用来自附加组件 (muFund) 的公式的 GoogleSheet,如果我在网络上发布 CSV 并将其作为我的 power bi 报告的源导入,通常(只有几次工作正常)整个列计算通过使用muFund函数显示标签#NAME?而不是正确的值。

如何确保通过“附加公式”计算的值将输出连贯的 CSV?

谷歌表就是这个: 在此处输入图像描述

如您所见,公式在哪里=muFunds("nav";A2)

发布的文件(csv)如下: https ://docs.google.com/spreadsheets/d/e/2PACX-1vS4stYNCZIWp-ScKmCMlR1PHWsxRbsWjykKUhBBpeBcVz9tcDvFewCkgTvUh3QuRTJiRU_w17_H_cma/pub?gid=0&single=true&output=csv

可能通过下载上面的文件,一切都会顺利......但可能有时会发生计算值muFunds将是#NAME?......这很奇怪。我还发现这个问题没有得到解答: 使用 GoogleFinance 连接下载 CSV GoogleSheet

但是通过将此 csv 文件与 PowerBI 报告一起使用,该问题在 10 次试验中发生了 9 次。所以我在 Power Query 中为我的报告编写了以下查询

let
    Source = Csv.Document(Web.Contents("https://docs.google.com/spreadsheets/d/e/2PACX-1vS4stYNCZIWp-ScKmCMlR1PHWsxRbsWjykKUhBBpeBcVz9tcDvFewCkgTvUh3QuRTJiRU_w17_H_cma/pub?gid=0&single=true&output=csv"),[Delimiter=",", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"I" = Table.PromoteHeaders(Source, [PromoteAllScalars=true])
in
    #"I"

我们遇到了问题: 在此处输入图像描述

有什么建议吗?

标签: google-apps-scriptgoogle-sheetspowerbiexport-to-csv

解决方案


该问题似乎与谷歌发布有关,它可能比公式计算更快,因此该值计算不正确。

出于这个原因,我制作了一个小脚本,以便将所有值 ( Funds) 复制到另一张表 ( FundsValue) 中,这样它们就可以毫无问题地以 csv 发布。

在以下脚本中:

function daily_copy() {
  var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Funds");
  var destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FundsValue");

  var sheet = SpreadsheetApp.getActiveSheet();
  
  var rangeToCopy = source.getRange(1, 1, destination.getMaxRows(), 3);

//Paste to another sheet from first cell onwards
rangeToCopy.copyTo(destination.getRange(1, 1),{contentsOnly:true});

}

在此所有值都得到了正确处理,因此我还添加了一个触发器,该触发器每天自动执行脚本


推荐阅读