繁体   English   中英

Sheets API v4 为特定公式返回 #N/A

[英]Sheets API v4 is returning #N/A for specific formulas

使用 vlookup 公式时,Sheets API v4 返回 #N/A。 这个特定的错误发生在 vlookup 公式中,但我在包含大量公式的电子表格上看到了同样的问题。 似乎 API 在返回值之前不会等待电子表格计算公式。

python中的一个小代码示例:

service.spreadsheets().values().get(
    spreadsheetId='1s-fePyrjzp8_jAWy-p1smystgJXxMirmjXGJjQM91qg',
    range="FxRates salaries filter!A1:D5",
    valueRenderOption="UNFORMATTED_VALUE",
    dateTimeRenderOption="SERIAL_NUMBER"
).execute()

步骤会不会重现这个问题?

  1. 在 Google 电子表格上创建 vlookup 公式
  2. 使用 Sheets API 获取公式结果

预期输出:预期输出是一个数字,但 API 返回“#N/A(在 VLOOKUP 评估中未找到值 '43531'。)”。 电子表格本身正确计算公式,但 API 返回 #N/A

您可以通过执行以下链接轻松地在 API Explorer 上重现该问题: Google Sheets API Explorer

当我检查FxRates salaries filter!A1:D5的公式时,检索到以下值。

{
  "range": "'FxRates salaries filter'!A1:D5",
  "majorDimension": "ROWS",
  "values": [
    [
      "Date",
      "EUR",
      "USD",
      "BRL"
    ],
    [
      "=TODAY()-1",
      1,
      "=vlookup(A2,EURUSD_D!$A:$C,3,0)",
      "=vlookup(A2,EURBRL_D!$A:$C,3,0)"
    ]
  ]
}

当我检查EURUSD_D!$A:$C的公式时,检索到以下值。 GOOGLEFINANCE()检索到的值正在使用。 EURBRL_D!$A:$C的值也是相同的结果。

{
  "range": "EURUSD_D!A1:C2258",
  "majorDimension": "ROWS",
  "values": [
    [
      "Date ONLY",
      "=GOOGLEFINANCE(\"CURRENCY:EURUSD\",\"price\",date(2014,1,2),today())"
    ],
    [
      "=ARRAYFORMULA(IF(B2:B=\"\",\"\",DATE(YEAR(B2:B),MONTH(B2:B),DAY(B2:B))))"
    ]
  ]
}

从以上结果来看,您的问题的原因是“ 历史GOOGLEFINANCE数据无法在Google表格之外访问”。

历史 GOOGLEFINANCE 数据无法在 Google 表格之外访问

2016 年 9 月 27 日

我们想让您知道 GOOGLEFINANCE 函数的一个小变化,它可以轻松地将当前或历史证券信息直接提取到您在 Google 表格中的电子表格中。 从今天开始,将无法使用 Apps 脚本或 API 在表格之外下载或访问历史数据。 如果您有一个包含从 GOOGLEFINANCE 函数生成的历史数据的电子表格,并且您尝试通过 Apps 脚本或 API 下载或访问它,则相应的单元格将显示“#N/A”。 您仍然可以从表格应用程序中查看历史数据,并且仍然可以通过 Apps 脚本或 API 下载当前数据和访问当前数据。 以后使用 GOOGLEFINANCE 功能时请牢记这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM