Access Yahoo Finance Historical Prices in Excel
Overview
The YahooFinanceHistoricalPrices
provider loads historical daily, weekly, and monthly price data from Yahoo Finance directly into Microsoft Excel.
It supports downloading raw OHLCV data as well as calculated changes and adjusted prices.
You can use this data to:
- Build historical price charts
- Analyze adjusted returns and volatility
- Compare raw and adjusted prices
- Compute custom signals and trading strategies
Use the following RTD formulas for daily, weekly, or monthly data:
=RTD("market.rtd",,"YahooFinanceHistoricalPrices","<Symbol>",[<Date>],"<Data Field>") =RTD("market.rtd",,"YahooFinanceHistoricalPricesWeekly","<Symbol>",[<Date>],"<Data Field>") =RTD("market.rtd",,"YahooFinanceHistoricalPricesMonthly","<Symbol>",[<Date>],"<Data Field>")
Examples:
=RTD("market.rtd",,"YahooFinanceHistoricalPrices","AAPL","2024-12-31","Close") =RTD("market.rtd",,"YahooFinanceHistoricalPrices","AAPL",,"Close")
In these examples, <Symbol>
is a stock or ETF ticker like AAPL
, and <Data Field>
refers to the type of data to retrieve (e.g., Close, Volume).
The Date
parameter can be a valid Excel date or a string in yyyy-mm-dd
format. If Date
is omitted or set to 0, the formula returns data for the last trading date.
Use the Formula Builder to generate formulas and customize separators and layout.
To find ticker symbols, visit Yahoo Finance.
You can also view the full list of Yahoo Finance exchanges.
By default, data refreshes every 12 hours. To change this interval, use the formula:
=RTD("market.rtd",,"YahooFinanceHistoricalPrices","rtd_RefreshInterval",126060)
Notes on Calculated Fields
AverageVolume returns the average daily volume over a specified number of days.
This enables you to compare recent activity to historical norms (e.g., 10-day vs. 50-day average volume).TradingDay allows you to retrieve trading dates by index.
For example, you can get the 5th most recent trading day and then use that date in further formulas or charts.
Data Fields and Excel Formulas
Data Field | Excel Formula |
---|---|
Values: | |
Symbol | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Symbol") |
Date | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Date") |
Open | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Open") |
High | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"High") |
Low | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Low") |
Close | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Close") |
Volume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Volume") |
AdjClose | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"AdjClose") |
PrevDate | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PrevDate") |
PrevOpen | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PrevOpen") |
PrevHigh | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PrevHigh") |
PrevLow | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PrevLow") |
PrevClose | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PrevClose") |
PrevVolume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PrevVolume") |
PrevAdjClose | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PrevAdjClose") |
Change | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Change") |
ChangeInPercent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"ChangeInPercent") |
AdjChange | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"AdjChange") |
AdjChangeInPercent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"AdjChangeInPercent") |
Synonyms: | |
Previous Open | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Previous Open") |
PreviousOpen | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PreviousOpen") |
Prev Open | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Prev Open") |
Previous High | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Previous High") |
PreviousHigh | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PreviousHigh") |
Prev High | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Prev High") |
Previous Low | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Previous Low") |
PreviousLow | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PreviousLow") |
Prev Low | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Prev Low") |
Previous Close | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Previous Close") |
PreviousClose | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PreviousClose") |
Prev Close | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Prev Close") |
Previous Volume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Previous Volume") |
PreviousVolume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PreviousVolume") |
Prev Volume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Prev Volume") |
Previous Date | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Previous Date") |
PreviousDate | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PreviousDate") |
Prev Date | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Prev Date") |
Previous Adj Close | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Previous Adj Close") |
Previous AdjClose | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Previous AdjClose") |
PreviousAdjClose | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PreviousAdjClose") |
Prev Adj Close | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Prev Adj Close") |
Prev AdjClose | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Prev AdjClose") |
Change in Percent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Change in Percent") |
PercentChange | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PercentChange") |
Percent Change | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Percent Change") |
ChangePercent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"ChangePercent") |
Change Percent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Change Percent") |
% Change | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"% Change") |
Adj Close | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Adj Close") |
Adj Change | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Adj Change") |
Adj Change in Percent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Adj Change in Percent") |
AdjChange in Percent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"AdjChange in Percent") |
PercentAdjChange | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"PercentAdjChange") |
Percent Adj Change | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Percent Adj Change") |
Percent AdjChange | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Percent AdjChange") |
AdjChangePercent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"AdjChangePercent") |
Adj Change Percent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"Adj Change Percent") |
AdjChange Percent | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"AdjChange Percent") |
% Adj Change | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"% Adj Change") |
% AdjChange | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"% AdjChange") |
RTD server values: | |
rtd_LastUpdate | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"rtd_LastUpdate") |
rtd_LastUpdateDate | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"rtd_LastUpdateDate") |
rtd_LastUpdateTime | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"rtd_LastUpdateTime") |
rtd_LastError | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"rtd_LastError") |
rtd_LastMessage | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"rtd_LastMessage") |
Aggregate Functions
Data Field | Excel Formula |
---|---|
Date | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"Date") |
Day | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"Day") |
AverageVolume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"AverageVolume") |
Synonyms: | |
Average Volume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"Average Volume") |
AvgVolume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"AvgVolume") |
Avg Volume | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"Avg Volume") |
AvgVol | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"AvgVol") |
Avg Vol | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"Avg Vol") |
RTD server values: | |
rtd_LastUpdate | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"rtd_LastUpdate") |
rtd_LastUpdateDate | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"rtd_LastUpdateDate") |
rtd_LastUpdateTime | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"rtd_LastUpdateTime") |
rtd_LastError | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"rtd_LastError") |
rtd_LastMessage | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],[Days],"rtd_LastMessage") |
Trading Days
Data Field | Excel Formula |
---|---|
Symbol | |
Date | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"TradingDay",[Day]) |
RTD server values: | |
rtd_LastUpdate | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"TradingDay","rtd_LastUpdate") |
rtd_LastUpdateDate | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"TradingDay","rtd_LastUpdateDate") |
rtd_LastUpdateTime | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"TradingDay","rtd_LastUpdateTime") |
rtd_LastError | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"TradingDay","rtd_LastError") |
rtd_LastMessage | =RTD("market.rtd",,"YahooFinanceHistoricalPrices",[Symbol],"TradingDay","rtd_LastMessage") |