Get Company Financial Data in Excel

Get financial data for multiple companies in Excel, straight from the web. Retrieve EPS estimates, EBIDTA, dividend yields, PE ratios and more.

This Excel spreadsheet downloads bulk financial information for multiple companies into an Excel spreadsheet. The spreadsheet is web-connected – it uses the Yahoo Finance API.

You can get financial data for 100 or more companies simply by entering their ticker symbols and clicking a button.

The VBA can be viewed and edited – nothing is locked or hidden away. Feel free to post your suggestions for improvements, or perhaps modify the spreadsheet yourself.

The spreadsheet is free – the download link is at the bottom of this post.

Start by entering in a list of stock tickers. You can enter tickers from US exchanges, as well as many European and international exchanges; you just need to know the right ticker symbol to use.

List of Yahoo Stock Tickers in ExcelThen use the series of six drop down menus to choose the financial data you want.

Drop Down Menus for Yahoo Finance

After you click the “Get Data from Yahoo Finance” button, Excel employs some clever VBA to download your data.

Financial Data in Excel

You have access to 89 items of financial information for each stock from the Yahoo Finance API, including the ask price, EPS estimates for the current and next year, 52-week high and low, EBIDTA and many more. Simply use the drop-down menus to pick the data you want.

You can use this spreadsheet for stock screening, valuing companies and investment analysis.

If you like this spreadsheet, then please link to http://investexcel.net wherever you consider appropriate.

Get Excel spreadsheet to download financial data for many companies from the web


40 thoughts on “Get Company Financial Data in Excel

  1. Hello Samir,
    Great work done.I am new to ur site and to this field.When I click on ‘Get bulk data’,it reports
    an error that the macros are disabled.How do i make it work.I am using excel 2007
    Thanks

  2. Hi Samir,

    I’m interested in buying the download program you developed that was described in Dr, Benningna seminar a week ago.

    1. Yes Vikram….I tried various other NSE & BSE tickers which i use in Multiple Stock Downloader but those didn’t work in this sheet. Requesting the Admin to please look into the matter.

  3. Hi Samir, this is phenomenal! How can I add more pivot tables to this spread sheet as some existing pivot tables have 2 or more data sets that I need, but in the current form I can choose only one?

    BTW, works very well.

  4. Hi,

    awesome spreadsheet, Thanks!
    I am looking to also download data for EBITDA/EV, price-to-cahsflow and shareholder yield. Is there an easy way to include this in the spreadsheet (for someone illiterate in macros like me)?

    Cheers
    Daniel

  5. Samir,

    Your tools are great. Do you have a general Excel function that can be used to request any specific stock data from any specific stock symbol? This would let me set up an analysis spreadsheet exactly the way I want to work.

    Thanks.

  6. How do I get data from the Australian Stock Exchange – ASX can the spreadsheet be changed to accommodate this.
    Thanks
    David

    1. enter the stock code plus the australian stock code identifier “.ax”, eg. “asx.ax” and then hit “get data” – make sure you’ve enabled macros and data access. VOILA!

      Samir, this is freaking awesome. THANKS!

  7. I am getting a runtime error and when I debug it goes to the section of code starting with QueryQuote:
    With DataSheet.QueryTables.Add(Connection:=”URL;” & qurl & “&f=” & DataSheet.Cells(3, tagNum), Destination:=DataSheet.Cells(4, tagNum))
    .BackgroundQuery = True
    .TablesOnlyFromHTML = False
    .Refresh BackgroundQuery:=False <—- THIS LINE OF CODE IS HIGHLIGHTED
    .SaveData = True
    End With

    Can you help me? I do not know macros or VBS or coding stuff.

    Thank you.

  8. Hi Samir, awesome job on this spreadsheet. I am having the same problem as Shelby above where I get the runtime error ‘1004’ and when debugged it highlights:

    .Refresh BackgroundQuery: = False

    I have a listing of all tickers (about 8500) within Yahoo Finance (only using stocks listed on American Exchanges however) and when I input those tickers it gave me that error. The error occurs at the 180th line in excel meaning I can input 175 tickers before the error occurs.

    I feel like its probably just a simple tweak in the code that I am missing. Any help you or anyone else could give me would be greatly appreciated πŸ™‚ Thanks in advance.

  9. Hi Samir,

    you did a wonderful job. The great advantage of your solution compared to similar others is that does not require external libraries. This is why it works very well also on Excel for Mac.

    Many thanks indeed!

  10. Hi Samir, This is great. Thank you so much. I will be making a donation to say thanks for your efforts.

    Could I trouble you to ask a question. I have created a sheet to put in my holdings (i.e. number of shares and total cost). What would you say is the best way to monitor my portfolio would you link a separate sheet to yours, or add sheets within the download? At this stage I only really want the price so I can see my gain/loss. I’m pretty new to this so forgive me if its obvious?

    Thanks again.
    Paul

  11. Hi Samir,
    Your spreadsheets are awesome!
    I have a listing of 1000 tickers within Yahoo Finance and when I input those tickers it gave me a runtime error β€˜1004’. When I debugged, it highlights:

    .Refresh BackgroundQuery: = False

    The error occurs at the 134th line in excel meaning I can input 125 tickers before the error occurs.

    I feel like it’s probably just a simple tweak in the code that I am missing. Any help you or anyone else could give me would be greatly appreciated.

    Many thanks in advance.

    Danfossmicro

    1. Yahoo throttles the amount of data you can download in one call. I need to rewrite the VBA so that it only downloads e.g. 50 tickers at a time (or a similar amount). Bear with me – my 18 month old son keeps me busy in the evenings and weekends so I don’t have much free time.

  12. Hi, I am trying to download info for companies listed on the Bombay Stock Exchange (eg. BHEL.BO) nut unable to get it.
    any workaround?

  13. Great spreadsheet Samir, but when you input Canadian companies fields like 1 year target and projected 1 yr eps result in N/A. Is this a problem with your macro or Yahoo data? Thanks

    1. It’s a problem with Yahoo (although it’s not really a problem). They restrict programmatic access to financial data to a set of companies. Those Canadian companies you’ve tried may not be on the white list.

  14. Love your spreadsheets! How can I get more company information that was not listed in the tags such as debt and the debt to equity ratio?

    Thanks!!! Keep up the good work!

  15. The spreadsheet is very helpful but I cannot seem to get the drop down to stay down so that I can select another financial data point. Any ideas or suggestions as to why this may be happening?

  16. I am so glad to have found this website. I am amazed you are offering these free. I will donate to your cause.

  17. Why this file is not giving output for Indian stocks / Equity ?
    for example WIPRO.NS is yahoo ticker for WIPRO Limited but this is not working , i mean non of indian stock is not working on this excel.

  18. Hi, i tried entering few indian companies listed on NSE and BSE exchanges, but it didn’t work……
    is this tool is supporing indian exchanges ??

    Regards,
    haritha

  19. Hi Samir,

    Thank you so much! This spreadsheet helps me a lot. Can you please tell me how to add a few more columns with drop-down list to include data like Beta….?Thank you again!

    Kevin

  20. Hi Samir,
    Terrific job!

    I’d like to extend the workbook by creating historical sheets. For each selected value (e.g. “day’s low”) I can copy the non-blank values to a sheet with a similar name. I could add a column to the tags sheet with this name.

    I’m having problems however, accessing the selected value. With “Day’s Low” in D4, range(“D4”).value is blank. I suspect this behavior may be tied to the password protection of the sheet. I’ll make a donation, then await your replay.

    Thanks again!

  21. Hi Sameer,

    I would like to pull yahoo data for about 20 attributes for 1000 ticker. Is it possible using this spreadsheet?

    Thanks,
    Abhishek

  22. I was trying to make a spreadsheet exactly like this, only I want 15 column headings. Would you add 9 more columns? Tell me what kind of donation you would like and I will pay it.

  23. Hi,
    I really liked this worksheet, I want to put together an analysis with all the actions listed in Brazil in a single worksheet for analysis, how do I add a list of 100 companies and a few more columns?

Leave a Reply to Danfossmicro Cancel reply

Your email address will not be published. Required fields are marked *

What is 10 + 4 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)