Choir & Band Repertoire
Made for musical directors and band leaders.
Keeps the choir's repertoire, how well each piece is known, and which pieces were sung at each performance. The summary carries a chart that redraws itself as you type.
- Tabs
- 4
- Columns
- 19
- Fill themselves in
- 16
£7one payment, yours to keep
- Opens in Excel, Google Sheets and Numbers
- Delivered straight away
- No macros, nothing to install
- Change it free before you buy
Payment is handled by Stripe. Your card details go to them and never to us. Sales are final, which is why every tab, column and calculation is shown on this page first.
Everything inside, before you pay
This is the whole design: every tab, every column and how each calculated one is worked out. White cells are yours to fill in; the shaded ones work themselves out and are locked so a formula cannot be overwritten by accident. There is room for 860 rows.
Repertoire
| Column | Type | Worked out as |
|---|---|---|
| Title | text | |
| Composer | text | |
| Arrangement | text | |
| Length (mins) | number | |
| How Well We Know It | choice (list) | |
| Voice Parts | choice (list) | |
| Times Performed | number | IF(ISBLANK([title]), "", COUNTIF([Setlists!piece], [title])) |
Performances
| Column | Type | Worked out as |
|---|---|---|
| Performance | text | |
| Date | date | |
| Venue | text | |
| Type | choice (list) | |
| Pieces Sung | number | IF(ISBLANK([name]), "", COUNTIF([Setlists!performance], [name])) |
| Music (mins) | number | IF(ISBLANK([name]), "", SUMIF([Setlists!performance], [name], [Setlists!duration])) |
Setlists
| Column | Type | Worked out as |
|---|---|---|
| Performance | choice (from Performances › name) | |
| Order | number | |
| Piece | choice (from Repertoire › title) | |
| Date | date | IF(ISBLANK([performance]), "", IFERROR(INDEX([Performances!date], MATCH([performance], [Performances!name], 0)), "")) |
| Composer | text | IF(ISBLANK([piece]), "", IFERROR(INDEX([Repertoire!composer], MATCH([piece], [Repertoire!title], 0)), "")) |
| Length (mins) | number | IF(ISBLANK([piece]), "", IFERROR(INDEX([Repertoire!duration], MATCH([piece], [Repertoire!title], 0)), "")) |
Summary
| Measure | Worked out as |
|---|---|
| Pieces in the repertoire | COUNTA([Repertoire!title]) |
| Performance ready | COUNTIF([Repertoire!readiness], "Performance ready") |
| Still learning or nearly there | COUNTIF([Repertoire!readiness], "Learning") + COUNTIF([Repertoire!readiness], "Nearly there") |
| Needing a refresh | COUNTIF([Repertoire!readiness], "Needs a refresh") |
| Total repertoire length (mins) | SUM([Repertoire!duration]) |
| Minutes ready to perform | SUMIF([Repertoire!readiness], "Performance ready", [Repertoire!duration]) |
| Average piece length (mins) | IFERROR(ROUND(AVERAGE([Repertoire!duration]), 1), 0) |
| Pieces never performed | COUNTIF([Repertoire!times_performed], 0) |
| Performances this year | COUNTIFS([Performances!date], ">=" & DATE(YEAR(TODAY()), 1, 1), [Performances!date], "<=" & TODAY()) |
| Upcoming performances | COUNTIF([Performances!date], ">" & TODAY()) |






