Presentation is loading. Please wait.

Presentation is loading. Please wait.

Excel Advanced Ann Maes & Frederik Gailly Department of Management information Faculty of Economics and Business Administration.

Similar presentations


Presentation on theme: "Excel Advanced Ann Maes & Frederik Gailly Department of Management information Faculty of Economics and Business Administration."— Presentation transcript:

1 Excel Advanced Ann Maes & Frederik Gailly Department of Management information Faculty of Economics and Business Administration

2 Information Outline, Program, Downloads: Contact: Ann Maes Frederik Gailly

3 Outline: Session 1 Pivot tables and graphs Data tables Scenario management Goal seek Solver Importing Financial data from the Web

4 Outline: Session 2  Macro’s  Explore VBA-objects  VBA selection and repetition  VBA buttons and events  VBA form elements

5 Pivot Tables Transform large amounts of data from a table or database into an organized summary report Ability to rotate and reorganize the information via “drag-and drop” Ability to filter and sort data as desired

6 Ex. Sales bookstore Sales per category, per channel and per year, per trimester?

7 Creating a Pivot Table Data > Pivot Table and Pivot Chart Report Three simple steps: Step 1: Data Location Where is the data to analyze? Pivot table or pivot chart? Step 2: Data Source Select range of cells Select file using Browse Step 3: Creating the Pivot Table Location Layout Options

8 Step 1: Data location The data is in a Microsoft Excel list We will create a Pivot Table

9 Step 2: Data Source

10 Step 3: Creating the Pivot table Step 3 The location will be as a new worksheet Must now organize Layout

11 Layout Field buttons

12 Terminology Fields are categories of data (these may usually be row or column headings in a table) Row Fields show each value, or item, in the field as a row Column Fields show each value as a column heading Data Area is the main area of the table where comparative values are shown Grand Totals and Subtotals are sum calculations that appear at the end of relative rows or columns Page Field is a larger category which can group all of the data in the table

13 Column and Row fields: define how data will be displayed in table Page field: creates a filter for your table Data field: what information do you want to summarize? Pivot table template

14 The resulting Pivot Table…

15 Pivot table Page Field Operates like row and column fields but provides a third dimension to your data Without necessarily viewing all its values at the same time (filter) You can also choose to display pivot table pages on separate worksheets

16 Page Field

17 Exercise Show sales per category and channel for 2002 and 2003 in separate pivot tables Show sales per category and channel for each trimester of 2003 in separate pivot tables.

18 Modifying Pivot Table Only selection of values of row/column/ page fields in pivot table  Drop down list of variable Change type of calculation (default Sum)  field settings More than one data-variable in pivot table Grouping data  Group and show detail > Group

19 Calculated Fields Pivot Table Toolbar > Pivot Table > Formulas > Calculated Field to create a new field Ex: Commission

20 Pivot Charts Pivot Table Toolbar > Pivot Charts icon Chart is created from Pivot Table instead of initial data table Data > Pivot Table and Pivot Chart Report Step 1: Pivot Chart Pivot Chart created from data table Pivot Chart has same filtering options as Pivot Table

21 Template Pivot Chart

22 Ex. Show sold units per channel and per year ! If you edit your PivotChart, changes will be made to Pivot Table and vice versa!!

23 What-if analysis “Allows you to change certain conditions in your worksheet to see how these changes affect the result of various spreadsheet calculations” a One and Two-Input Data table Scenario Manager (scenario summary) Goal Seek Utilize Solver

24 Sensitivity Analysis: Data Table To track how small changes in inputs affect the results of formulas in your model that are dependent on those inputs. Two varieties: one-variable data table two-variable data table

25 One-Way Data Table List of values for input variable One or more formula Data Table Matrix with values

26 One-Way Data Table Enter references to formulas to compute across the top (or side) Enter input data, Select the cells comprising the table and use Data | Table… Specify which input value is varied

27 Example Calculate the monthly payment for a loan of EUR of 4 years when you consider a constant interest rate of 11% What would the monthly payment be when the interest rate varies (10%; 10,5%; 11%; 11,5%; 12%;12,5%;13)

28 Result…

29 What if… Not only uncertainty about interest rate but also about amount to loan.  Calculate monthly payment for loan at different interest rates en for several amounts (10000, 11000, 12000, 13000, 14000)  Two-way data table

30 Two-Way Data Table List of values for input variable List of values for other input variable Data Table Matrix with values Formula or reference to formula

31 Two-Way Data Table Enter reference to formula in top left-hand corner of table Enter values for input data, in left column and top row Select cells in table, and use Data | Table… Specify which input values are specified in the table

32 Two-way data table

33 Scenario management To perform what-if analyses with more than two input variables  use scenarios, which are: A set of values for multiple cells that Excel can put into a worksheet Created based on existing spreadsheets in Excel Use the Scenario Manager to set up and view different scenarios. As you view each scenario, Excel uses the values in the scenario as input to calculate the results.

34 Ex. Scenario Management

35 Scenario Management: define several scenarios Use Tools > Scenarios … menu option Add scenarios (with Add… button)

36 Adding additional Scenarios

37 View and edit scenarios Scenarios defined  you can view one by selecting the name of the scenario you want to see in the Scenario Manager dialog box and click Show and then Close. Excel will display the original spreadsheet, with the values from the scenario you chose. You can edit your scenarios from the Scenario Manager Select the scenario you want to edit, and click Edit This will bring up a dialog box in which you can change any of the input values You can then display the spreadsheet with the values from the edited scenario

38 Scenario summary report display a summary of the results from all of the scenarios you have created.

39 Scenario Summary Report The Scenario Summary report shows you how your performance measure and your decision vary for scenarios where multiple input variables are changing.

40 What If vs If What Data Table and Scenario Analysis asked the question “WHAT IF …” ? We might also want to ask the question “IF … WHAT” ? IF our profit is to be $100, WHAT must our sales be? For this question, we can use Goal Seeking IF our profit is to be maximized, WHAT must be done? For this question, which is more complex, we can use Solver

41 Goal seeking Use this when you want to find a specific result for a cell by adjusting the value of one other input cell. Use Tools > Goal Seek… Under Tools > Options… > Calculations you can change the maximum iterations, the precision, etc. At the end you can either ignore or accept the solution Excel suggests.

42 Example Car Payment

43 Tools > Goal Seek Output cell address Target level sought Input to vary If the monthly payment may not exceed 200 what should the duration of the loan be….

44 Result…

45 Optimization Analysis: Solver Finds set of decision variables that achieves best possible value of an output Answers questions such as: How should we allocate our budget to maximize profit? How much inventory should we stock of each type of product, given constraints on shelf size and budget?

46 Excel Solver to solve a mathematical model which has been entered into an Excel spreadsheet This mathematical model can be either Linear Programming problem = there is a linear relationship among all constraints and the objective function Integer Programming problem = decision variables can only take integer values in a given range (these integer values can also be boolean = 0 or 1 only)

47 The Mathematical Model Decision Variables = variables assigned to a quantity or response that must be determined in the problem Objective Function = equation which states the goal of the model Maximize Minimize Constraints = equations which state limitations of the problem To solve the model, each constraint must be considered simultaneously in conjunction with the objective function

48 Tools > Solver

49 The Solver Steps Step 1: Read and Interpret the Problem Step 1.1: determine the decision variables Step 1.2: state the objective function Step 1.3: state any constraints Step 2: Prepare the Spreadsheet Step 2.1: Enter the decision variables Step 2.2: Enter the constraints Step 2. 3: Enter the objective function Step 3: Solve the model with the Solver Step 3.1: Set the Target Cell and choose Min or Max Step 3.2: Select Changing Cells Step 3.3: Add Constraints Step 3.4: Set Solver Options Step 3.5: Solve and review Results

50 Ex. Capital Budgeting A company has six different opportunities to invest money. Each opportunity requires a certain investment over a period of 6 years or less. The Company wants to invest in those opportunities that maximize the combined Net Present Value (NPV). It also has an investment budget that has to be met for each year. In each year there is only a limited amount of money available. All amounts are give in millions of dollars. Interest rate is 5%. A company wants to maximize the combined Net Present Value (NPV) of a maximum of 6 opportunities that require up to 6 yearly investments. In each year there is only a limited amount of money available. All amounts are give in millions of dollars. Interest rate isAll amounts are give in millions of dollars. Interest rate is

51 Step 1: read and interpret the problem Decision Variables Investment percentages in each opportunity Objective Function Maximize combined NPV Constraints Investment percentages < 1 Cash flows < investment budget (Year 1…6)

52 Step 2: Prepare the Spreadsheet The spreadsheet should have each part of the model clearly entered

53 Step 3: solve the model The Solver parameters can now be set according to the cell references with the appropriate model parts

54 Step 3 (continued) Solver Options should also now be set

55 Results

56 Solver Reports Answer Report = lists the target cell and the changing cells with their original and final values, constraints, and information about the constraints. Sensitivity Report = shows how sensitive the solution is to small changes in the objective function formula or the constraints. For linear models, the report includes reduced costs, shadow prices, objective coefficient (with allowable increase and decrease), and constraint right-hand side ranges. Limits Report = lists the target cell and the changing cells with their respective values, lower and upper limits, and target values. The lower limit is the smallest value that the changing cell can take while holding all other changing cells fixed and still satisfying the constraints. The upper limit is the greatest value.

57 Quick Review Pivot tables and graphs Data tables Scenario management Goal seek Solver

58 Importing financial data from the web Web queries can assist you in inserting refreshable data from the Web into your worksheets. You can now navigate to any Web page while setting up a Web query, the same way as you would navigate to that page in your browser. Once you are at the page, you can select one or more tables by clicking the icon images automatically added to the page by Excel.

59 Importing financial data from the web Data > Import External Data >New Web Query.

60 Basic steps Click the arrow next to the tables you want to import ( arrow  checkmark) Web queries are automatically saved with your workbook. If you want to save the query so that it can be run in other workbooks, click Save Query (.iqy extension.) To set formatting and import options for how data is returned, click Options Import Data Choose location data

61 Result web query

62 Excel Advanced: Session 2 Visual Basic For Applications

63 Contents 1. Macro’s 2. Explore VBA-objects 3. VBA selection and repetition 4. VBA buttons and events 5. VBA form elements

64 1.Macro’s

65 Macro’s Visual Basic toolbar View – Toolbars – Visual Basic Play Macro Record Macro Security Settings Visual Basic Editor

66 Macro’s Improve functionality Your first macro: Open budget.xls Select D7:F8 Record Macro Name: CurrencyFormat Cell Properties Valuta Decimals: 0 Stop record Macro Name Macro

67 Run Macro’s Select cells Run Macro Select CurrencyFormat Run

68 Edit Macro in VB Editor Select run Macro Select Macro Edit

69 Macro’s in VB editor Fixed syntax: Sub name_macro() …. End Sub ‘  Remarks Between sub and end sub:  Body Macro contains one or more statements

70 Sign your macro’s !!! Vlerick computers only accept signed macro’s How to sign your macro’s Create a signature Add your signature to the workbook

71 Create a signature Programs > Microsoft Office Tools > Digital Certificate for VBA projects

72 Add your signature to the workbook Microsoft VB Editor Tools > Digital Signature

73 Exercise Macro Create a macro that merges a selection of cells vertical aligns the text. Rotates the text 90°

74 Solution Macro Sub VerticalMerge() ' ' VerticalMerge Macro ' Macro recorded 21/09/2004 by fgailly With Selection.HorizontalAlignment = xlGeneral.VerticalAlignment = xlCenter.WrapText = False.Orientation = 90.AddIndent = False.IndentLevel = 0.ShrinkToFit = False.ReadingOrder = xlContext.MergeCells = True End With End Sub

75 Simplify Solution Sub VerticalMerge() ' ' VerticalMerge Macro ' Macro recorded 21/09/2004 by fgailly ' With Selection.VerticalAlignment = xlCenter.Orientation = 90.MergeCells = True End With End Sub

76 Methods in Macro’s Until now: Record macro’s that change the properties of a selection Next Step: Record methods in a macro. Example: Macro to transpose formulas into values

77 Solution Sub ConvertIntoValues() ' ' ConvertIntoValues Macro ' Macro recorded 21/09/2004 by fgailly ' Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End Sub

78 Summary 2 kinds of statements: Statements that change properties: With this you assign a new value to this property. Ex: Selection.VerticalAlignment = xlCenter Methods: You don’t assign a new value. You are doing something. Methods can have arguments Ex: Selection.PasteSpecial _ Paste:=xlPasteValues, _ Operation:=xlNone, _

79 Execute Complex tasks with macro’s Import File: Open file Wizard import text Move sheet to workbook Delete row

80 ImportFile Macro Sub ImportFile() Workbooks.OpenText Filename:="C:\Excel VBA Oefenbestanden\Nov2002.txt", _ Origin:=xlMSDOS, StartRow:=4, DataType:=xlFixedWidth, FieldInfo:=Array( _ Array(0, 1), Array(8, 1), Array(20, 1), Array(27, 1), Array(41, 1), Array(49, 1)), _ TrailingMinusNumbers:=True ActiveWindow.WindowState = xlNormal With ActiveWindow.Top = -9.5.Left = 3.25 End With Sheets("Nov2002").Select Sheets("Nov2002").Move Before:=Workbooks("hoofdstuk2.xls").Sheets(1) Rows("2:2").Select Selection.Delete Shift:=xlUp End Sub

81 Improve importfile macro 1. Users must be able to select the txt-file: Application.GetOpenFileName(“…, ….”) 2. Remove unnecessary statements 3. Macro’s must be used for all the months of the year Sheets(“nov2002”).Move  ActiveSheet.Move

82 1.Select File myfile = Application.GetOpenFilename("txt-files,*.txt") Workbooks.OpenText Filename:=myfile, _ Origin:=xlMSDOS, StartRow:=4, _ DataType:=xlFixedWidth, FieldInfo:=Array( _ Array(0, 1), Array(8, 1), Array(20, 1), _ Array(27, 1), Array(41, 1), Array(49, 1)), _ TrailingMinusNumbers:=True

83 2. Remove unnecessary statements Sub ImportFile() myfile = Application.GetOpenFilename("txt-files,*.txt") Workbooks.OpenText Filename:=myfile, _ Origin:=xlMSDOS, StartRow:=4, DataType:=xlFixedWidth, FieldInfo:=Array( _ Array(0, 1), Array(8, 1), Array(20, 1), Array(27, 1), Array(41, 1), Array(49, 1)), _ TrailingMinusNumbers:=True ActiveWindow.WindowState = xlNormal With ActiveWindow.Top = -9.5.Left = 3.25 End With Sheets("Nov2002").Select Sheets("Nov2002").Move Before:=Workbooks("hoofdstuk2.xls").Sheets(1) Rows("2:2").Select Selection.Delete Shift:=xlUp End Sub

84 3.all the months of the year Sub ImportFile() myfile = Application.GetOpenFilename("txt-files,*.txt") Workbooks.OpenText Filename:=myfile, _ Origin:=xlMSDOS, StartRow:=4, DataType:=xlFixedWidth, _ FieldInfo:=Array( _ Array(0, 1), Array(8, 1), Array(20, 1), Array(27, 1), _ Array(41, 1), Array(49, 1)), _ TrailingMinusNumbers:=True ActiveSheet.Move _ Before:=Workbooks("hoofdstuk2.xls").Sheets(1) Rows("2:2").Select Selection.Delete Shift:=xlUp End Sub

85 Further exercises Add the missing labels Add column with dates Add month to database Remove worksheet You can try this at home and send your solution to

86 Explore VBA-objects Workbooks, Worksheets, Range, Cells

87 Objects in excel Objects exists in collections Workbook  object Workbook budget.xls  instance of an object Objects have properties Author: property of a workbook Height: property of a cell Name: property of a worksheet Objects have methods Collection of objects have methods

88 Immediate Window We will use the immediate window to explore the VBA objects. View > immediate window

89 Workbooks Add a workbook to the collection Workbooks.add Count workbooks Workbooks.count Close all workbooks Workbooks.close Refer to a workbook Workbooks.Item(1) Workbooks(“Book1”) Name of a workbook Workbooks.Item(1).name Close a workbook Workbooks.Item(1).close ActiveWorkBook.close Activate Workbook Workbooks(“Map14”).activate

90 Worksheets Add a worksheet to the collection Worksheets.add.name = “Nieuw blad” Delete a worksheet Worksheets.Item(1).delete Rename worksheet Worksheets(1).name = “Test” Activate worksheet Worksheet(“Test”).activate Copy worksheets Worksheets(“Test”).Copy Worksheets(“Test”).Copy Before:=Worksheet(1) Select worksheets One: Worksheets(2).select More than One: Worksheets(Array(1,3,4)).select

91 Range Point to a range with an address Range("AA190").Select Range("A12:B34").Select Special Range Object  Cells Cells.Select Cells.Item(5).select Cells.Item(4,2).select Special Range Object  Colums / Rows Columns(3).Select Columns("D").Select Rows("3:14").select

92 CurrentRegion, EntireColums, EntireRow Point to a region based on the current selection ActiveCell.Currentregion.Select ActiveCell.EntireColumn.Select Selection.EntireRow.Select

93 OffSet(m,n) ActiveCell.offset(1,0).Select  Go one row down ActiveCell.Offset(2,2).Select  Go two rows down  Go two columns to the right ActiveCell.Offset(-1,-1).Select  Go one row up  Go one column to the left

94 Add a value to range-object Selection.value = 100 ActiveCell.Offset(-1).value = 0 Selection.Formula = 100 ActiveCell.Offset(-1).Formula = 100

95 R1C1  A1 notation A1 notation A: column 1: row R1C1 notation R1: row 1 C1: column 1 More possibilities: R[-2]C  same columns, 2 rows higher R[1]C5  column 5, 1 row lower

96 Add a formula to range Activecell.Formula = "=A1 * B2“ Activecell.FormulaR1C1= "=R[-2]C - R[-1]C"

97 VBA Selection and repetition

98 Conditional Statements If …….. Then …. Elseif …. Then …. Else …. End if

99 Example 1 Sub GoLeft() ActiveCell.Offset(0, -1).Select End Sub !!! In cell A1: Error Resolution: Sub GoLeft() If ActiveCell.Column <> 1 Then ActiveCell.Offset(0, -1).Select End If End Sub

100 Example 2 Sub GoRight() If ActiveCell.Column < 5 Then ActiveCell.Offset(0, 1).Select Else Cells(ActiveCell.Row + 1, 1).Select End If End Sub

101 Message Boxes 2 types: MsgBox “Text”  simple messages MsgBox(“text”, Buttons, “Title”)  User has to respond (ex. Press YES) Examples: Msgbox “Proceed with the macro” Msgbox(“Proceed with the Macro”, vbYesNo, “Proceed”)

102 InputBox User has to respond by typing a text and pressing OK Example: answer = InPutBox(“Give the month”)

103 Example 3 Sub TestInput() Dim myDate As String myDate = InputBox("Give the Date (mmm-jjjj)") If myDate <> "" Then If IsDate(myDate) Then MsgBox "Continue Macro" Else MsgBox "Invalid Date" End If End Sub

104 Example 3 bis Sub TestInput() Dim myDate As String myDate = InputBox("Give the Date (mmm-jjjj)") If myDate <> "" Then If IsDate(myDate) Then answer = MsgBox(“Continue?”, vbYesNo) If answer = vbNo Then Exit Sub End If Else MsgBox "Invalid Date" End If End Sub

105 Loops: For Each For each Used to walk through a collection of objects For Each In … …. Next

106 Example 1 Sub ProtectSheets() Dim mySheet as Worksheet For Each mySheet in Worksheets mySheet.Select mySheet. Protect “Password”, _ True, True, True Next mySheet End Sub

107 Example 2 Sub unprotectSheets() Dim mySheet As Worksheet For Each mySheet In Worksheets mySheet.Select mySheet.Unprotect "Password" Next mySheet End Sub

108 Loops: For For-loop Used to execute statements for a couple of times by using a counter For i = 0 to n …. Next i

109 Example Sub ProtectSheets() For i = 1 To Worksheets.Count Worksheets(i).Protect "Password", _ True, True, True Next i End Sub

110 Loops: Do Until / Do While Do Until [condition] … Loop Do While [condition] …. Loop

111 Example 1 Sub FilesEnhanced() Dim myRow As Integer Dim myFile As String myRow = 1 myFile = Dir("C:\Documents and _ Settings\fregai\Bureaublad\*.doc") Do Until myFile = "" Cells(myRow, 1) = myFile myRow = myRow + 1 myFile = Dir Loop End Sub

112 VBA buttons and events

113 Using buttons in excel Toolbars / control toolbox Select Button Draw Button Every toolbox element has properties: Name Caption

114 Using buttons in excel (2) Attach macro to button: Create macro with special name: Sub NameButton_click() …. End Sub !!! Name Button is very important Use Meaningful names

115 Example 1 Sub ZoomIn_click() Dim MyZoom As Integer MyZoom = ActiveWindow.Zoom + 10 If MyZoom <= 400 Then ActiveWindow.Zoom = MyZoom End If End Sub

116 Using buttons in excel (3) To test a button  exit design-mode Click  event Code will be executed when the event happens Other Events: MouseMove ….

117 Worksheet & WorkBook events Select Object & Select Event Events: Worksheets: SelectionChange Activate Change Deactivate WorkBook: Activate Open

118 Example 1 Private Sub Worksheet_SelectionChange(ByVal _ Target As Range) If ActiveCell.Interior.Color = vbCyan Then Selection.Interior.Color = vbYellow Else Selection.Interior.Color = vbCyan End If End Sub

119 VBA form-elements

120 Example Create a loan calculator: Formula: =PMT(C5/12;C6*12;C4) Amount ,00 € Rate4,00% Years20 Term-1.211,96 €

121 Improved Calculator Limit number of years Limit possible rates Limit loan amounts Protect Worksheet

122 Limit number of years Control Toolbox > Spin Button Properties: Max: 30 Min: 5 Linked Cell C6

123 Limit possible rates Control Toolbox > Scroll Bar Properties: Max: 2000 SmallChange: 25 LargeChange: 200 LinkedCell: H5 Formula C5: = H5/10000

124 Limit Loan amounts Use a listbox First  Create a list with possible values on an other worksheet: Select List Give a RangeName  AutoList 91 Mercury Sable Nissan Pulsar NX Toyato Camry Dodge Lancer ES BMW

125 Limit Loan amounts (2) Control Toolbox > List Box Properties: LinkedCell: C2 ListFillRange: AutoList ColomnCount: 2 BoundColumn

126 Protect WorkSheet Create eventhandlers for Elements 1. List Box – Properties:  Name: lstAmount  LinkedCell : “” – Sub lstAmount_Change() Range(“C4”).Value = lstAmount.Value End Sub 2. Scroll Bar – Properties  Name: scrRate  LinkedCell: “” – Private Sub scrRate_Change() Range("C5").Value = scrRate.Value / End Sub 3. ….

127 Protect Worksheet (2) VBA editor: In ThisWorkBook Sub Workbook_Open() WorkSheets(“Lening”).Protect _ UserInterfaceOnly:= True End Sub

128 The End Thank You for your Attention


Download ppt "Excel Advanced Ann Maes & Frederik Gailly Department of Management information Faculty of Economics and Business Administration."

Similar presentations


Ads by Google