Note: This article was originally published in 2011. Some steps, commands, or software versions may have changed. Check the current Content Providers documentation for the latest information.

In this step-by-step guide, you’ll learn obtain stock quotes from yahoo finance (you can query them via excel too).

How to obtain stock quotes in Excel

I was working on creating a spreadsheet to calculate profits and losses on options positions but didn’t know how to populate excel with stock quotes. Back in the day there used to be an interface to get stock quotes with the (http://moneycentral.msn.com “MSN Money”) site but it is not supported anymore. The idea behind this spreadsheet was to use the latest and historic quotes to calculate intrinsic values of options and P&L for expired ones. Kind of just trying to keep track of my record and evaluate performance. Of course the issue we face is that stock prices move every second and maintaining all that data manually is not worth it. After some research I tried using (http://www.google.com/finance “Google Finance”) to populate Excel to no avail but found (http://m.www.yahoo.com/ “Yahoo! Finance”) supports this more easily. In order to query stock quotes from yahoo all you need to do is use the following URL and provide the required parameters: http://finance.yahoo.com/d/quotes.csv?s=_{(http://en.wikipedia.org/wiki/Ticker_symbol “Ticker symbol”) separated by the ’+’ character}_****& f={letters which represent a column of information you wish to be provided} Keep in mind you need to use the Excel feature of “External data source” under the “Data section”. There you’ll find the option for “HTML” or similar. I use Excel for Mac in spanish so the names might be slightly different in the PC version. So really there are 2 pieces of information you provide via the URL to get your stock quotes. First the list of stocks you wish to get a quote on separated by a ’+’ sign like ‘GS+BAC+(http://www.google.com/finance?q=NASDAQ:MSFT “NASDAQ: MSFT”)+(http://www.google.com/finance?q=NASDAQ:AAPL “NASDAQ: AAPL”)’ etc. The second part are the columns of information you wish to be provided like the last quoted price, the symbol, the full name, and much more. Below is a table with all the different columns you may request back as part of the csv: aAska2(http://www.wikinvest.com/metric/Average_Volume “Average Volume”)a5Ask Size
bBidb2Ask (Real-time)b3Bid (Real-time)
b4(http://www.wikinvest.com/metric/Book_Value “Book Value”)b6Bid SizecChange & Percent Change
c1Changec3Commissionc6Change (Real-time)
c8After Hours Change (Real-time)dDividend/Shared1Last Trade Date
d2Trade DateeEarnings/Sharee1Error Indication (returned for symbol changed / invalid)
e7EPS Estimate Current Yeare8EPS Estimate Next Yeare9EPS Estimate Next Quarter
f6Float SharesgDay’s LowhDay’s High
j(http://www.wikinvest.com/metric/52_Week_Low “52 Week Low”)k(http://www.wikinvest.com/metric/52_Week_High “52 Week High”)g1Holdings Gain Percent
g3Annualized Gaing4Holdings Gaing5Holdings Gain Percent (Real-time)
g6Holdings Gain (Real-time)iMore Infoi5Order Book (Real-time)
j1Market Capitalizationj3Market Cap (Real-time)j4EBITDA
j5Change From 52-week Lowj6Percent Change From 52-week Lowk1Last Trade (Real-time) With Time
k2Change Percent (Real-time)k3Last Trade Sizek4Change From 52-week High
k5Percebt Change From 52-week HighlLast Trade (With Time)l1Last Trade (Price Only)
l2High Limitl3Low LimitmDay’s Range
m2Day’s Range (Real-time)m350-day Moving Averagem4200-day Moving Average
m5Change From 200-day Moving Averagem6Percent Change From 200-day Moving Averagem7Change From 50-day Moving Average
m8Percent Change From 50-day Moving AveragenNamen4Notes
oOpenpPrevious Closep1Price Paid
p2Change in Percentp5Price/Salesp6Price/Book
qEx-Dividend DaterP/E Ratior1Dividend Pay Date
r2P/E Ratio (Real-time)r5PEG Ratior6Price/EPS Estimate Current Year
r7Price/EPS Estimate Next YearsSymbols1Shares Owned
s7Short Ratiot1Last Trade Timet6Trade Links
t7Ticker Trendt81 yr Target PricevVolume
v1Holdings Valuev7Holdings Value (Real-time)w52-week Range
w1Day’s Value Changew4Day’s Value Change (Real-time)xStock Exchange
yDividend Yield
In my case this was a very simple query in which all I needed was the stock symbol and the last quoted price so I can do a vlookup and plug in the required price in my calculations. The URL I used looks somewhat like this (you can click it to see the resulting data set): (http://finance.yahoo.com/d/quotes.csv?s=bac+bp+c+msft+aapl&f=sl1) This downloads a CSV into your browser but if you put it in as a file connection in excel you’re able to populate a sheet with your stock quotes and then just run a vlookup against it for any information you need.  

In Excel you can find the import HTML menu under Data, in the External Data Sources section. (http://kx.cloudingenium.com/wp-content/uploads/sites/3/2011/08/Kx.CloudIngenium.com-Excel-2011-Data-HTLM-Import-Screenshot-1024x211.png)](http://kx.cloudingenium.com/wp-content/uploads/sites/3/2011/08/Kx.CloudIngenium.com-Excel-2011-Data-HTLM-Import-Screenshot.png) If you can’t find that menu, you need to use the Web Query functionality. From what I see basically you need a Web Query Definition file even for the option presented above. If you need help setting up the definition file or need help accessing that option in Excel, check this post out: (http://kx.cloudingenium.com/microsoft/office/excel/excel-2011/how-to-create-web-query-files-for-use-with-excel-for-mac/). This should do the trick on a Excel 2011 for Mac.


  Related: If you want to query historical closing prices, you should check out this post: (</content-providers/yahoo/yahoo-finance/how-to-obtain-historical-stock-prices-from-yahoo-finance-you-can-query-them-via-excel-too/>)   If you happen to know cooler tricks or suggestions let me know!

(http://img.zemanta.com/zemified_h.png?x-id=3aa7a72a-287a-4dae-8c07-3c5b78c86b11)](http://www.zemanta.com/?px “Enhanced by Zemanta”)

Summary

You’ve successfully learned obtain stock quotes from yahoo finance (you can query them via excel too). If you run into any issues, double-check the prerequisites and ensure your Content Providers environment is properly configured.