簡體   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