Having a reliable source of free data is extremely handy for the independent trader. It allows you to move fast and look into your ideas quickly.
Yahoo Finance recently changed how you can access their historical stock data. No more simple downloads from the website and programmatic access now requires a different approach.
For the R and Python folks: The maintainers of quantmod
and yfinance
have already updated their packages to work with the new Yahoo setup.
And Excel users? We’ve got you covered.
We’ve created a dead-simple Excel spreadsheet that pulls historical price and volume data for any ticker you want. No coding required.
Here’s how to use it:
- Download the spreadsheet by filling out the form below. The download link will be emailed to you.
- This will subscribe you to our newsletter, and you’ll get email updates about our upcoming Excel Edge Lab course.
- Open the spreadsheet and click “Enable editing”
- Enter your ticker in cell C2
- Set your start date in cell C3 (the end date in cell C4 defaults to today)
- Go to the “Data” tab and click “Refresh all”
- If prompted about Privacy Level, just check the box and click OK
That’s it. The sheet will fetch your data in seconds.
If you’re using Excel for Mac, see below for some additional steps.
Fill out the form below to get the spreadsheet:
Configuring the spreadsheet for Excel for Mac
Open the spreadsheet and dismiss the security warning (if present) by clicking “Enable Content:”

From the Excel ribbon menu, go to the “Data” menu and click “Refresh All.” You’ll get an alert about privacy levels:

Click OK.
Again, from the Data menu, click the dropdown arrow next to “Get Data (Power Query Editor)” and click “Launch Power Query Editor:”

Click “Options” from Power Query Editor:

Then, go to the Privacy settings and check the box for “Allow combining data from multiple sources.” Then click OK.

Exit Power Query (keep your changes if prompted to do so), and then on the Prices tab, enter the ticker you want and click “Refresh all” from the Data menu. The spreadsheet should now populate with the data for your ticker.
