29 januari 2020

Google Form sluiten bij maximum aantal deelnemers

Deze week werd ik benaderd door een reisorganisatie die een event organiseerde waarvoor mensen zich moesten aanmelden. Natuurlijk is er sprake van een maximum aantal deelnemers, maar hoe zorg je er nu voor dat het formulier automatisch sluit wanneer dat aantal bereikt is?
Het antwoord lijkt simpel: gewoon de add-on formLimiter installeren en een maximum instellen.
"formLimiter automatically sets Google Forms to stop accepting responses after a maximum number of responses, at a specific date and time, or when a spreadsheet cell contains a specified value."
Maar daar zit dus een adder onder het gras. Simpelweg het aantal reacties tellen is niet voldoende, want op één formulier kunnen meer deelnemers tegelijk worden aangemeld. Denk aan een partner of zelfs een gezin met kinderen. Er moet dus gekeken worden naar het aantal deelnemers en niet het aantal reacties.
Zoals je ziet biedt formLimiter de optie om te kijken naar een  waarde in een bepaalde cel. Dat moet echter één vast getal zijn, bijvoorbeeld 20.
Je bent er dus niet door simpelweg de som te nemen van de kolom met het aantal deelnemers, want wat als de teller op 18 staat en er zich dan 4 personen aanmelden? Dan is de som 22 en dat herkent formLimiter niet. De helptekst zegt:
"Spreadsheet cell value equals - specify a spreadsheet cell (e.g. "Sheet1!A2" in the form destination sheet that must equal a particular value, and the form will evaluate on each new form submission."
Wat je dus wilt is niet equals = is gelijk aan,  maar is gelijk aan of meer!

Gelukkig kan je daar gewoon een formule voor gebruiken.
Zorg ervoor dat de antwoorden op je formulier binnenkomen in een Google Sheet.
Ik heb een simpel formulier gemaakt met alleen naam en aantal deelnemers en laat de antwoorden binnekomen in een sheet:



Op de eerste regel heb ik een paar cellen toegevoegd.
E1 geeft het echte aantal deelnemers weer via de formule: =SOM(C2:C)
In de cel G1 vul ik het maximum in dat ik wil ontvangen.
In de cel I1 vul ik de volgende formule in:
=ALS(SOM(C2:C)>=G1;G1;SOM(C2:C))
Deze formule zorgt ervoor dat in principe gewoon het aantal deelnemers wordt weergegeven, tenzij het maximum zoals gedefinieerd in cel G1 bereikt of overschreden wordt!
In dat geval wordt de waarde uit de cel G1 weergegeven.
En dat is dan de cel waarnaar je verwijst in de add-on formLimiter binnen je formulier.

Verder heb ik er voor gekozen dat er maximaal 4 personen kunnen worden aangemeld via het formulier:

Het risico dat ju nu loopt is dat het aantal deelnemers met maximaal 4 wordt overschreden (tenzij het formulier op precies hetzelfde moment door meer mensen wordt ingevuld).
Die marge moet je dus gewoon voor jezelf incalculeren en daarnaast blijken er altijd nogal wat "no shows" te zijn natuurlijk...

Snap je niet waar dit over gaat?
Hou op met lezen en ga wat anders doen!
Maar iedereen die hier tegenaan is gelopen en op zoek was naar een oplossing hoop ik hiermee nu een beetje geholpen te hebben...

Geen opmerkingen:

Een reactie posten