Stock Data in Google Sheets: The Right Way to Pull Live Prices, Fundamentals, and History (2026)

M
By MarketXLS
Published
Stock data in Google Sheets - GOOGLEFINANCE attributes, watchlist dashboard, and MarketXLS comparison

Stock data in Google Sheets is one of the most quietly powerful free tools on the internet. If you have a Google account, you can paste a single formula and have a live stock price land in a cell within seconds. No subscription, no API key, no developer account, no install. For a huge share of investors, that is genuinely all you need.

This guide is a celebration of that. We will walk through GOOGLEFINANCE end to end - every attribute it supports, how to build a real watchlist with it, how to pull history, and the small handful of things you can layer on top to make a working investing workbook. We will also be honest about the edges: the cases where GOOGLEFINANCE runs out of room, and where a desktop add-in like MarketXLS picks up. But the lead is Sheets, because Sheets is where most people should start.

You can grab two free templates at the bottom of this post. One is a static Google-Sheets-friendly reference workbook. The other is the live MarketXLS companion for the day you want to graduate from Sheets to a heavier analysis layer.

Why Google Sheets is perfect for stock data

Before we get into the formulas, it is worth saying why Google Sheets has become the default for retail investors, finance students, and a lot of advisors building light dashboards.

What you get for free in Google SheetsWhy it matters
GOOGLEFINANCE formula for live pricesSingle function, no setup, works everywhere
Cloud-native, multi-deviceSame workbook on your phone, laptop, and tablet
Shareable with one linkSend a watchlist to a friend or advisor in seconds
Built-in charts and pivotsNo extra plugin needed
Apps Script for custom logicFree Python-like scripting layer
Tied to Google's market data feedDecent coverage on US listings, ETFs, indices, crypto
Auto-saved, version historyNever lose your work

For a "build a watchlist, track a few positions, calculate weighted returns" use case, this is more than enough. It is also remarkable that you can go from "I want to track stocks in a spreadsheet" to a working tracker in under five minutes. That low friction is the whole point.

There is no real reason to migrate off Sheets if Sheets is doing the job. Most of the time, Sheets is doing the job.

The GOOGLEFINANCE function in one screen

Here is the entire attribute surface of GOOGLEFINANCE in one table. If you bookmark only one thing from this post, bookmark this.

AttributeWhat it returnsExample
priceLast traded price=GOOGLEFINANCE("AAPL","price")
priceopenToday's opening price=GOOGLEFINANCE("AAPL","priceopen")
highDay high so far=GOOGLEFINANCE("AAPL","high")
lowDay low so far=GOOGLEFINANCE("AAPL","low")
volumeDay volume=GOOGLEFINANCE("AAPL","volume")
marketcapMarket capitalization=GOOGLEFINANCE("AAPL","marketcap")
peTrailing P/E ratio=GOOGLEFINANCE("AAPL","pe")
epsEarnings per share (TTM)=GOOGLEFINANCE("AAPL","eps")
betaBeta vs the market=GOOGLEFINANCE("AAPL","beta")
high5252-week high=GOOGLEFINANCE("AAPL","high52")
low5252-week low=GOOGLEFINANCE("AAPL","low52")
changeChange since previous close=GOOGLEFINANCE("AAPL","change")
changepctPercent change today=GOOGLEFINANCE("AAPL","changepct")
closeyestPrevious close=GOOGLEFINANCE("AAPL","closeyest")
sharesShares outstanding=GOOGLEFINANCE("AAPL","shares")
currencyQuote currency=GOOGLEFINANCE("AAPL","currency")
tradetimeTime of last trade=GOOGLEFINANCE("AAPL","tradetime")
datadelayQuote delay in minutes=GOOGLEFINANCE("AAPL","datadelay")
closeDaily close on a date or series=GOOGLEFINANCE("AAPL","close",DATE(2026,5,1))
allHistorical OHLCV table=GOOGLEFINANCE("AAPL","all",DATE(2024,1,1),DATE(2026,1,1))

That is the whole API surface of stock data in Google Sheets. It is small, but it covers most of the questions a self-directed investor actually asks day to day.

A few practical notes that save people hours.

First, the second argument is case-insensitive but the attribute string must be in quotes. =GOOGLEFINANCE("AAPL", price) will not work. =GOOGLEFINANCE("AAPL","price") will.

Second, GOOGLEFINANCE quotes are documented as being delayed by up to 20 minutes. In practice they refresh much faster than that during regular hours, but you should not treat them as tick-by-tick. They are good enough for portfolio dashboards, not for active trading.

Third, the historical functions spill into adjacent cells. If =GOOGLEFINANCE("AAPL","all",DATE(2024,1,1),DATE(2026,1,1)) is in cell A1, the date column lands in A, open in B, high in C, low in D, close in E, volume in F. Plan your sheet layout around that.

Building a real watchlist - 10 lines of formulas

Here is the exact recipe for a working 10-name watchlist in Google Sheets. Open a new sheet and paste tickers in column A starting at A2.

A2: AAPL
A3: MSFT
A4: GOOGL
A5: AMZN
A6: NVDA
A7: JPM
A8: KO
A9: JNJ
A10: SPY
A11: VOO

Then in row 2 (drag down to row 11 for each):

CellFormula
B2=GOOGLEFINANCE(A2,"price")
C2=GOOGLEFINANCE(A2,"changepct")
D2=GOOGLEFINANCE(A2,"high52")
E2=GOOGLEFINANCE(A2,"low52")
F2=GOOGLEFINANCE(A2,"pe")
G2=GOOGLEFINANCE(A2,"eps")
H2=GOOGLEFINANCE(A2,"beta")
I2=GOOGLEFINANCE(A2,"marketcap")
J2=GOOGLEFINANCE(A2,"volume")

You now have a live watchlist with last price, percent change today, 52-week range, valuation, EPS, beta, market cap, and volume. Format column I as [$0,, "M"] to display market cap in millions, or [$0,,,"B"] for billions.

For the static sample workbook included with this post, here is what those values looked like at the close on 2026-05-13:

TickerLastDay %52W High52W LowP/EBetaSector
AAPL$232.18+0.72%$245.10$198.6528.41.18Technology
MSFT$461.20+0.41%$478.55$388.2035.10.96Technology
GOOGL$184.50+0.89%$195.60$145.3024.91.05Communication Services
AMZN$218.30+1.14%$231.40$165.2041.81.14Consumer Discretionary
NVDA$145.10+1.88%$159.80$95.4052.01.55Information Technology
JPM$222.40+0.35%$235.20$180.1512.61.06Financials
KO$71.80+0.14%$75.20$62.1026.30.62Consumer Staples
JNJ$158.40+0.19%$168.80$145.3023.80.55Health Care
SPY$545.10+0.46%$562.45$489.1522.11.00Index ETF
VOO$501.20+0.46%$517.60$449.4022.11.00Index ETF

Illustrative snapshot for the workbook. Not a recommendation.

Pulling history with =GOOGLEFINANCE("ticker","all",...)

The most underrated GOOGLEFINANCE capability is historical OHLCV. One formula gives you years of clean daily data with no API calls, no rate limits, no developer setup.

=GOOGLEFINANCE("AAPL","all",DATE(2024,1,1),DATE(2026,1,1),"DAILY")

Place that in A1 on a fresh sheet and you will see a header row plus daily rows: Date, Open, High, Low, Close, Volume. Replace "DAILY" with "WEEKLY" for weekly bars.

A few things to know.

The third argument can be a single date if you only want one specific close. The fourth is the end date. The fifth is the interval.

The series is unadjusted. Splits and dividends are not back-applied to the price column. If you need adjusted close for total return work, you have to either compute it yourself (multiply by split ratios, add back dividends) or step to a tool that returns an adjusted series directly.

There is no built-in volume-weighted average price, no rolling indicator, no RSI. If you want those, you build them with AVERAGE, STDEV, helper columns, and ARRAYFORMULA. That is fine for a few hundred bars. It gets fiddly past that.

Currency, crypto, and international tickers

Google Sheets understands a wider universe than most people realize.

=GOOGLEFINANCE("BTCUSD","price")           // Bitcoin in USD
=GOOGLEFINANCE("EURUSD","price")           // EUR/USD spot
=GOOGLEFINANCE("CURRENCY:USDJPY")          // USD/JPY long form
=GOOGLEFINANCE("LON:VOD","price")          // Vodafone on London Stock Exchange
=GOOGLEFINANCE("TYO:7203","price")         // Toyota on Tokyo Stock Exchange
=GOOGLEFINANCE("EPA:AIR","price")          // Airbus on Euronext Paris
=GOOGLEFINANCE("ETR:SAP","price")          // SAP on Xetra
=GOOGLEFINANCE(".DJI","price")             // Dow Jones index
=GOOGLEFINANCE("INDEXSP:.INX","price")     // S&P 500 long form

International coverage is good for prices but thinner for fundamentals. pe and eps may come back as #N/A on some non-US listings. That is a normal limitation, not a bug in your sheet.

Light formulas that turn a watchlist into a portfolio

You can go a long way without leaving Sheets.

Portfolio value:

=SUMPRODUCT(shares_range, GOOGLEFINANCE_price_range)

Daily P&L:

=SUMPRODUCT(shares_range, change_range)

Weighted P/E:

=SUMPRODUCT(weight_range, pe_range)

Cost basis vs current value per row:

=B2*A2 - cost_basis

Sharpe-style score using STDEV of weekly returns:

=AVERAGE(weekly_return_range)/STDEV(weekly_return_range)*SQRT(52)

For most investors building a personal dashboard, this set of patterns plus the GOOGLEFINANCE attributes covers every metric they actually use. There is no need to step outside Sheets.

Auto-refresh, conditional formatting, and the polish layer

A workbook is only as useful as it is glanceable. Some quick polish that makes a Sheets workbook feel like a real dashboard.

Set the recalculation cadence under File then Settings then Calculation. The choices are "On change", "On change and every minute", and "On change and every hour". Pick the one that matches how often you actually look at the sheet.

Add conditional formatting on the day-percent column. Negative values get a red background, positive get green. That single touch makes the dashboard readable at a glance.

Freeze the header row (View, Freeze, 1 row) and freeze the ticker column. Now you can scroll without losing context.

Use SPARKLINE to draw a small chart inside a cell:

=SPARKLINE(GOOGLEFINANCE(A2,"price",TODAY()-30,TODAY()))

Add a Notes column. Add a Last Updated cell tied to =NOW(). Hide helper columns by right-clicking the column header.

A 30-minute polish session turns a raw GOOGLEFINANCE watchlist into a workbook that you actually open every morning.

The honest limits - where stock data in Google Sheets stops

We are big fans of Sheets. We also want to be honest about where the road ends. None of this is "Sheets is bad". It is "Sheets is amazing, and here is what it deliberately does not do".

NeedWhat Sheets doesWhat is missing
Live tick-by-tick streamingPeriodic refresh on a scheduleTrue streaming during the session
Dividend yield, dividend per shareNo native attributeIncome-model foundation
Adjusted close (splits/dividends)Close onlyCorrect total-return math
Options chains, GreeksNot supportedAnything beyond stock prices
Technical indicators (RSI, MACD)Build manuallySingle-formula indicators
Reliability at scaleOccasional #N/A bursts during heavy loadStable feed for 200+ name watchlists
Multi-year fundamentals (revenue, ROE)Single-point P/E and EPS onlyFactor analysis, screening

These gaps are not surprising. GOOGLEFINANCE is a free, general-purpose function tied to Google's market data layer. It is not trying to be Bloomberg. It is trying to give you a live last price in a cell, and at that it succeeds beautifully.

If you find yourself in one of the rows above with regularity, that is the signal that you have outgrown Sheets for that part of your workflow. The fix is not to fight Sheets. The fix is to add a heavier tool next to Sheets for the parts Sheets cannot do.

Where MarketXLS picks up

MarketXLS is a desktop add-in for Excel. The same way GOOGLEFINANCE extends Sheets, MarketXLS formulas extend Excel. The lineup of functions is much wider, and the data lineage is different: MarketXLS pulls from direct exchange feeds and QuoteMedia, which is what enables streaming, options, and the deeper fundamentals.

Below is the same comparison as the table above, but with the MarketXLS formula that fills each gap.

NeedMarketXLS formula
Streaming intraday quote=Stream_Last("AAPL")
Dividend yield=DividendYield("AAPL")
Dividend per share=DividendPerShare("AAPL")
Adjusted close (split/div adjusted)=ADJUSTED_CLOSE_HISTORICAL("AAPL", DATE(2024,1,2))
Live option chain=QM_GetOptionChainActive("AAPL")
Option delta=OPT_Delta(stock, opt, exp, type, strike)
RSI(14)=RelativeStrengthIndex("AAPL","14")
SMA 50=SimpleMovingAverage("AAPL","50")
52-week high=FiftyTwo_WeekHigh("AAPL")
Sector classification=Sector("AAPL")
Earnings per share=EarningsPerShare("AAPL")
Return on equity=ReturnOnEquity("AAPL")
Market cap=MarketCapitalization("AAPL")
Historical OHLCV=QM_GetHistory("AAPL")
Live last (simple)=QM_Last("AAPL")

This is not "MarketXLS is better than Google Sheets". It is "MarketXLS does the things Sheets cannot, inside the desktop Excel you already know". You can absolutely use both: Sheets for quick checks and shared dashboards, MarketXLS in Excel for the analysis layer.

A small but illustrative example. A Sheets workbook can answer "what is AAPL trading at right now and what is the trailing P/E?" in two formulas. An Excel workbook with MarketXLS can answer the same question, plus "what is the live ATM call delta with three weeks to expiration, what was the dividend-adjusted close on the day I bought the stock, and what is the RSI(14) on the daily chart right now?" in three more.

If you do not need those answers, you do not need MarketXLS. If you do, that is the moment to add it.

Side by side - the same dashboard in both tools

Same 10-ticker watchlist, two implementations.

ColumnGoogle SheetsMarketXLS (Excel desktop)
Last price=GOOGLEFINANCE(A2,"price")=QM_Last(A2)
Day percent change=GOOGLEFINANCE(A2,"changepct")(use STREAM_PERCENTAGECHANGE)
P/E ratio=GOOGLEFINANCE(A2,"pe")=PERatio(A2)
EPS=GOOGLEFINANCE(A2,"eps")=EarningsPerShare(A2)
Beta=GOOGLEFINANCE(A2,"beta")=Beta(A2)
52W high=GOOGLEFINANCE(A2,"high52")=FiftyTwo_WeekHigh(A2)
52W low=GOOGLEFINANCE(A2,"low52")=FiftyTwo_WeekLow(A2)
Market cap=GOOGLEFINANCE(A2,"marketcap")=MarketCapitalization(A2)
Volume=GOOGLEFINANCE(A2,"volume")=Volume(A2)
Dividend yieldnot available natively=DividendYield(A2)
50-day moving averagehelper column with AVERAGE=SimpleMovingAverage(A2,"50")
RSI(14)build manually=RelativeStrengthIndex(A2,"14")
Sectornot available natively=Sector(A2)
Streaming live ticknot available=Stream_Last(A2)

You can build the top half in Sheets and the whole table in Excel with MarketXLS. Most investors who use both end up with a layer split: Sheets for the shareable watchlist, Excel for the deeper book.

The free templates

Two workbooks ship with this post.

Download the templates:

  • - Pre-filled values as of the publish date, plus a side-by-side reference of every GOOGLEFINANCE attribute paired with its MarketXLS equivalent.
  • - Open in Excel desktop with MarketXLS installed and every cell refreshes live: prices, dividends, sector, technicals, options-ready scaffolding.

Each workbook has six sheets.

  1. How To Use - links, references, and notes.
  2. GOOGLEFINANCE Reference - every attribute the function supports, with a sample formula and (in the template) the MarketXLS equivalent.
  3. Stock Data Dashboard - 10-name watchlist with prices, day change, moving averages, 52-week range, P/E, beta, sector.
  4. Fundamentals & Income - dividend yield, dividend per share, EPS, beta, sector, with portfolio-size and income-goal inputs in yellow input cells.
  5. When to Upgrade - the table of cases where you outgrow Sheets, paired with the MarketXLS replacement.
  6. Setup Checklist - the ten-step path from a fresh Google Sheet to a working dashboard, with the optional MarketXLS layer added on.

Open the static version first. It works without anything installed. The template version is for the moment you decide you want the deeper formulas.

FAQ

Is GOOGLEFINANCE real time? Google documents it as "up to 20 minutes delayed". In practice on US listings during regular hours, prices refresh within a couple of minutes. For active trading you should not treat it as tick-by-tick. For watchlists, dashboards, and longer-horizon work it is more than fine.

Why does GOOGLEFINANCE return #N/A? A few reasons. The ticker may not be in Google's coverage (less common on non-US listings, more common on small-cap or recently delisted names). The attribute may be unsupported for that asset class (for example pe on an ETF or eps on a currency pair). Sheets may also be throttling under heavy load. Try refreshing the sheet, then re-typing the formula in a fresh cell.

Can I get dividend yield in Google Sheets? There is no native dividendyield attribute on GOOGLEFINANCE. People often compute it by hand using the annual dividend from an external source and the live price from GOOGLEFINANCE. If yield is a column you care about every day, that workaround gets old fast. =DividendYield("AAPL") in MarketXLS for Excel is the cleaner way.

Can I pull options data into Google Sheets? Not really. GOOGLEFINANCE does not support option chains, strikes, expirations, or Greeks. For options data you need a different tool. =QM_GetOptionChainActive("AAPL") in MarketXLS spills the full live chain into the workbook.

Will my GOOGLEFINANCE formulas keep working forever? Google has occasionally deprecated parts of the function. It has been remarkably stable in recent years, but it is a free service tied to Google's market data layer, so the contract is whatever Google chooses to offer. If you build mission-critical infrastructure, you may want a more committed data source underneath.

Does MarketXLS work in Google Sheets? MarketXLS formulas resolve inside Excel desktop, not inside Google Sheets. The two tools are complementary, not interchangeable. Most users who use both keep their lightweight watchlists in Sheets and their analysis workbooks in Excel.

The bottom line

Stock data in Google Sheets is one of those rare cases where the free, default, no-setup option is the right answer for most people. GOOGLEFINANCE covers the core needs of any self-directed investor: live price, key valuation ratios, 52-week range, history. It is fast, accessible, and shareable. For a long-tail of investors, that is the entire workflow, and they never need anything else.

Where it ends is the part of the workflow where you start asking questions Google's free function was not designed to answer. Streaming. Dividend yield. Adjusted close. Options. Indicators. Sector classification. Multi-year fundamentals. At that point you have a choice: keep doing manual workarounds in Sheets, or layer in a tool built for those specific gaps.

MarketXLS lives in Excel desktop and exists to fill exactly those gaps. You can have both. The most productive workbooks we see do exactly that: Sheets on top for the daily check-in, Excel underneath for the analysis layer.

Start with the free templates above. Build your Sheets watchlist this afternoon. If a month from now you keep running into the same missing pieces, take a look at the MarketXLS side. If you do not, congratulations, you have built yourself a working stock data setup for the price of a Google account.

See the full MarketXLS function library at marketxls.com or book a demo to walk through your specific workbook.

Important Disclaimer

The information provided in this article is for educational and informational purposes only and should not be construed as investment advice, a recommendation, or an offer to buy or sell any securities. MarketXLS is a financial data platform and is not a registered investment advisor, broker-dealer, or financial planner. Always conduct your own research and consult with a qualified financial professional before making any investment decisions. Past performance is not indicative of future results. Trading and investing involve substantial risk of loss.

Interested in building, analyzing and managing Portfolios in Excel?
Download our Free Portfolio Template
I agree to the MarketXLS Terms and Conditions
Call: 1-877-778-8358
Ankur Mohan MarketXLS
Welcome! I'm Ankur, the founder and CEO of MarketXLS. With more than ten years of experience, I have assisted over 2,500 customers in developing personalized investment research strategies and monitoring systems using Excel.

I invite you to book a demo with me or my team to save time, enhance your investment research, and streamline your workflows.
Implement "your own" investment strategies in Excel with thousands of MarketXLS functions and templates.
I use MarketXLS to manage my personal portfolio. I can easily pull in stock quotes, betas, and dividends. I also like to access historical closing prices on a particular date. That makes tracking performance easy.

Patrick Cusatis, Ph.D., CFA

Associate Professor of Finance, Penn State University

I have used lots of stock and option information services. This is the only one which gives me what I need inside Excel.

Lloyd L.

Professional Trader

I can now concentrate on manipulating financial data, valuing stocks and making investment decisions, rather than hacking around with VBA or copying and pasting data from websites.

Samir Khan

InvestExcel.net

I have been using MarketXLS for the last 6+ years and they really enhanced the product every year.

Kirubakaran K.

Investment Professional

I Love My MarketXLS. The market speaks to you when you know how to listen. With MarketXLS, the market truly does speak. Patterns emerge. Pricing behavior becomes clearer.

Don Zelezny

Entrepreneur & Options Trader

Meet The Ultimate Excel Solution for Investors

Live Streaming Prices in your Excel
All historical (intraday) data in your Excel
Real time option greeks and analytics in your Excel
Leading data service for Investment Managers, RIAs, Asset Managers
Easy to use with formulas and pre-made sheets