A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Stock Portfolio Tracker | |||||||||||||||||||
2 | Brought to you by: | InvestmentMoats.com | Heavily customized by pjigar | |||||||||||||||||
3 | Please send your feedbacks and queries to | Queries and Feedback | ||||||||||||||||||
4 | Description | Stock Portfolio Tracker is Investment Moats attempt at creating an online spread sheet that will let a stock investor 1) Monitor your stocks in a portfolio 2) Track stock purchase by transactions 3) Transactions compatible includes purchase, sale, dividend and stock splits 4) Aggregate transactions to individual stocks 5) Aggregate individual stocks to portfolio 6) Calculate each stock's XIRR 7) Factors in Bonus, Rights Issue | ||||||||||||||||||
5 | Donate | If you appreciate this spreadsheet and would like to donate to the effort, donate here! | ||||||||||||||||||
6 | How to use this | |||||||||||||||||||
7 | Detail how to use instructions view this article | |||||||||||||||||||
8 | Legend | |||||||||||||||||||
9 | Field that needs to be specify by user | |||||||||||||||||||
10 | Field that contains formula. Do not fill in this field with user's own values | |||||||||||||||||||
11 | Version History | Reference Links | ||||||||||||||||||
12 | 1.9 | Reformat Portfolio Summary (13 May 2013) 1) Added Secton to fill in unlisted equities, cash | ||||||||||||||||||
13 | 1.8 | Take out XIRR formula for individual stocks in Stock Summary and Stock Summary USD because it is too intensive! Specifically, QUERY and VLOOKUP are intensive formulas Formula is at right side. For users who are interested in implementing XIRR on individual stocks can 1) at Stock Summary or Stock Summary USD, create a column after column U (Market Value). 2) copy the formula to the right in Reference Links into the first cell (cell row 2) 3) drag the row 2 downwards to propagate to the rest of the other rows. | iferror(XIRR( SPLIT ( JOIN ("," , QUERY(Transactions!A$2:Q,"SELECT Q WHERE (B = 'Buy' OR B = 'Sell' OR B='Div') AND C = '" & B2 & "'"), U2, "," ) , ",") , SPLIT ( JOIN ("," , QUERY(Transactions!A$2:Q,"SELECT A WHERE( B = 'Buy' OR B = 'Sell' OR B='Div') AND C = '" & B2 & "'"), TODAY(), "," ) , ",") ),0) | |||||||||||||||||
14 | 1.7 | Functionality - XIRR for individual stocks at stock summary - added column Cash Flow to Transactions and Transactions USD - added column XIRR to Stock Summary and Stock Summary USD Note: XIRR takes the following example. Buy transactions are negative, Div and Sell are positive. Div is taken into account assuming there are no reinvestment | ||||||||||||||||||
15 | 1.6 | -added a Remarks column in Transactions to help users take note of each transactions | ||||||||||||||||||
16 | 1.5 | -added "Yield on Transaction" in Transactions to reflect the yield on individual sell and dividend transaction | ||||||||||||||||||
17 | 1.4 | - Fixed bug in Mthly and Yrly worksheet where #NUM was shown in values that is working previously. What it boils down to is that a bug with MONTH() and YEAR() has been apparently fixed, whereby if these functions were referencing a blank cell, they would return 12 and 1899 respectively, as if the cell they were referencing was actually zero. Now it seems they are (correctly) returning a #NUM! error when this is done. -The solution is to append an IFERROR(YEAR(Transactions!$A$2:$A)=$A2)) around the YEAR and the MONTH formulas. If you have taken the sheet before this please do the update accordingly | Yearly and Monthly Dividends Report Fixed | |||||||||||||||||
18 | 1.3 | - Added Mthly worksheet that profiles dividends and stock gains/losses by month so that you can review - Added Yrly worksheet that profiles dividends and stock gains/losses by year so that you can review | ||||||||||||||||||
19 | 1.2 | - Added Last Price Yield to Stock Summary to let user compare against yield on cost | ||||||||||||||||||
20 | 1.1 | -Added Yahoo Data Ref Sheet. This is to store data pull from Yahoo Finance. This is because importData function is limited to 50 times per sheet -Data is thus pulled via VLookup in Stock Summary from Yahoo Data Ref | ||||||||||||||||||
21 | 1.0 | - Added Total Gain/Loss to Stock Summary - Added Last Price Automation by getting prices from yahoo finance using yahoo CSV file and importdata function http://www.gummy-stuff.org/Yahoo-data.htm | ||||||||||||||||||
22 | 0.3 | - Added Portfolio Summary Sheet | ||||||||||||||||||
23 | 0.2 | - Added Stock Split. - Add Split Ratio column. - Change Data Validation for B column in Stock Summary to include "Split" - Add Conditional Formating Rule for B column to include "Split" - Add Split formula to Cumulative Cost if(B2="Split",K2,"Error") - Change Cumulative Stock formula. Retiring arrayformula(sumproduct(($C$2:$C2=C2)*($B$2:$B2="Buy")*($D$2:$D2))-sumproduct(($C$2:$C2=C2)*($B$2:$B2="Sell")*($D$2:$D2)) - New Cumulative Stock formula. =if(B2="Buy",H2+D2,if(B2="Sell",H2-D2,if(B2="Div",H2,if(B2="Split",H2*G2,0)))) | ||||||||||||||||||
24 | 0.1 | Created first draft of stock portfolio tracker | ||||||||||||||||||
25 | ||||||||||||||||||||
26 | ||||||||||||||||||||
27 | ||||||||||||||||||||
28 | ||||||||||||||||||||
29 | ||||||||||||||||||||
30 | ||||||||||||||||||||
31 | ||||||||||||||||||||
32 | ||||||||||||||||||||
33 | ||||||||||||||||||||
34 | ||||||||||||||||||||
35 | ||||||||||||||||||||
36 | ||||||||||||||||||||
37 | ||||||||||||||||||||
38 | ||||||||||||||||||||
39 | ||||||||||||||||||||
40 | ||||||||||||||||||||
41 | ||||||||||||||||||||
42 | ||||||||||||||||||||
43 | ||||||||||||||||||||
44 | ||||||||||||||||||||
45 | ||||||||||||||||||||
46 | ||||||||||||||||||||
47 | ||||||||||||||||||||
48 | ||||||||||||||||||||
49 | ||||||||||||||||||||
50 | ||||||||||||||||||||
51 | ||||||||||||||||||||
52 | ||||||||||||||||||||
53 | ||||||||||||||||||||
54 | ||||||||||||||||||||
55 | ||||||||||||||||||||
56 | ||||||||||||||||||||
57 | ||||||||||||||||||||
58 | ||||||||||||||||||||
59 | ||||||||||||||||||||
60 | ||||||||||||||||||||
61 | ||||||||||||||||||||
62 | ||||||||||||||||||||
63 | ||||||||||||||||||||
64 | ||||||||||||||||||||
65 | ||||||||||||||||||||
66 | ||||||||||||||||||||
67 | ||||||||||||||||||||
68 | ||||||||||||||||||||
69 | ||||||||||||||||||||
70 | ||||||||||||||||||||
71 | ||||||||||||||||||||
72 | ||||||||||||||||||||
73 | ||||||||||||||||||||
74 | ||||||||||||||||||||
75 | ||||||||||||||||||||
76 | ||||||||||||||||||||
77 | ||||||||||||||||||||
78 | ||||||||||||||||||||
79 | ||||||||||||||||||||
80 | ||||||||||||||||||||
81 | ||||||||||||||||||||
82 | ||||||||||||||||||||
83 | ||||||||||||||||||||
84 | ||||||||||||||||||||
85 | ||||||||||||||||||||
86 | ||||||||||||||||||||
87 | ||||||||||||||||||||
88 | ||||||||||||||||||||
89 | ||||||||||||||||||||
90 | ||||||||||||||||||||
91 | ||||||||||||||||||||
92 | ||||||||||||||||||||
93 | ||||||||||||||||||||
94 | ||||||||||||||||||||
95 | ||||||||||||||||||||
96 | ||||||||||||||||||||
97 | ||||||||||||||||||||
98 | ||||||||||||||||||||
99 | ||||||||||||||||||||
100 |