Divisonal Double Elimination Brackets

By in Uncategorized on .

My eight team golf league wanted to do tournament-style scheduling for the final six weeks of the season. We wanted double-elimination and it had to fit in six weeks. We went with a two-division, double-elimination bracket with a single-elimination championship match. This is what the Big XII uses for its baseball tournament, albeit slightly modified.

One difference that we had to account for was that everyone needed to play every week. Everyone paid, so it’s just silly to actually sit out when you have a bye or are eliminated. We structured it thusly: Eliminated teams and teams with a bye for that week would go into a pool and would play another pool team to whom they were randomly assigned. First and second place (for the season) would be determined by the brackets and third through eighth place would be determined using the same points system used throughout the season. This way, we could have all the excitement of elimination brackets, yet eliminated and bye-week teams would still be motivated to play well (to keep accumulating points to get into third or fourth place).

The spreadsheet uses many of the same techniques as the March Madness spreadsheet.

spreadsheet showing double elimination bracket

Download DoubleElimDiv.zip

5 thoughts on “Divisonal Double Elimination Brackets

  1. John Provencher

    Great bracket. This is the first I’ve seen that uses validation, instead of having to copy/paste, etc.

    Did you manually select ‘Game 1 Winner’, ‘Game 2 Winner’, etc. before saving or is there a method to select the last item in the list by default? I’ve looked all over and haven’t found anything, so I thought I’d check with the source.

    Thanks,

    J.

  2. Dick Kusleika Post author

    If you wanted to select the last entry in all the validation list, here’s some very lightly tested code.

    Public Sub SetDVToLast()
       
        Dim rAllDv As Range
        Dim rCell As Range
        Dim dv As Validation
        Dim rList As Range
           
        On Error Resume Next
            Set rAllDv = ActiveSheet.Cells.SpecialCells(xlCellTypeAllValidation)
        On Error GoTo 0
       
        If Not rAllDv Is Nothing Then
            For Each rCell In rAllDv.Cells
                Set dv = rCell.Validation
                If dv.Type = 3 Then 'it's a list
                    If IsArray(Evaluate(dv.Formula1)) Then 'it's a range
                        Set rList = ActiveSheet.Range(Replace(dv.Formula1, "=", vbNullString))
                        rCell.Value = rList.Cells(rList.Cells.Count)
                    Else 'it's a comma separated list
                        rCell.Value = Split(dv.Formula1, ",")(UBound(Split(dv.Formula1, ",")))
                    End If
                End If
            Next rCell
        End If
       
    End Sub

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax