How to Distribute Players Between Teams – Evenly

Share

Facebook
Twitter
LinkedIn

In April 2017, Shenricus, posed a question in the Chandoo.org Forums:

“I have 24 people who each have their own score. I’ve been trying to figure out how I can divide these names into 3 even teams – or as close as possible.”

I answered with a Solver Based solution, and Bosco Yip also added to my solution with a slightly different approach.
This caused me to reconsider my first attempt and finally I posted a Final Solution, which was also a Solver based solution, but was a much more robust solution than my original solution or Bosco Yip’s solution.

This post will examine the thought process used to derive the solution and then implement that using solver.

As always a Sample file is provided so you can follow along: Download Sample File here.

 

Approach

Shenricus gave us a list of 24 players and a score for each player.

The players are Ranked from Best to Worst.

We have no other information as to the Sport or Score.

The question posed by Shenricus is to distribute the players into teams so that each team is “As even as possible”.

Considering that we have 24 players and need to put them into 3 teams, we will assume each team has the same number of players and hence requires 8 players.

My initial though was to setup a Delta or Difference between each Players Score and the Mean (Average of all scores).

First calculate the Average of All the Scores

Then calculate the Differences between the each players Score and the Average

Next we need to distribute each player into one of 3 teams.

Solver will put a value of 1 when a Player is in a Team, and a 0 when the player is not in a Team.

 

Next add a Formula to Calculate the Sum of the Variations from Mean for each Team

and Finally Sum these up

We should be able to get Solver to Minimise this value.

So lets look at how Solver is setup.

 

How Do Use Solver?

Solver is found in the Data, Analyze Tab.

Your screen may look different to mine depending on which version of Excel you are using and if you have your Excel window at a maximum size or not.

If you cannot see it, you may not have Solver Loaded.

 

How Do We Install Solver?

Right Click on any part of the Ribbon

Select Customize the Ribbon

Select Add-ins on the Left menu and

Manage Excel Add-ins in the Manage Dialog and press Go

 

Finally Select Solver and Ok

Solver will now be visible in the Data, Analyze Tab

 

How Do We Setup Solver?

Click anywhere in the model
Goto the Data, Analyze Tab
Select Solver

The Solver Dialog is show as:

Lets look at each of the highlighted sections first and I will discuss this first as a plain English and then I will discuss how it is implemented in Solver

Solver is asking us to Set our Objective, to a Minimum, Maximum or Value, by changing some cells, Subject to some constraints.

Set Objective

Solver is asking what our objective is?
In our Even Teams example we want to minimise the variance in the average Team Scores

By Changing variable Cells

We want to achieve our objective by setting Each Player to be a Member of 1 team
That is Each player must have a 1 in a Column of Team 1, Team 2 or Team 3

Subject to the Constraints

We have a Number of Constraints that our model will be subject to

Each player must have a 1 in a Column of Team 1, Team 2 or Team 3
Each Team must have 8 players
All 24 Players must be used only once each
Each player can only be in a Team, he can’t be shared between teams

Solver operates using a number of techniques to Solve the above problem.
Simplistically it iterates values into the Variable Cells, subject to meeting the constraints.
It measures the output and re-iterates until a better solution is reached.

In Solver Speak

Lets look at how our model is setup in Solver

Objective

The Objective is to Minimise the Sum of the Team Scores
That is to Minimize Cell E27

Variable Cells

We will be changing the allocation of players into each team.

This is the Variable Cells $E$2:$G$25

Subject to the Constraints

The variable cells will be changed by Solver subject to meeting our 4 criteria defined above
a. That each team has 8 players, each cell in $E$29:$G$29 is 8
b. That each player only plays in 1 team, that is cells $E$2:$G$25 can only be 0 or 1 (binary)
c. That all 24 players are used, ie: $H$26 = 24
d. That all 24 players are used only once, each cell in $H$2:$H$25 = 1

We haven’t yet setup Conditions C or D above in our model yet

So add a Column H

H2: =Sum(E2:G2) and copy that down to Row 25

This will add the Total of each Team per Player and should be 1

 

And add up the total of these in H26, This is the Total of all allocated Players and should be 24

H26: =Sum(H2:H25)

In solver setup each of these sections then click Solve

 

After a Minute or so, Solver will return to tell you that it has found a Solution

Select Keep Solver Solution

Lets check things

Firstly we can see that

1. The sum of the Team Scores, E27, is a very small number, as we requested
2. Each player was only used once Column H, True
3. All 24 Players were used H26, True
4. Each Team has 8 players, E29:G29, True
5. Each player is not split between teams, E2:G25, True

So all our Criteria are met, however if we start to look at the solution in more detail we can see that Team 3 has been assigned the Best 8 players, where as Team 1 has mostly the worst players, Team 2 is in the middle.

Solver has solved our problem, but our problem obviously hasn’t been correctly specified.
Solver has setup 2 teams with Low Negative Scores to Offset Team3 with a High Positive score, with the overall result being a low average Team Score

If we look at the Total Scores for each Team, E31:G31


We can see that the Total Team Scores vary between 7.705 and 7.891
A spread of 0.186

What we actually need to specify is that the Variation in these Total Team Scores is Minimised. That is the spread between the 3 scores is minimised.

There are Statistical Measurements called Variance and Standard Deviation
Without going into too much detail, each is a measure of how far a set of numbers are spread out from their average value.
Refer Wikipedia Wikipedia VarianceWikipedia Standard Deviation

Luckily we can easily calculate these using Excel

In cell E33 =STDEV.P(E31:G31)
Excel displays 0.078969

So the Standard Deviation of these 3 Team Scores is 0.0789

However we need to re-run the Solver Model with a new Objective

Firstly, reset all the players to 0, ie Players are not assigned to any Team
Select E2:G25 and type 0 Ctrl Enter

Click anywhere in the model,
Goto the Data, Analyze Tab
Select Solver

Set the Objective to $E$33

The Variable Cells and Constraints remain unchanged

Now Click Solve

After a minute or so, Solver will announce it has a New Solution
Accept that as before

Lets check things

Firstly we can see that

1. The sum of the Team Scores is a very small number, as we requested, Ok
2. Each player was only used once Column H, Ok
3. All 24 Players were used H26, Ok
4. Each Team has 8 players, E29:G29, Ok
5. Each player is not split between teams, E2:G25, Ok

If we look at the solution in more detail we can see that
The three Teams now have a spread of both good and not so good players

But the important thing to notice is that the Standard Deviation of the 3 Team Scores is now 0.001699, or 2.1% of the previous Standard Deviation.

This shows the teams are much more “Evenly” matched

Solver has solved our problem.

Bosco’s Solution

During the thread Bosco proposed an alternative, algebraic solution.

It involved distributing players according to simple rules

The team who got the Best player also took the worst player,

The next team who got the Second best player also took the second worst player

The next team who got the Third best player also took the third worst player, etc

This is shown:

We can see that it also meets all of the constraints of the model, but has a Standard Deviation 0.00368, that isn’t as low as the Solver solution 0.001699.

 

What are these Other Solving Methods?

When you were setting up Solver you may have noticed a dialog asking, Select a Solving Method:

The best discussion I have found on these alternative Solver Techniques is shown on the link below

http://www.engineerexcel.com/excel-solver-solving-method-choose/

 

Closing

We can see how Solver has been used to distribute players according to player ratings and even out teams.

Unfortunately, Shenicus never came back to the forums and so we don’t know how his teams went ?

How have you distributed players or anything else ensuring things are even ?

Let us know in the comments below:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

28 Responses to “CP024: Customize Excel to boost your productivity”

  1. Robert says:

    I think that the most useful customisation that I utilise frequently is some code I found that allows multiple items to be selected from a data validation list. For example one workbook we use lists the business drivers for a project. Another uses this technique to select the staff involved in a particular project. See http://blog.contextures.com/archives/2009/09/18/select-multiple-items-from-excel-data-validation-list/

  2. Sean Hyland says:

    Another terrific podcast Chandoo! Glad to hear that you, your family, friends and community are recovering well from HurHur.
    You did a great job of covering so many of the customization techniques that I use but one that I really like is the addition of those top portion of the quick access tool bar with items that I use often but are not standard to any of the tool bar options.

    Thank again Chandoo for the terrific website! It definitely is helping to make me awesome in Excel.

  3. Angelo says:

    I customise excel toolbars by inserting an icon and dragging it to the appropriate area.

  4. Bruno says:

    I prefer not to customize (too much).. I use Excel on a work pc, on two pc's at home, and sometimes on other PC's (even on different languages). I've found that if I keep the most "standard" look, I manage to get around on any pc, whatever the language pack.

    The only thing I do is "pinning" the most used files on the Windows taskbar. And even then I sometimes forget what I placed where, and look it up manually anyway...

  5. Jim Peterkin says:

    Hi, Chandoo. Thanks for the complete review of customizations. I use most of the items you mention, such as Options to set the default font to “old” Arial rather than Cambria. I’ve also adapted the QAT, adding a button to Repeat last action as well as ones to close the current workbook and the Excel application. Lastly, I developed a personal Add-in that contains macros and changes the ribbon (via Microsoft’s Custom UI editor) to rearrange buttons for functions I always use and adds a new ribbon tab with buttons for my personal macros. For example, one of my most frequently used macros deletes all rows below and columns to the right of a selected cell and resets the Excel used range value for the worksheet (helpful for when I press Ctrl-End).

  6. Nick says:

    Thank you again for another great podcast! I always learn something from your podcast/Blog/site. I can't believe I never bothered to look at setting the number of sheets excel creates when you open a New workbook. That will save me time everyday!

    I usually create a Personal Macro set to use, as well as creating some custom ribbon and toolbar sets to make my most needed functions handy (I even include some personal macros in these toolbars.) I also spend some time creating some themes to match the Company reporting colors so that my work can easily be incorporated into company communications.

    Thanks for helping me be awesome at Excel everyday!

  7. Mike says:

    Hi Chandoo - excellent podcast. At the moment I only use the quick access tool bar to add not standard icons. But now I have several techniques that I am going to try. Thanks

  8. target says:

    excellent podcast!! not enough users maximise their productivity by making Excel more comfortable to work with!!

    I use many of the techniques already mentioned (personal macro book, customised QAT/ribbon, etc) but but, instead of adding lot's of buttons I find it's better learn and use the relevant keyboard shortcuts instead of adding buttons for all those functions you use all the time (avoid button overload!!).

    Far better to add buttons for functions you don't use often and that are difficult to find/use in their regular guise

    I also use a default 'dashboard' workbook that has hyperlinks to a handful of files I use regularly.

    also maybe worth mentioning creating default workbook/worksheet 'styles' - to do this create a workbook with the formats you want (fonts, page setup, # of sheets, etc) and save it to your excel start folder with the name BOOK (use SHEET for the sheet template). From then on all new books/sheets will have the same basic formatting

  9. Oxidised says:

    Thanks for the podcast Chandoo, glad you are recovering from the typhoon experience.
    Here at work we created 2 template files, a "simple" one and a "large" one. We often have to put together engineering calculations and having these templates makes it so much faster. The simple one has a cover page (used for tracking revisions) and then a sheet set out in our standard format. The large one has the same cover page, then a contents page that has macro buttons to jump to any of the 10 tabs set up in it. And yes, we often use 5-10 tabs when doing our calculations! This makes the navigation much easier and means we can get on with calcs and not have to spend time formatting.

    Thanks and enjoy, Oxi

  10. Filder says:

    Hi Chandoo – I liked this episode. So far I only use quick access bar to add icons for Macros, special paste etc.. Looking forward to explore some of the techniques shared by you. Thanks

  11. Jo says:

    Thanks for the podcast. There's a couple of things I'll have to try.

    I've set up a default workbook that's saved to my excel start directory that contains:
    * corporate colours and fonts
    * a cover sheet
    * modified and expanded cell styles
    * default table and pivot table styles
    * custom page setup settings

    Another thing I've tried is creating chart templates which saves a bit of time.

  12. Desk Lamp says:

    My Quick Access toolbar is jampacked with macros:

    - Save all open spreadsheets
    - Backup the active workbook to another folder. Useful if I'm making big changes to the spreadsheet that i might want to revert later.
    - Copy & Paste special values. Why click two buttons when you can click one?
    - Set my preferred number formatting
    - Format graphs in company colours
    - Apply red/green conditional formatting for growths data. 0% growth is white, 20% growth is green, -20% growth is red
    - Format and apply settings to pivot tables as I like them. E.g. Tabular format, no retained items, no style, etc
    - Sort items in a pivot filter. Standard Excel capability only lets you sort items if they are in rows or columns not in a filter
    - Delete all custom styles. It amazing how many junk styles spreadsheets can accrue, especially when copying in data from other spreadsheets
    - Resize and reposition all comments. I swear comments have a mind of their own, constantly moving to bizarre places.
    - Print in a Userform all external links and whether the links are active. Including those in name manager and in pivot tables that don't show up in the 'Edit links' window.
    - Print in a Userform all HIDDEN name manger names. As a company we need to be careful about what is exposed when we publish spreadsheets.

    These (and more I've not mentioned) save me countless hours during a normal working week!

  13. Thanks for a great podcast. Really useful tips on customisation. The tip on only one sheet instead of three - using that now myself.

    Personally I use customisation for two main purposes. Quick access to functions I use regularly – to state the obvious – but also some functions I use so infrequently I may not be able to quickly find them when I need them. Forms, for example.

    And if I ever need to use a function or command that I have recently learned or used in a new or different way, I add that to the Quick Access Ribbon.

  14. Shah says:

    Hi Chandoo,

    On top all those customization you've mentioned, I also use the Custom UI Editor for Microsoft Office to create my own Ribbon menu buttons in Excel 2007 and hide the default ones. With the help of macros of course, this makes Excel looks and behave like an App.

    Try that to impress your boss !

  15. Ken says:

    Chandoo,

    Until recently, I had only created custom VBA to solve specific problems related to work. I usually placed a shortcut in a new ribbon. Now I am going to use some of the tips that you mentioned to customize one ribbon for all of the common items that I use (like filter, sort, number format, etc.)

    Thank you.

  16. samtheman says:

    Hi Chandoo,

    I really like your podcast. I will appreciate if you continue to do podcast in the future.
    Regarding my customize of excel, I usually keep lot of commands in Quick Access Toolbars (QAT), esp, insert/delete sheet row, insert/delete sheet column,copy, cut, format copying, paste, paste special, paste value, Font color, Fill color, camera tool and open recent file etc. Also I click on click on Developer tab so that it is visible on my tabs.
    When I was studying MBA, I used to do add-ins of Analysis Toolpak but I have not used that Toolpak since I completed MBA.

    Thanking you,

    Sam

  17. Uriel says:

    Hi Chandoo,

    I really like your page and it's the first time I listen your podcast and it's great!!. I use a lot the Quick Access Toolbar and also use personal macros for rutine task and for look-and-feel in corporate colors, but after listen you I will try to costumize the ribbon and also I will work with themes and styles.

    Thanks to inspire us!!.

    Regards from Mexico.
    Uriel

  18. Ahmed says:

    Thank you Chandoo, very useful.
    I have done 3 things to customize my excel,
    Created a new tab and put in it all my frequently used commands.
    Recorded all my repeated activities as macros and I am running this everyday.
    Added the commands I use very very frequently (including the recorded macros) to the QAT.
    Thank you again

  19. Dave says:

    Hi Chandoo,

    Great podcast. I usually do the following to customize my Excel:
    1) I use custom themes and chart & slicer templates
    2) Custom macros in QAT and Ribbon for repetitive tasks
    3) Keep generic VBA routines in a module for use when needed for specific workbooks, I can just copy it into the target workbook.
    Thanks,
    Dave

  20. Jennifer David says:

    Hi Chandoo,
    I have been using the quick access toolbar and it is great for having frequently used features all in one place. As well as macros and those less commonly known features, such as select visable cells when working with hidden rows/columns. The list of all commands available to add to the toolbar is mind numbing.
    I did not know about adding your own tab to the ribbon. I have already begun contructing my own.
    Thank you for the wonderful information.

  21. Jay says:

    Chandoo,
    I mainly use the personal macros. There are a few charts that I update frequently, this requires that I keep the old data and change the range of the chart. Changing the range causes Excel to pick all new colors for my chart. So, one macro reverses this issue.

    Thanks for sharing your awesomeness.

  22. Jorge Supelano says:

    My customization:

    I have three add-ins: Macabacus light for shortcuts (free), XL Campus to work with lots of tabs and the Tableau reshaper add-in (free), to reshape tables in database form.

    I have created and copied macros for:
    Clean formats
    Search and select constants
    Format as constant (I used to do financial modeling)
    Trace dependents simultaneously
    Center across selection (not used anymore since it's in one of the Add-ins)
    Search and select blanks cells
    Select cell A1 in every sheet (before closing the file)
    Protect and unprotect sheets and workbook

    Almost all macros have shortcuts and a dedicated tab in the ribbon.

    As for Excel options themselves:
    Automatic calculations
    Error tracking disabled
    Cursor stays in same cell when Enter is pressed

    And I used to have a Financial modeling template as a predefined sheet where different formats and styles were pre-established

  23. Ravinder Pal Chopra says:

    Dear chandoo

    Thanks for the excellent podcast. I regularly visit your website and have listened to all your podcast which are very informative. I customise my toolbar by using a quick access and inserting icons in toolbar.

  24. Erich says:

    i used all of you suggestions, but have refrained from pinning files to the Recent Workbook List. It bothered me that this pinned files also took over the keybord shortcuts for the last opened files. If I press ALT-F+1, i want to open the last used file, not the file i pinned first.

    I missed a very powerful Excel customization option in your podcast, which i use every day and saves me hours: custom keyboard shortcuts. There are two of them:

    1. Assign a Key combination to a macro (e.g. "Ctrl-Shift-V" for my VBA-procedure "PasteSpecial_Values")
    -> Open the Macro-dialog (Alt-F8) and go to Options, set the key...

    2. Assign a Key combination even to F-Keys (e.g. "F5" for "my_favorite_Macro")
    -> Open VBA-Editor (Alt-F11), go to any Module in your Personal.xlsb and add this code:

    Sub auto_open()
    Application.OnKey "{F5}", "my_favorite_Macro"
    End Sub

    There is no quicker way to call your macro!

  25. Wouter Naert says:

    Hi Chandoo, very excellent podcast.

    I use the quick access toolbar to link my VBA macro's and at the moment I'm experimenting on adding a personal ribbon tab with personal ribbon buttons. I use a Custom UI Editor to do this, it let me link macro's to the buttons used in the personal ribbontab.

    This way for a project dashboard I can add the buttons necessary there and they are attached to the file. So other people opening the file have the same ribbon tab. Looking professional and to quote 'awesome' ;-).

  26. Jackie says:

    Thanks for your prodcast.

    I customize my excel in the ribbon. This allows to feature the items I need

  27. Chris Triplett says:

    Hi Chandoo,

    Would you please link me to your Excel Customization Handbook? I am sure that this will help me in a huge way!

  28. Zee says:

    Hi Chandoo!
    I would love an Excel Customization Handbook! Here is my tip:

    To recreate the CTRL-HOME functionality on Excel for Mac copy and paste the following code into your personal macro workbook. I assigned my code to the hotkey Option-Cmd-G and now it's like I have a "Home" button on my Mac!
    ----------
    Sub GoHome()
    '
    ' GoHome Macro
    ' Simulates Ctrl-Home on a PC
    '
    ' Keyboard Shortcut: Option+Cmd+g

    If ActiveSheet.Type = xlWorksheet Then
    With ActiveWindow
    .ScrollRow = 1
    .ScrollColumn = 1
    .ActivePane.VisibleRange.Cells(1).Select
    End With
    End If

    End Sub

Leave a Reply