[英]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()
步骤会不会重现这个问题?
预期输出:预期输出是一个数字,但 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.