Beruflich Dokumente
Kultur Dokumente
AGENDA
Part 1
Excel Basics
Modeling best practices
Basics
Useful functions
Mac keyboard shortcuts
Part 2
Modeling Exercise: Uber
Research the business and its stats
Design your model and determine key drivers
Implement and share
300053738.xlsx
1 of 14
Always start from scratch, even if you steal from other models, so that you can think through things from the ground up
Keep your model clean so that you and others can understand it
Group assumptions as much as possible
Implement your model vertically, not horizontally (i.e. make your viewer scroll vertically)
Add a summary tab with data/charts with the key results
Turn off grid lines
Color code
Use range names, and document them
Add a version notes tab for complex models
Give tabs a concise but understandable name
Repeat the tab title in cell A1
Be careful with comments, data, confidentiality for anything that might be shared outside the company
COLOR CODING
NAMED RANGES
Example
Salary Multiple
Customer Support
Sales - Junior
1.35 colorcoding_salarymultiple
Base Salary Fully Loaded
50,000
67,500
75,000
101,250
Example
Employee Type
Customer Support
Sales - Junior
Sales - Senior
Marketing Director
Base
Bonus
50,000
2,000
75,000
2,000
200,000
10,000
100,000
5,000
namedrange_employee table
Exercise
CREATE A NAME FOR THE HIGHLIGHTED AREA
Monthly Costs
Telephone
80
Internet
110
Utilities
220
Rent
750
<--- THEN DOCUMENT THE NAME HERE
300053738.xlsx
2 of 14
TIP! You can pull names into your formulas easily using F5 (Go To)
300053738.xlsx
3 of 14
Basics
CREATING A FORMULA
INSERTING / DELETING A ROW OR COLUMN
FILLING DOWN / ACROSS
FORMULA ANCHORING
PASTE SPECIAL
GOTO
CREATING A FORMULA
Examples
Pears
4
5
9
3
7
Answer 1
Answer 2
10
10
Exercise
May
June
Customers
Total Costs
10
80
Answer
80
72
15
120
Exercise
FILL DOWN TO MAKE LIST A IDENTICAL TO B
LIST A
LIST B
1
1
2
3
4
FORMULA ANCHORING
Exercise
May
June
10
100
90
15
150
PASTE SPECIAL
GO TO
Go To (F5) is incredibly useful. Here are three use cases:
Use it to jump to a named range without having to hunt/scroll around your model
Use it to look up and insert the name of a cell/range into your formulas, so you can type less (and don't have to remember exact spelling)
EXAMPLE
23
a_goto_example
<-- select the cell, type = to start a formula, and then hit F5. Choose "a_goto_example" from the list
300053738.xlsx
4 of 14
300053738.xlsx
5 of 14
Key Functions
ROUND
IF
IF + ISERROR
VLOOKUP
HLOOKUP
COMBINING VLOOKUP & HLOOKUP
INDEX / MATCH
SUMPRODUCT
DATE AND TEXT FUNCTIONS
ROUND
ANSWER
10
10
10
IF
IF statements are logical tests that allow you to compare two elements and return an answer depending on whether the test came out true or false.
You can compare numbers or text, whether pointing to a cell or a value written directly into the formula
= IF ( condition, result if true, result if false )
Target Margin
20%
Actuals
April
May
June
July
21%
19%
25%
18%
Above Target?
YES
NO
YES
<--- ENTER THE "IF" FORMULA TO SHOW WHETHER ACTUAL IS ABOVE OR BELOW TARGET
IF FUNCTIONS + ISERROR
Clean up error alerts in your model with ISERROR function
FIX REVENUE PER CUSTOMER ERROR
Revenue
100
Customers
0
Rev per Customer
#DIV/0! <---- this is ugly! let's get rid of it
Rev per Customer
Answer
VLOOKUP
Allows you to look up key data from a COLUMN of data
Vlookup works for vertical lookups, hlookup for horizontal
=VLOOKUP ( reference cell, target range, column number, FALSE )
1
Employee Type
Customer Support
Sales - Junior
Sales - Senior
Marketing Director
2
3
Base
Bonus
50,000
2,000
75,000
2,000
200,000
10,000
100,000
5,000
vlookup_employeetable
200,000
HLOOKUP
Allows you to look up key data from a ROW of data
=HLOOKUP ( reference cell, target range, row number, FALSE )
1
2 Sales
April
May
1,025
June
1,123
965
1,025
1
Sales
Cost of Sales
Operating Cost
April
2
May
3
1,025
410
600
June
4
1,123
435
597
965
395
610
vlookup_revtable
1,123
435
597
INDEX / MATCH
Index and Match are two functions that together also give you lookup capabilities
300053738.xlsx
6 of 14
This is an alternative to VLOOKUP that doesn't require the lookup column to be the first column
= INDEX ( RANGE WHERE THE RESULT IS, ( MATCH ( LOOKUP-ITEM , LOOKUP-RANGE, 0 ) )
Color
Red
Green
Yellow
Fruit
Apples
Pears
Bananas
Pears
USE INDEX and MATCH TO LOOKUP THE COST/POUND OF THE KIND OF FRUIT
Bags to Buy
Cost / Pound
Total Cost
12
0
Answer
4
SUMPRODUCT
Sumproduct was designed to multiple items in a data and sum up the products
= SUMPRODUCT ( RANGE , RANGE )
CALCULATE THE TOTAL REVENUE
Customers
Revenue Per
25
30
15
5
10
6
Total Revenue
Answer
515
NY
SF
SG
ANSWER
Scoping
752,000
210,000
291,000
Proposal
Negotiation
85,000
135,000
539,000
0
0
746,000
NY
SF
SG
ANSWER
Scoping
2
1
2
Proposal
1
3
0
Negotiation
2
0
2
Mar-14
Apr-14
= TEXT ( value, format_text ) lets you convert a value to text and format it
This is very useful when you want calculated data to be included in a comment
Rep
John Smith
Sales
1200
Month
Apr-15
Example:
In April, John Smith sold $1,200 copies
<-- look within the cell to see how the formula is constructed
formatting both a date and a number
OFFSET
OFFSET lets you reference a cell or range that is a number of rows and/or columns from a cell or range
It isn't often needed, but very powerful when needed (for example, doing a cohort model)
CUSTOMER CHURN
Months as Customer
1
2
3
4
Cohort % Lost
50%
20%
5%
3%
offset_churntable
April
May
New Customers
Churn Analysis
Month In
1
2
3
4
Lost Customers
Total Customers
100
April
June
150
May
0
0
0
0
0
100
July
160
June
50
0
0
0
50
200
185
July
75
20
0
0
95
265
80
30
5
0
115
335
EXPLANATION
The formula above is very complex, but we can break it into pieces to understand it
=ROUND(IF(ISNUMBER(OFFSET(D$219,0,-$C223)*VLOOKUP($C223,offset_churntable,2,FALSE)),OFFSET(D$219,0,-$C223)*VLOOKUP($C223,offset_churntable,2,FALSE),0),0)
The core is the OFFSET formula which goes up to the row showing New Customers, and offsets back to the original month the cohort joined
300053738.xlsx
7 of 14
OFFSET(D$219,0,-$C223)
The original number of customers is then multiplied by the churn rate for the month the cohort is in (looked up from the assumption table)
* VLOOKUP($C223,offset_churntable,2,FALSE)
In order to prevent errors when we fill the formula across and down, we need to make sure the anchoring is correct
and use some additional formulas
first we check to make sure the result of the offset is an actual number (because some cells will offset off of the table)
IF ( ISNUMBER ...
lastly we round the result to an integer because we don't want partial customers
= ROUND ( ...
300053738.xlsx
8 of 14
Text to Columns
text to columns lets you parse out lines of data into discrete pieces of data, either based on width or a separator
CONVERT THE BELOW DATA INTO SEPARATE COLUMNS OF DATA, USING THE SEMI-COLON AS THE DELIMITER
AND SET THE DESTINATION CELL TO D8
apples;84;$4;red
bananas;125;$2;yellow
pears;56;$3.50;green
RESULT SHOULD LOOK LIKE THIS
apples;84;$4;red
bananas;125;$2;yellow
pears;56;$3.50;green
apples
bananas
pears
84
125
56
$4
$2
$3.50
red
yellow
green
UNIQUE VALUES
When you have a long list of data, it is often useful to pull out the unique items and strip out duplicates;
To trigger, go to DATA > ADVANCED FILTER
CITIES
Washington DC
Paris
London
Paris
New York
Singapore
Beijing
Beijing
Paris
New York
Washington DC
Singapore
London
Paris
Washington DC
Paris
New York
1.
2.
3.
4.
EXAMPLE SCREENSHOT
ANSWER
CITIES
Washington DC
Paris
London
New York
Singapore
Beijing
VALIDATION
Validation lets you control inputs into your model, and give users error messages if something is wrong
To trigger, go to DATA > VALIDATION
SET THE BELOW CELL TO ONLY ACCEPT A DATE BETWEEN THE START/END DATES
AND ADD AN ERROR MESSAGE
Start Date
End Date
1/1/2015
3/31/2015
EXAMPLE
3/20/2015
INPUT DROPDOWNS
Validation also lets you create dropdowns when you want to limit the inputs from a user
You can combine validation dropdowns with lookups or IF functions to toggle scenarios in your model
Choose "List" as your type of validation
To keep the model clean for an end user, you can have your dropdown reference data on another sheet, for example an assumptions tab
EXAMPLE
Assumptions Section
Inputs
Best Case
Middle Case
Worst Case
Customer
Adjustment
150%
100%
50%
Revenue /
Customer
$15
$10
$5
inputdropdowns_scenarios
Model Section
SCENARIO
Best Case
Forecast
April
Customers
Adjusted Customers
Total Revenue
50
75
$1,125
May
June
75
113
$1,695
100
150 <-- NOTE THE USE OF THE ROUND FUNCTION TO PREVENT PARTIAL CUSTOMERS
$2,250 <-- THE REVENUE PER CUSTOMER CHANGES
DATA TABLE
Use Data Tables to run scenarios that run two variables through your model
300053738.xlsx
9 of 14
EXAMPLE
LET'S EXAMINE WHAT COULD TRIGGER QUARTERLY LOSS VS PROFIT
Assumptions
New customers per month
Monthly churn
Revenue per customer
Cost to acquire new customer
Operating cost per customer
50
40%
10
3
5
Quarterly Forecast
New Customers
Lost Customers
Total Customers
April
50
0
50
May
50
20
30
June
50
12
38
Q1
150
32
Monthly Revenue
CAC Cost
Operating Cost
Operating Profit
Operating Margin
500
150
250
100
20%
300
150
150
0
0%
380
150
190
40
11%
1180
450
590
140
12%
$3
$9
INSTRUCTIONS TO DUPLICATE
The top left cell must be your "output" cell
Set up your inputs and label them
Quarterly Operating Margin
Revenue Per
Customer
0%
$6
$8
$10
$12
$14
$3
$9
$3
$9
50
40%
10 <-- point the COLUMN INPUT to this cell (not here but above in the model)
3 <-- point the ROW INPUT to this cell (not here but above in the model)
5
CONDITIONAL FORMATTING
Conditional formatting (under the Format menu) lets you automatically format cells based on conditions
You can create multi-colored heat maps to help make data easier to parse
This is useful for data tables to highlight certain results
EXAMPLE: highlight the results that are less than zero or over our minimum goal
Minimum Goal:
20%
Quarterly Operating Margin
Revenue Per
Customer
Monthly Churn
50%
75%
25%
$8
$10
$12
$14
$16
300053738.xlsx
85%
-47%
10 of 14
300053738.xlsx
1
2
3
4
5
6
11 of 14
SHORTCUT
Ctrl + L
Ctrl + U
Command + T
Format as percentage
Format as number with commas
Ctrl + Shift + % (% = 5)
Ctrl + Shift + ! (! = 1)
Command
Command
Command
Command
Ctrl + spacebar
Shift + spacebar
Insert a row
Insert a row
Delete a row
Delete a row
Fill down
Fill right
Ctrl + D
Ctrl + R
Ctrl tab
Paste Special
Ctrl + Command + V
Next worksheet
Previous worksheet
Ctrl + pagedown
Ctrl + pageup
Auto-sum
Command + Shift + T
F5
See more:
300053738.xlsx
+
+
+
+
Option
Option
Option
Option
+
+
+
+
0
up arrow
down arrow
hyphen
https://support.office.com/en-nz/article/Excel-keyboard-shortcuts-ef213435-a57e-4ce1-bac6-2b39f16cb121
12 of 14
Version Notes
Date
7-Mar-15 Created initial draft: Intro, modeling best practices, basics, useful function
8-Mar-15 added conditional formatting
16-Mar-15 fixed answers for filling-down on Basics tab; answers for ROUND