Ads 468x60px

Monday, July 2, 2012

Formula Forensics. No 007 – Sumproduct

Formula Forensics. No 007 – Sumproduct:
One of the most asked questions within the posts and Forums at Chandoo.org is “How Does Sumproduct work ?”.
Rahul recently asked for an example in Excels Sumproduct Formula post;  Comment No. 55.
So today in Formula Forensics we will take a look at just that with a few worked examples.

Sumproduct

Excels help defines Sumproduct as:

So what are these arrays referring to:
An array in Excel can be :
A manual Array:     {10;20;30}
A Range:              A1:A3
A Named Range: MyRange1
Where MyRange1 is defined as a defined range in the Name Manager.
A Named Formula: MyRange2
Where MyRange2 is defined as a Formula returning a range in the Name Manager.

Lets look at each
You can follow along in the Example file on Sheet1

An Array
In C2 type: =SUMPRODUCT({10;20;30})
Excel will display 60, which is the Sum of the array elements =10+20+30
A Range
C7:          =Sumproduct(C4:C6)
Excel displays 60, which is the Sum of the cells from the range C4:C6 =10+20+30
A Named Range
In the Name Manager or Name Box define a Named Range
MyRange1:         =Sheet1!$C$4:$C$6
Then in C10 type:
C10: =Sumproduct(MyRange1)
Excel displays 60, which is the Sum of the range elements =10+20+30

A Named Formula
In the Name Manager define a Named Formula
MyRange2          =OFFSET(Sheet1!$C$3,1,0,3,1)
Then in C12 type:
C12:       =Sumproduct(MyRange2)
Excel displays 60, which is the Sum of the range elements from cells C4:C6 =10+20+30

You may be asking why use Sumproduct when we can use a simple Sum to add up 3 numbers?
The answer is to show you what Sumproduct is doing, it is Adding up each Array element.

What about the “Product” part of Sumproduct ?

Remember back at the start where we saw the Definition of Sumproduct,
SUMPRODUCT(array1, [array2], [array3], …)
Only Array 1 is required, Array 2, Array 3 etc are optional, that’s what the square brackets [ ] mean.

Multiple Arrays

Goto Sheet 2 in the Example file:
We will look at a simple example using two arrays

The data consists of Sales data.
Often we want to know what the total sales are
We do this by  adding a Sales column

Which multiplies the Qty and Price columns
And then Sum (Add) up this new column

Returning our Total Sales of 15,000

Now we can manually check the above as the numbers are simple eg: 100*20 = 2,000 etc
And we can sum up the Sales and see that we in fact had total sales of 15,000

Well this is exactly what Sumproduct is made to do:
In a Blank cell enter: =SUMPRODUCT(D4:D8,E4:E8)

Excel will return 15,000.
So what is Sumproduct doing?
Lets look inside and see what’s going on
In the Example File, Sheet2, H1 there is a copy of the data laid out as below

Note that our formula =SUMPRODUCT(D4:D8,E4:E8)
Has two Arrays
Array 1: D4:D8
Array 2: E4:E8
Note that each corresponding Array Element is multiplied together
100 x 20
20 x 200 etc
These are the products of the two Arrays
Finally the Products are Added together and the correct answer 15,000 is returned.
So Sumproduct is the Sum of the Products of the Arrays
Of course we can extend that to a large number of Arrays, columns in this case, if we wish.


Sumproduct with Logic

In the above two examples we saw that Sumproduct can Sum a single Array and can Sum the Product of two or more Arrays.
We can use that to our advantage and build logic into the arrays, allowing us to optionally include some array elements and leave out others.

How?

Sumproduct will always add up the product of all Arrays.
So by including an Array where the elements within the Array that we don’t want to Sum are Zero and the Elements within the array that we do want to Sum are 1 we can control what is included in the final Summation.
Goto our Example File on Sheet3
Lets say we only want to include the Sales from our Northern Region
One way to do this is to purely delete the other entries

But what if we could do that without altering our worksheet or there are thousands of rows of data?
This is where Sumproduct comes into its own.
What we need to do is add some logic to our equation, effectively doing:

Lets try it with Sumproduct
In Cell F12: type =SUMPRODUCT(D4:D8,E4:E8,{FALSE;TRUE;FALSE;FALSE;TRUE})
Excel displays a -
Excel doesn’t know what to do with the True/False and so converts them to 0
We can force excel to evaluate these as numbers by adding a simple “1*”
In F14: Type =SUMPRODUCT(D4:D8,E4:E8,1*{FALSE;TRUE;FALSE;FALSE;TRUE})
Excel now displays 5,000 the total sales from the North
To see what has happened in F16 type: 1*{FALSE;TRUE;FALSE;FALSE;TRUE}, but don’t press Enter press F9 instead.
Excel displays ={0;1;0;0;1}
The use of the 1* has converted each of the Array elements from a True/False to a 1,0 respectively.
So our 3 arrays are now:

Now adding an Array of 1*{FALSE;TRUE;FALSE;FALSE;TRUE} every time we wanted to add some numbers isn’t a practical solution.
Excel has the ability to work construct an Array on our behalf!
In E18: enter  =SUMPRODUCT(D4:D8,E4:E8,1*(C4:C8=”North”))
Excel will display 5,000
So 1*(C4:C8=”North”) is exactly equal to our previous array 1*{FALSE;TRUE;FALSE;FALSE;TRUE}
1*(C4:C8=”North”) = 1*{FALSE;TRUE;FALSE;FALSE;TRUE}
At the heart of this is that Excel is evaluating each cell in the Range: C4:C8 against our required logic =”North” and setting up an Array for us internally.

Simplify

The power of Sumproduct is therefore in that we can now simplify and extend
In cell E20 type: North
In cell F20 type: =SUMPRODUCT(D4:D8,E4:E8,1*(C4:C8=E20))
Excel will display 5,000
This simple addition allows us to vary the Summation based on the value in E20
We don’t need to multiply our logic array by 1, we can actually use any number or another Array.
In cell F22 type: =SUMPRODUCT(D4:D8,(E4:E8)*(C4:C8=E20))
This works as (C4:C8=E20) is returning an Array of True/False which get converted to an array of 1/0’s when subject to any maths.
The Math in this case is the multiplication by the 2nd Array (E4:E8)*(C4:C8=E20)

In Cell F24 type: =SUMPRODUCT(Qty, Price *(Region=SalesRegion))
Excel will display 5,000
But notice that by using Named Ranges/Formula how simple the logic of the equation has now become.

Rahul’s Question (Multiple Criteria):

In Comment No. 55: Rahul asked, “Can you give an example work sheet of above example
Sheet 4 in the Example File is the answer.

In Cell C23: type: =SUMPRODUCT(- -(A2:A21=”Luke Skywalker”),- -(B2:B21=”West”),C2:C21)
Excel will display 141, which is the sum of the Sales made by Luke Skywalker in the West Region.
However using what was learned above, this is better simplified to:
C26: =SUMPRODUCT((Name=SalesMan)*(Region=SalesRegion)*Sales)



The Double Unary

In the formula above Chandoo has used what is known as a Double Unary, which is 2 – signs next to each other (I have inserted a space above to make it more legible).
Two – signs are the same as saying
- -(A2:A21=”Luke Skywalker”) = -1 x -1 x (A2:A21=”Luke Skywalker”)
-1 x -1 is 1
Technically this is the most efficient way for Excel to perform any maths on the Array
- -(A2:A21=”Luke Skywalker”)
So that the Array of true/Falses made by (A2:A21=”Luke Skywalker”) is converted to an Array of 1/0’s for use in Sumproduct.
At the slight expense of speed but for improved readability and understandability by others I prefer the use of 1* instead of - – and you will mostly see that convention in my posts.
Chandoo:            - -(A2:A21=”Luke Skywalker”)
Hui:                       1*(A2:A21=”Luke Skywalker”)
In fact any maths performed on the array will convert its contents to an array of 1/0’s, so long as the maths doesn’t change the Arrays values
For a real good discussion on this topic have a look at the post The Venerable SUMPRODUCT at ExcelHero.com

Other Links to Sumproduct

http://chandoo.org/wp/2009/11/10/excel-sumproduct-formula/
http://chandoo.org/wp/2011/05/26/advanced-sumproduct-queries/
http://chandoo.org/wp/tag/sumproduct/
http://www.excelhero.com/blog/2010/01/the-venerable-sumproduct.html

DOWNLOAD

You can download a copy of the above file and follow along, Download Here.

OTHER POSTS IN THIS SERIES

You can learn more about how to pull Excel Formulas apart and what makes them tick in the following post:
Formula Forensic Series:

FORMULA FORENSICS NEEDS YOUR HELP !

I am running out of ideas for Formula Forensics and so I need your help.
If you have a neat formula that you would like to share and explain, try putting pen to paper and draft up a Post as Luke did in Formula Forensics 003. or like above.
If you have a formula that you would like explained but don’t want to write a post also send it in to Chandoo or Hui.

XMAS BREAK

This will be the last Formula Forensics Post for 2011, but rest assured that we will be returning in early 2012.
I’d like to take the opportunity to thank Chandoo for allowing me the space and freedom to post pretty much what ever I’ve wanted at Chandoo.org. I hope you have enjoyed my contributions to the Chandoo.org community over the past year.
On behalf of Eva and myself I’d like to wish you all a very Merry Xmas and a Happy and Safe New Year ahead

Hui…

Merry Xmas


Join Excel School & Become Awesome in Excel Today!

Join Excel School & Become Awesome in Excel Today!:
Join Excel School & Become Awesome in ExcelSome of you know that I run an online Excel training program – Excel School. This program has 24 hours of detailed, step-by-step, fun & very useful Excel training, all available online so that you can view & learn at your own pace.
Creating this program has been the best thing that happened in my life. This program has been received very well by Excel users all over the world. Since we launched in Jan 2010, More than 2,500 people have joined Excel School and have become awesome in Excel. Personally, I have learned so much more about Excel, teaching & running business by conducting this program in last 2 years.
You too can become awesome in Excel by joining us. Please click here.

What do our students say about Excel School?

I have asked our students & recognized Excel personalities to review & rate our program. You can read a few of those reviews here:
Here is what David says,
Chandoo brings out innovative ways of using Excel formulas.  Some are functions I’ve never heard of, and some are formulas I thought I knew.  Chandoo shows new ways to use the functions.  The lessons are very informative and it is great to have the spreadsheet examples.  Being able to download the lessons is great since I will no doubt forget a few things along the way.
Here is what Jesse says,
The downloadable materials are VERY helpful, but even better combined with the very excellent instruction–it’s all the best!
Reghunath says,
Fabulous teaching technique. Your ability to teach basics with simple language is truly appreciable.
Here is what Daniel Ferry from Excelhero.com says,
If you want to develop an amazingly strong skill set in Excel, Excel School is the right place. The online school is first rate, as are the downloadable workbooks and videos. It is obvious from the moment you first log on that Chandoo has worked endlessly for over a year now, designing the perfect curriculum and developing lessons, with the business user in mind.
Read Daniel’s full review.

Holiday Special – 20% Discount on Excel School Fees

This holidays, I want to spread some love. So we are giving 20% discount on course fees. Please use the discount code LETSGOEXCEL to claim it during checkout.
Note: this discount is valid until 5th of Jan, 2012 only. So hurry up.

How to Join Excel School?

Just like everything else here, we have a 5 step tutorial on this too ;)
  1. Visit Excel School page.
  2. Know about the course & what you get.
  3. Decide which option to go for & Click on the green sign-up button.
  4. Pay course fees (using your credit card, eCheck, PayPal accounts)

    For our Indian students, we have credit, debit cards, net banking, check, bank transfer options. Click here.
  5. Start learning & Become Awesome in Excel
That is all.
PS: If you want to learn Excel, but not pay, check out these 80 links. Tons of information, examples & awesome tricks to be learned.
PPS: Go ahead and enjoy the discount. Because you want to become awesome in Excel. Click here.

Formula Forensics 006. Palindromes

Formula Forensics 006. Palindromes:

Chandoo wrote a post in August 2011 where he looked at determining if a cell contained a palindrome.
Chandoo presented a formula for determining if a cell; C1; contains a palindrome:
=IF(SUMPRODUCT((MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)=MID(C1,LEN(C1)-ROW( OFFSET($A$1,,, LEN(C1) )) +1, 1))+0)=LEN(C1),"It’s a Palindrome","Nah!")
And then Chandoo challenged everyone:
How does this formula work?
Well, that is your weekend homework.
So today we’re going to complete our homework and pull apart the above formula and see what makes it tick.

Palindrome Setup

Download the example file so you can follow along with a worked example, Excel 97-2010.
In a blank worksheet enter
C1: “Chandoo” without the brackets
D1: =IF(SUMPRODUCT((MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)=MID(C1,LEN(C1)-ROW( OFFSET($A$1 ,,, LEN(C1)))+1,1))+0)=LEN(C1),"It’s a Palindrome","Nah!")
In the example below we will work on two words:
Firstly, “Chandoo” which is clearly not a Palindrome
and Secondly, “Radar” which is a Palindrome



Non-Palindrome Analysis

The main structure of this formula is that it is a simple If () function.
The Excel If() function is defined by 3 parts
=If(Condition, Value if True, Value if False)
Our Formula is
=IF( SUMPRODUCT(( MID(C1, ROW( OFFSET( $A$1,,,LEN(C1))), 1) = MID(C1, LEN(C1) - ROW( OFFSET( $A$1,,,LEN(C1))) + 1, 1)) + 0) = LEN(C1), "It’s a Palindrome", "Nah!")
Condition:                 SUMPRODUCT((MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1) = MID(C1, LEN(C1) - ROW(OFFSET($A$1,,,LEN(C1)))+1,1))+0)=LEN(C1)
Value if True: "It’s a Palindrome"
Value if False: "Nah!”
Lets not waste time on the two Values if True/False as they are purely a message to the user, the real work happens in the Condition part of the If() function.
The Condition does all the work: SUMPRODUCT((MID(C1,ROW( OFFSET($A$1,,, LEN(C1))),1) = MID(C1, LEN(C1)-ROW( OFFSET($A$1,,,LEN(C1)))+1,1))+0)=LEN(C1)
Is a Sumproduct and a Len
That is the formula is doing a calculation of the sumproduct of some inner calculations and comparing the answer to the length of the contents of cell: C1 in the example of "Chandoo" = Len(C1) = 7



SUMPRODUCT(( MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)= MID(C1, LEN(C1)-ROW( OFFSET($A$1,,, LEN(C1)))+1,1))+0)=LEN(C1)
Lets now look at the two inner calculations:
MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)
Copy this calculation into E7
= MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1) Don’t press Enter, press F9
(If using the example file goto cell E9, Press F2 and then F9)


Excel will return {"C";"h";"a";"n";"d";"o";"o"} Don’t press Enter, press Esc when ready
It is an Array of the letters in the cell C1
Now do the same for the second part of the equation:
Copy this calculation into E8
= MID(C1, LEN(C1)-ROW(OFFSET($A$1,,,LEN(C1)))+1,1) Don’t press Enter, press F9
Excel will return {“o”;”o”;”d”;”n”;”a”;”h”;”C”}
You will notice that this array is the reverse of the word in C1
We will come back to how these two equations work in a minute or two
But note that we now have
Sumproduct(({"C";"h";"a";"n";"d";"o";"o"}={“o”;”o”;”d”;”n”;”a”;”h”;”C”})+0)
We can evaluate the inner part of this to see what happens
Copy this calculation into E10
={"C";"h";"a";"n";"d";"o";"o"}={“o”;”o”;”d”;”n”;”a”;”h”;”C”} Don’t press Enter, press F9
Excel will return an Array {FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE}
This means that only the 4th letter or “n” in Chandoo is the same forward and backwards.
Looking at the next bit
Copy this calculation into E12
=({"C";"h";"a";"n";"d";"o";"o"}={“o”;”o”;”d”;”n”;”a”;”h”;”C”})+0 Don’t press Enter, press F9
Excel will return {0;0;0;1;0;0;0}
Excel has converted the false/True array above into an array of 0′s and 1′s


Finally in E14 evaluate:
=Sumproduct({0;0;0;1;0;0;0})
Is evaluated and Excel adds up all the numbers returning a 1 as the answer.
So the original equation :
=IF(SUMPRODUCT((MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)=MID(C1,LEN(C1)- ROW( OFFSET($A$1,,, LEN(C1))) +1,1)) +0 )=LEN(C1),"It’s a Palindrome","Nah!")
Is simplified as
=IF( 1 = LEN(C1),"It’s a Palindrome","Nah!")
Now C1 has the Word “Chandoo “ in it which is 7 letters long
=IF( 1 = 7,"It’s a Palindrome","Nah!")
So the If() function returns the False answer of “Nah!”

Non-Palindrome Analysis

If we place a Palindrome such as “Radar” in C1 and skip backwards to the
SUMPRODUCT(( MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)= MID(C1, LEN(C1)-ROW(OFFSET($A$1,,,LEN(C1)))+1,1))+0)=LEN(C1)
Section , Evaluating each part again we see
E21: MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)
Evaluates to {"R";"a";"d";"a";"r"}
And
MID(C1, LEN(C1)-ROW(OFFSET($A$1,,,LEN(C1)))+1,1)
Evaluates to: {"r";"a";"d";"a";"R"}
And
( MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)= MID(C1, LEN(C1)-ROW(OFFSET($A$1,,,LEN(C1)))+1,1))
Evaluates to: {TRUE;TRUE;TRUE;TRUE;TRUE}
With
SUMPRODUCT(( MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)= MID(C1, LEN(C1)-ROW(OFFSET($A$1,,,LEN(C1)))+1,1))+0)
Evaluating to: 5
Which is clearly equal to the length of the word “Radar” and so the If() function returns “It’s a Palindrome”

A Minute Later


But how do the middle bits
MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)
and
MID(C1, LEN(C1)-ROW(OFFSET($A$1,,,LEN(C1)))+1,1)
Work?
The two equations are effectively the same
The first works left to right and extracts each letter one at a time
The second works right to left and extracts each letter one at a time
How Does
=MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1) F9
Evaluate to {"C";"h";"a";"n";"d";"o";"o"}
=MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1) F9
Is a simple Mid() function which takes the 1 Character at position ROW(OFFSET($A$1,,,LEN(C1))) from the contents of C1
What is ROW(OFFSET($A$1,,,LEN(C1)))
Is used to return an array of numbers from 1 to Len(C1) in this case 7
eg: {1;2;3;4;5;6;7}


So in E16 enter =ROW(OFFSET($A$1,,,LEN(C1))) and press F9
Excel evaluates it to {1;2;3;4;5;6;7}
So the function =MID(C1,ROW(OFFSET($A$1,,,LEN(C1))),1)
Returns the 1st, 2nd. 3rd, 4th, 5th, 6th & 7th characters from C1 as an Array

How Does =ROW(OFFSET($A$1,,,LEN(C1))) work?

=ROW(OFFSET($A$1,,,LEN(C1)))
Takes the Row of the range defined by the Offset Function
Note that OFFSET($A$1,,,LEN(C1)) is a simple Offset that sets up a range
The excel Offset Function is defined as
=Offset(Reference, Rows, Columns, [Height], [Width])
In our example
=OFFSET($A$1,,,LEN(C1))
Will return a Range which is referenced to A1, has no Row or Column offset and is the length of cell the contents of Cell C1
Effectively returning a range A1:A7
Because this is all in an Sumproduct formula, Excel evaluates this formula for each value in the Range
And so
=ROW(OFFSET($A$1,,,LEN(C1)))
evaluates it to
{1;2;3;4;5;6;7}
Which is then used extract the characters from the word in C1 into an Array as {"C";"h";"a";"n";"d";"o";"o"}

A similar process applies to the second half of the two equations
MID(C1, LEN(C1)-ROW(OFFSET($A$1,,,LEN(C1)))+1,1)
Except that it is evaluated from the Right to Left of the Word in C1 by use of the
LEN(C1)-ROW(OFFSET($A$1,,,LEN(C1)))+1
In the Mid Equation

Summary

So in summary we use Sumproduct to compare two Arrays, which contain the word and the word reversed, to each other. The Sumproduct counts the number of common matches and then this is compared to the length of the word.
If the two match the word is a Palindrome.

DOWNLOAD

You can download a copy of the above file and follow along, Download Here.

OTHER POSTS IN THIS SERIES

You can learn more about how to pull Excel Formulas apart in the following posts which are all included in the Formula Forensic Series:

WE NEED YOUR HELP

I am running out of ideas for Formula Forensics and so I need your help.
If you have a neat formula that you would like to share and explain, try putting pen to paper and draft up a Post as Luke did in Formula Forensics 003 or like above.
If you have a formula that you would like explained but don’t want to write a post also send it in to Chandoo or Hui.

Shortcut for Long Models

Shortcut for Long Models:
Have you created models which run into 20 – 30 years? You might have noticed that navigating to the last year (the last column) is probably the most boring part (and also the most time consuming part). Excel does provide you a shortcut (Ctrl + end), but that hardly works!
It’s been a while since we spoke and in this tutorial, I would like to make up for our lack of interaction by introducing a clever trick to cut down your time and effort in creating such models.
Shortcuts-long-models-v3

Where would you see the use of such a technique?

In most of the financial projections that we create for Project Finance, Project Management (Especially for long gestation projects), month on month projections, navigating to the last year/ month in such a sheet is a slow process. Typically you would have 100s of years/ months and you have the following choices with you:
· If you use Shift + Right key, you can easily take a quick nap by the time you reach the right cell.
· If you use Ctrl + Shift + Right, Excel will take you to the end. If you are planning to come back with Shift + Left Key, I suggest you have a comfortable pillow to sleep!
· I earlier used to resort to Ctrl + End shortcut key, but that does not work if your sheet has end characters placed at random places in your sheet.
image
The basic techniques do not work here!

Create a Guiding Row

The trick is to use a combination of Excel shortcuts and use the modeling process more intelligently. The first step is a manual process and can take the usual time – Creating a guiding row.
For example, in my model, I have created a row for Construction counter flag. For this row, I typically just write the formula and use Shift + Right key to navigate to the end of the model and use one of the following:
· Ctrl + R (Copy to the full row)
· F2 (to Edit), followed by Ctrl + Enter (Please note that it is not Ctrl + Shift + Enter)
· Copy (Ctrl + C) in the beginning and then press Enter (I avoid using Ctrl V to make sure that my clipboard is always empty)

Ctrl + C: Copy, Shift + Right to Navigate to End

image

Enter to Paste

image

Use the Guiding Row to Create the Model now

Once we have the guiding row ready, we can use a combination of the excel shortcuts that we already know of. Let me show you the sequence:
1. Copy the formula
image

2. Navigate to the guiding row
image

3. Use Ctrl + Right Arrow to navigate to the end of the guiding row
image

4. Go Down one row (From the guiding row)
image

5. Use Ctrl + Shift + Left key to select and reach the beginning
image

6. Press Enter (or Ctrl + R Key) to fill all the cells
image

7. Final Shortcut Usage
Shortcuts-long-models-v3

Another way to tackle the problem

Just like in this case we are using a row as a guiding row, I also use a guiding column to navigate quickly to the last column. What I would do is simple – Put a cross after the last column and then use Shift + Ctrl + Right key to navigate to the end.
I will speak about this trick in another tutorial!

Which Shortcuts do you use for your long models?

Shortcuts are cool! They help you concentrate on the modeling process rather than waste time fiddling with the Excel. Which shortcuts do you use in your long models? Share and learn!

Templates to download

I have created a template for you, where the subheadings are given and you have use the functions to get the right values for you! You can download the same from here. You can go through the case and fill in the yellow boxes. I also recommend that you try to create this structure on your own (so that you get a hang of what information is to be recorded).
Also you can download this filled template and check, if the information you recorded, matches mine or not! :)
For any queries regarding the cash impact or financial modeling, feel free to put the comments in the blog or write an email to paramdeep@edupristine.com
Chandoo.org has partnered with Pristine to launch a Financial Modeling Course. For details click here.


Financial Modeling using Excel - Online Classes by Chandoo.org & Pristine