Skip to content
How to Track Stock Prices in Google Sheets with GOOGLEFINANCE
Illustrative spreadsheet formula and sample ticker cards. Prices shown in the artwork are fictional.

GOOGLE SHEETS • STOCK DATA

How to Track Stock Prices in Google Sheets with GOOGLEFINANCE

The GOOGLEFINANCE function can return current or historical securities information directly in Google Sheets. With a clean ticker column and a few formulas, you can build a practical price table without copying quotes by hand.

This guide explains the syntax, exchange-qualified tickers, useful attributes, historical arrays, error handling and the important data limitations to document before using the results.

1. What the GOOGLEFINANCE function does

GOOGLEFINANCE is a Google Sheets function that fetches current or historical securities information from Google Finance. Its documented syntax is:

=GOOGLEFINANCE(ticker, [attribute], [start_date], [end_date|num_days], [interval])

The ticker is required. The other arguments depend on whether you want a current value in one cell or a historical series that expands into several cells.

Current data

One value per formula

Request an attribute such as price, name, currency, daily change or market capitalization. The result normally occupies one cell.

Historical data

An expanding array

Add dates and an interval to return headers plus a date-and-value series. Neighboring cells must be empty so the result can expand.

Google recommends including both the exchange and ticker, such as NASDAQ:GOOG, instead of relying on the function to guess the exchange. This reduces ambiguity when similar symbols exist in several markets.

2. Build a clean stock price table

Create a tab called Prices. Keep manually entered identifiers separate from fetched data and calculated portfolio values.

ColumnFieldExample or formula
AExchange-qualified tickerNASDAQ:GOOG
BSecurity name=GOOGLEFINANCE(A2,"name")
CCurrency=GOOGLEFINANCE(A2,"currency")
DPrice=GOOGLEFINANCE(A2,"price")
EQuantityManual input or linked holdings total
FPosition value=IFERROR(D2*E2,"")
GChecked atManual review timestamp

Do not type a ticker, quantity and formula into the same field. A simple input/output separation makes errors easier to audit. Store the exchange in the ticker itself, and keep the returned currency visible before adding values across markets.

If your transactions, cash and account boundaries are not organized yet, start with our investment portfolio tracking guide. The live-price table should support a holdings ledger, not replace one.

3. Get current stock data in Google Sheets

The shortest formula returns the default price attribute:

=GOOGLEFINANCE("NASDAQ:GOOG")

For a reusable table, reference the ticker cell and state the attribute explicitly:

=GOOGLEFINANCE(A2,"price")

Copy the formula down beside your ticker list. You can request other documented real-time attributes in separate columns:

AttributePurposeFormula
nameSecurity name=GOOGLEFINANCE(A2,"name")
currencyTrading currency=GOOGLEFINANCE(A2,"currency")
priceCurrent quoted price=GOOGLEFINANCE(A2,"price")
closeyestPrevious trading day’s closing price=GOOGLEFINANCE(A2,"closeyest")
changePrice change since the previous close=GOOGLEFINANCE(A2,"change")
changepctPercentage change since the previous close=GOOGLEFINANCE(A2,"changepct")
volumeCurrent day’s trading volume=GOOGLEFINANCE(A2,"volume")

Some attributes are unavailable for some securities. Treat an empty result or error as a data-quality issue to review—not as a zero.

Trademark note: GOOGLEFINANCE, Google Finance and Google Sheets are Google services and marks. SpreadsheetsHub is not affiliated with or endorsed by Google. This article documents a public spreadsheet function.

4. Import historical stock prices

Add a start date and end date to request a historical series:

=GOOGLEFINANCE(A2,"close",DATE(2026,8,1),DATE(2026,8,31),"DAILY")

The result expands into two columns with headers: date and closing price. Put the formula in a clear area or a separate History tab. If another value blocks the output range, Sheets will return an array expansion error.

For a rolling 30-day series:

=GOOGLEFINANCE(A2,"close",TODAY()-30,TODAY(),"DAILY")

Google documents DAILY and WEEKLY as the supported intervals. When dates are included, only historical attributes are allowed. Common historical fields include open, close, high, low and volume.

Historical dates are treated as noon UTC by Google. Exchanges that close before that time may appear shifted by a day. Keep that behavior in mind when matching the array to a broker statement or another price source.

5. GOOGLEFINANCE formula builder

Choose a ticker and attribute to generate a copy-ready formula. This builder does not fetch market data; it only assembles the syntax.

6. Turn fetched prices into portfolio values

Once the price and quantity are available, position value is simple:

=IFERROR(D2*E2,"")

Use a blank or a clear review label when the quote fails. Do not silently replace a missing price with zero because that will understate the total portfolio value and distort allocation.

Calculate the total with:

=SUM(F2:F20)

Then calculate each position weight:

=IFERROR(F2/SUM($F$2:$F$20),0)

Format the result as Percentage. If you maintain target weights, continue with our portfolio allocation drift guide to compare current weights with targets and calculate dollar gaps.

Price movement is only one part of a portfolio record. Purchases, sales, dividends, fees, taxes, cash and currency conversion still require a transaction structure. A fetched quote should not overwrite the historical price actually used for a trade.

7. Fix common GOOGLEFINANCE errors

ProblemLikely causeWhat to check
#N/AUnsupported symbol, exchange or attributeUse an exchange-qualified ticker and test price first
#VALUE!Malformed argument or invalid dateCheck quotation marks, commas and real date values
Array was not expandedHistorical output cells are occupiedClear the rows and columns beside the formula
Wrong securityThe exchange was omittedUse a ticker such as NASDAQ:GOOG, not only GOOG
Price differs from brokerDelay, currency, session or source differenceCompare timestamp, exchange, currency and market status
Historical row looks shiftedGoogle’s noon-UTC date handlingCompare the returned date with the exchange calendar

A readable error wrapper can keep a dashboard tidy:

=IFERROR(GOOGLEFINANCE(A2,"price"),"Check ticker or data availability")

Do not convert every error to zero. A text warning preserves the distinction between a security worth zero and a quote that could not be retrieved.

8. GOOGLEFINANCE limitations to document

Before relying on the function, record these limitations from Google’s documentation:

  • Quotes are not sourced from every market and may be delayed by up to 20 minutes.
  • The function is available only in English and does not support most international exchanges.
  • Some attributes do not return data for every symbol.
  • Historical arrays cannot be downloaded through the Sheets API or Apps Script; Google says those attempts return #N/A.
  • The information is supplied “as is” for informational purposes and not for trading or advice.
  • Professional use may be subject to additional data-provider licensing restrictions.

For a personal review sheet, include a Last reviewed field and reconcile important positions with the broker statement. For orders, tax reporting, official valuations or professional workflows, use an appropriate licensed source.

Prefer a ready-made stock tracker?

You can build the formulas above yourself. If you want a structured workbook for stock transactions, holdings, profit and loss, dividends and portfolio review, browse our Investment Portfolio Trackers collection.

Stock Portfolio Tracker for Google Sheets & Excel

Stock Portfolio Tracker

Track purchases and sales, transaction fees, realized and unrealized profit and loss, dividends, historical performance and multiple currencies.

View Stock Portfolio Tracker
Ultimate ETF & Index Fund Tracker for Google Sheets & Excel

ETF & Index Fund Tracker

Organize ETF and index-fund holdings across accounts and currencies, review allocation, cash and dividend information, and monitor portfolio drift.

View ETF & Index Fund Tracker

The product pages specify Microsoft 365 for Excel files or a Google account for Google Sheets. Mobile editing may be limited. This guide demonstrates a separate DIY GOOGLEFINANCE workflow and does not claim that every product uses these exact formulas.

GOOGLEFINANCE in Google Sheets: FAQ

How do I get a stock price in Google Sheets?

Use =GOOGLEFINANCE("EXCHANGE:TICKER","price"). Google recommends including the exchange for accuracy, for example NASDAQ:GOOG.

Is GOOGLEFINANCE real time?

Google describes current results as real-time values but warns that quotes may be delayed by up to 20 minutes and are not sourced from every market. Do not use the function as an execution price.

Can GOOGLEFINANCE return historical prices?

Yes. Add a historical attribute, start date, end date or number of days, and a DAILY or WEEKLY interval. The result expands into an array with headers.

Why does GOOGLEFINANCE show #N/A?

The symbol, exchange or attribute may be unsupported, or the request may violate a limitation such as accessing historical data through Apps Script. Test an exchange-qualified ticker with the price attribute first.

Does GOOGLEFINANCE support every international exchange?

No. Google explicitly says that most international exchanges are not supported. Check the exact ticker and maintain a fallback source for unsupported holdings.

Can I use GOOGLEFINANCE in Excel?

No. GOOGLEFINANCE is specific to Google Sheets. Excel has different linked data types and data tools. Do not paste a GOOGLEFINANCE formula into Excel and expect it to calculate.

Official reference

Back to top