To get real-time stock prices in Excel, you need a streaming source: either a broker's RTD link (which requires a funded account and the broker's desktop app running) or a data add-in such as MarketXLS. With MarketXLS, =QM_Stream_Last("AAPL") streams Apple's last price into a cell and updates on its own; real-time streaming for US stocks and ETFs requires the Advanced or Business plan, and the Standard plan is 15-minute delayed. Excel's free Stocks data type and Power Query imports are delayed and need a refresh.
Try it in your own spreadsheet
Get the free MarketXLS sample workbook (.xlsx).
No account needed. MarketXLS live data requires a paid plan. Preview workbook
Explore more videos
This guide compares those methods, then shows the MarketXLS formulas for streaming prices, on-demand prices, fundamentals, history, and options.
Methods Compared: Getting Real Time Stock Prices in Excel
The methods differ mainly in whether the data streams, whether it is delayed, and what setup it needs:
| Method | Real-Time? | Auto-Refresh | Data Coverage | Setup Complexity | Best For |
|---|---|---|---|---|---|
| Microsoft STOCKHISTORY + Stocks Data Type | Delayed 15-20 min | Manual refresh | US equities only | Low | Casual users |
| Power Query Web Connection | Delayed | Scheduled (min 1 min) | Varies by source | Medium | One-time data pulls |
| Broker RTD Links (Thinkorswim, IBKR) | True real-time | Automatic streaming | Depends on broker | High | Active traders with existing accounts |
MarketXLS =QM_Stream_Last() | Real-time on Advanced and Business plans | Automatic streaming | US, Canadian, UK, German, Australian markets; stocks, ETFs, options | Low | Financial advisors, asset managers, wealth managers |
MarketXLS =Last() / =QM_Last() | 15-min delayed on Standard; real-time on Advanced and Business | On recalc | Same coverage | Low | Research and analysis workflows |
| DDE Links (Legacy) | Real-time | Automatic | Limited | Very High | Legacy systems only |
Method 1: Microsoft's Built-In Stock Data Type
Excel 365 includes a Stocks data type and the STOCKHISTORY function. Here's how it works:
Step-by-Step
- Type a ticker symbol like
AAPLinto a cell - Select the cell, go to the Data tab, and click Stocks
- Excel converts the cell into a linked data type
- Click the small icon that appears to see available fields like Price, Volume, and Market Cap
- Use formulas like
=A1.Priceto extract specific fields
Limitations
The Stocks data type is free and built into Excel, but it has drawbacks for professional use:
- Data is delayed 15-20 minutes: not suitable for real-time monitoring
- No automatic streaming: you must manually refresh or press F9
- Limited to basic equities: no options chains, no futures, no streaming quotes
- No historical data granularity: the
STOCKHISTORYfunction provides daily data only - Coverage gaps: many international markets, OTC stocks, and smaller-cap names are missing
- No customization: you cannot build models that react to live price changes
For advisors who need to monitor client portfolios in real time, the delay alone rules it out.
Method 2: Power Query Web Connections
Power Query pulls tables from web pages into Excel on a refresh schedule. It is not a streaming source.
Step-by-Step
- Go to Data → Get Data → From Web
- Enter the URL of a financial data source that provides tabular data
- Select the table you want to import
- Click Load to bring it into your worksheet
- Set up a scheduled refresh (minimum interval: 1 minute in most configurations)
Limitations
- Not truly real-time: even with a 1-minute refresh, you're always looking at slightly stale data
- Rate limiting: most free web sources throttle frequent requests
- Fragile connections: web page layouts change, breaking your queries without warning
- Manual maintenance: when a connection breaks, you need to rebuild it
- No streaming capability: each refresh is a complete data pull, not a live stream
Power Query is excellent for periodic data imports and building reports, but it was never designed for live market monitoring.
Method 3: Broker RTD Links (Thinkorswim, Interactive Brokers)
If you already have a brokerage account with Thinkorswim or Interactive Brokers, you can use RTD (Real-Time Data) links to stream prices into Excel.
How It Works
RTD links use the =RTD() function in Excel to connect to a local application running on your machine. The broker's desktop platform acts as a data server, pushing updates to Excel cells in real time.
For example, with Thinkorswim:
=RTD("tos.rtd",,"AAPL","LAST")
Limitations
- Requires a funded brokerage account: this isn't a standalone data solution
- Desktop application must be running: the broker platform needs to stay open
- Symbol limits: brokers may cap the number of concurrent RTD streams
- Not portable: the workbook only works on a machine with the broker software installed and running
- Limited options analytics: you can stream option quotes, but building full chains usually requires additional work
For more on how MarketXLS compares to broker-based streaming, see our detailed MarketXLS vs Thinkorswim streaming data comparison.
Method 4: MarketXLS Streaming Formulas
MarketXLS is an Excel add-in that returns market data as worksheet formulas, with streaming quotes from QuoteMedia. It needs no brokerage account and no web queries. Real-time streaming requires the Advanced or Business plan.
Getting Started
- Install MarketXLS: the Windows desktop add-in (ribbon tab "MarketXLS", activated with a license key) or the Microsoft 365 add-in for Excel on Mac and Excel for the web (ribbon "MarketXLS (Web)", sign in with your MarketXLS account). See choose your version.
- Open Excel and confirm the MarketXLS ribbon tab is present
- Type formulas into cells. On the Microsoft 365 add-in, use the
mxls.prefix, for example=mxls.Last("MSFT")
The Core Streaming Formula
The core streaming formula is:
=QM_Stream_Last("AAPL")
Formula documentation: QM_Stream_Last
This formula streams the last traded price for a symbol into the cell. It updates automatically while streaming is on, with no F9 or scheduled query. Each unique symbol uses one live symbol subscription.
Building a Live Portfolio Monitor
Here's how a wealth manager might set up a real-time portfolio tracking sheet:
| Column A (Ticker) | Column B (Formula) | Description |
|---|---|---|
| AAPL | =QM_Stream_Last("AAPL") | Live streaming price for Apple |
| MSFT | =QM_Stream_Last("MSFT") | Live streaming price for Microsoft |
| GOOGL | =QM_Stream_Last("GOOGL") | Live streaming price for Alphabet |
| JPM | =QM_Stream_Last("JPM") | Live streaming price for JPMorgan |
| SPY | =QM_Stream_Last("SPY") | Live streaming price for S&P 500 ETF |
Then in Column C, you calculate real-time position values:
=QM_Stream_Last("AAPL") * [shares held]
Formula documentation: QM_Stream_Last
The portfolio value then updates as prices stream, inside the spreadsheet you already use for analysis and reporting.
On-Demand Price Formulas
When you don't need continuous streaming but want the latest price on demand, use:
=Last("AAPL")
Formula documentation: Last
Or the QuoteMedia equivalent:
=QM_Last("AAPL")
Formula documentation: QM_Last
These formulas return the current last price when the sheet calculates. They're ideal for models and reports where you want a snapshot rather than a continuous stream.
Going Beyond Price: A Complete Data Ecosystem
MarketXLS has 1,000+ functions beyond price. These are common ones to put next to streaming prices:
Fundamental Analysis
| What You Need | Formula | What It Returns |
|---|---|---|
| P/E Ratio | =PERatio("AAPL") | Current price-to-earnings ratio |
| Market Capitalization | =MarketCapitalization("AAPL") | Total market cap |
| Revenue | =Revenue("AAPL") | Annual revenue |
| Quarterly Revenue | =hf_revenue("AAPL", 2025, 4) | Revenue for a specific quarter |
| Dividend Yield | =DividendYield("AAPL") | Current dividend yield |
| Dividend Per Share | =DividendPerShare("AAPL") | Annual dividend amount |
| Dividend Frequency | =DividendFrequency("AAPL") | How often dividends are paid |
Technical Analysis
| Indicator | Formula | Use Case |
|---|---|---|
| RSI | =RSI("AAPL") | Identify overbought/oversold conditions |
| 50-Day Moving Average | =SimpleMovingAverage("AAPL", 50) | Trend identification |
| 200-Day Moving Average | =SimpleMovingAverage("AAPL", 200) | Long-term trend confirmation |
Historical Data
Pull complete price history for backtesting and analysis:
=QM_GetHistory("AAPL")
Formula documentation: QM_GetHistory
This returns open, high, low, close, and volume data for building models, calculating custom indicators, or generating client reports. For a single past close, use =Close_Historical("AAPL", DATE(2025,1,2)).
Options Data
For advisors running covered call strategies or managing options overlays:
=QM_GetOptionChain("AAPL")
Formula documentation: QM_GetOptionChain
This pulls the options chain. You can also price individual contracts:
=OptionSymbol("AAPL", DATE(2026,12,18), "Call", 200)
Formula documentation: OptionSymbol
This generates the option symbol, which you can then price:
=QM_Last("@AAPL 261218C00200000")
Formula documentation: QM_Last
Options data is end-of-day on the Standard plan and real-time streaming on Advanced and Business; options tracking is limited to 300 symbols.
For a deeper look at options capabilities, visit the MarketXLS Options Profit Calculator.
Real-World Use Cases for Financial Professionals
Use Case 1: Financial Advisor — Client Portfolio Monitoring
A financial advisor managing 50 client accounts needs to monitor all positions in real time during market hours. With MarketXLS streaming formulas, they build a master sheet:
- Column A: All tickers across client portfolios
- Column B:
=QM_Stream_Last()for each ticker (streaming prices) - Column C: Shares held per position
- Column D:
=B2*C2— real-time position value - Column E:
=DividendYield()— income analysis - Column F:
=PERatio()— valuation check
On the Advanced or Business plan, the dashboard updates as prices stream, with no switching between platforms or manual data entry.
Use Case 2: Asset Manager — Risk Monitoring
An asset manager running a multi-strategy fund needs to track sector exposures as prices move. Using streaming formulas combined with Excel's native calculation engine:
=QM_Stream_Last("XLF") / QM_Stream_Last("SPY")
Formula documentation: QM_Stream_Last
This gives a real-time relative strength ratio for the Financial Select Sector ETF versus the S&P 500 — updating live as both prices stream.
Combine this with =SimpleMovingAverage("XLF", 50) to see whether the current streaming price is above or below the 50-day average, all in one sheet.
Use Case 3: Family Office — Multi-Asset Monitoring
Family offices often track equities, ETFs, options, and futures across multiple accounts. MarketXLS handles all of these in the same spreadsheet:
- Equities:
=QM_Stream_Last("AAPL") - ETFs:
=QM_Stream_Last("SPY") - Options:
=QM_Last("@AAPL 261218C00200000") - Index levels:
=Last("^SPX")
Everything in one workbook, one ribbon tab, one subscription. No switching between broker platforms, no juggling multiple data vendors.
Use Case 4: Wealth Manager — Client Reporting
When a client calls asking about their portfolio performance today, a wealth manager with MarketXLS can instantly pull up a live view:
=QM_Stream_Last("MSFT")
Formula documentation: QM_Stream_Last
Paired with historical data:
=QM_GetHistory("MSFT")
Formula documentation: QM_GetHistory
Live prices plus history let you answer a client's performance question from one sheet.
Pro Tips for Working With Real Time Stock Data in Excel
Tip 1: Separate Streaming Sheets from Model Sheets
Keep your streaming price cells on a dedicated "Data" sheet. Reference those cells from your analysis sheets. This keeps your models clean and makes it easy to audit where data is coming from.
Tip 2: Use Conditional Formatting for Alerts
Combine =QM_Stream_Last() with Excel's conditional formatting to create visual alerts:
- Red when a stock drops below a threshold
- Green when it hits a target price
- Yellow for positions approaching stop-loss levels
Tip 3: Build Watchlists That Update Themselves
Create a watchlist with streaming prices, fundamental ratios, and technical indicators all in one view:
| Ticker | Live Price | P/E | Dividend Yield | RSI | 50-Day SMA |
|---|---|---|---|---|---|
| AAPL | =QM_Stream_Last("AAPL") | =PERatio("AAPL") | =DividendYield("AAPL") | =RSI("AAPL") | =SimpleMovingAverage("AAPL", 50) |
| MSFT | =QM_Stream_Last("MSFT") | =PERatio("MSFT") | =DividendYield("MSFT") | =RSI("MSFT") | =SimpleMovingAverage("MSFT", 50) |
The price column streams through the trading day; the other columns update when Excel recalculates.
Tip 4: Combine Streaming With Historical for Context
A streaming price alone lacks context. Pair it with historical data to see where the current price sits relative to recent history:
=QM_Stream_Last("AAPL") / SimpleMovingAverage("AAPL", 200)
Formula documentation: QM_Stream_Last, SimpleMovingAverage
A ratio above 1.0 means the stock is trading above its 200-day moving average. A ratio below 1.0 means it's below. This simple formula gives you instant trend context for any streaming price.
Tip 5: Save Snapshots for Compliance
If you're a registered investment advisor, you may need to document the data you used when making allocation decisions. Use =Last() (not streaming) at specific times to capture point-in-time snapshots that you can save and archive.
Who Needs Real Time Stock Prices in Excel?
Financial Advisors
Streaming prices in Excel let advisors monitor client positions in the same tool where they build plans and reports.
Asset Managers
When you rebalance a model portfolio or monitor risk limits, delayed data can mislead. Real-time streaming keeps the analytics on current prices.
Wealth Managers
When a client calls during market hours, a streaming workbook shows the portfolio's current value without leaving Excel.
Family Offices
Family offices track equities, ETFs, and options across accounts. One Excel workbook with MarketXLS can hold all of them.
Pricing and Plans
Real-time streaming requires the Advanced or Business plan. US plans for non-professional users (prices include data and exchange fees; taxes may apply):
| Plan | Billed annually | Billed quarterly | US stocks and ETFs | Options |
|---|---|---|---|---|
| Standard | $70/month ($850/year) | $85/month ($255/quarter) | 15-minute delayed | End-of-day |
| Advanced | $125/month ($1,500/year) | $150/month ($450/quarter) | Real-time streaming | Real-time streaming |
| Business | $200/month ($2,400/year) | $240/month ($720/quarter) | Real-time streaming | Real-time streaming |
Professional users have different entitlements and exchange fees. See the MarketXLS pricing page for current details.
Frequently Asked Questions
How do I get real time stock prices in Excel without paying for a data feed?
Microsoft Excel 365 includes a built-in Stocks data type that provides delayed price data. For real-time streaming prices, you need either a broker RTD connection (requires a funded brokerage account) or a paid Excel add-in such as MarketXLS, because exchanges charge for real-time data.
What is the difference between QM_Stream_Last and Last in MarketXLS?
=QM_Stream_Last("AAPL") updates automatically while streaming is on, with no manual refresh. =Last("AAPL") returns the most recent price at the time the formula calculates (when you press F9 or the sheet recalculates). Use QM_Stream_Last for live monitoring dashboards and Last for models and reports where you want a point-in-time snapshot.
Can I stream real time stock prices for options and futures in Excel?
Options, yes. MarketXLS supports options pricing through formulas like =QM_Last("@AAPL 261218C00200000") for individual contracts and =QM_GetOptionChain("AAPL") for chains. Options data streams in real time on the Advanced and Business plans (end-of-day on Standard), and options tracking is limited to 300 symbols.
How many symbols can I stream at once in MarketXLS?
Each unique symbol or option contract you stream uses one live symbol subscription, and the options pricing page states options tracking is limited to 300 symbols. Your plan and your computer's resources set the practical limit. For large portfolios, stream the positions you watch closely and use on-demand =Last() for the rest.
Does real time stock data in Excel work with Excel on Mac?
Yes. Mac users install the MarketXLS Microsoft 365 add-in from Microsoft AppSource, which also works in Excel for the web. It adds a "MarketXLS (Web)" ribbon and task pane, you sign in with your MarketXLS account, and formulas use the mxls. prefix, for example =mxls.Last("MSFT"). Some functions differ by platform, so check the formulas page and choose your version.
How do real time stock prices in Excel compare to Bloomberg Terminal?
A Bloomberg Terminal is a full research and trading platform priced per seat per year. MarketXLS is an Excel add-in: real-time streaming stock and options prices, fundamentals, and technical indicators cost $1,500/year on the Advanced plan (billed annually, non-professional). Advisors who mainly need data in Excel may not need a full terminal. See MarketXLS pricing for current plan options.
The Bottom Line
Free Excel tools give you delayed data, and broker RTD links need a funded account and a running desktop app. MarketXLS streams prices with a formula: =QM_Stream_Last("AAPL") for a streaming price (real-time on Advanced and Business), =PERatio("AAPL") for valuation, and =QM_GetOptionChain("AAPL") for an options chain.
Explore the full list of 1,000+ available formulas on the MarketXLS functions page, or check out more Excel tutorials and guides to see what's possible.
For a step-by-step quote-board workflow with freshness and spread checks, read Stock Quotes in Excel.

