13 januari 2014

Google Formulier met maximum aantal inschrijvingen

Het is me vaak gevraagd en ik heb altijd gezegd dat het niet mogelijk was, maar het kan wel degelijk:
Je kunt een Google formulier zo maken dat het rekening houdt met een maximum aantal inschrijvingen!

Stel, je organiseert een studiedag met een aantal workshoprondes, waarbij per workshop hooguit een vastgesteld aantal deelnemers kan meedoen. Met behulp van formRanger en een extra formule is het mogelijk om dynamische keuzelijsten te bouwen die rekening houden met het aantal deelnemers dat zich inschrijft. Is het maximum aantal bereikt, dan verdwijnt het aanbod uit de keuzelijst.

Het klinkt ingewikkelder dan het uiteindelijk is wanneer je de stappen die ik laat zien in de screencast zorgvuldig volgt. In het voorbeeld laat ik twee workshoprondes zien, maar dat kunnen er uiteraard ook meer zijn. In feite kun je het formulier zo uitbouwen zoals je wilt.

Waar het om gaat is dat je in de spreadsheet waar de antwoorden terechtkomen een tweede blad aanmaakt met in kolom 1 de workshops die je aan wilt bieden. In kolom 2 zet je de maximum capaciteit per workshop. In kolom 3 komt de dynamische lijst te staan die je via formRanger koppelt met ronde 1 uit het formulier. Daarvoor gebruik je dan de volgende formule:
=if(countif('Formulierreacties'!C:C;A2)<B2; A2; "")
In het blad waar de reacties binnenkomen 'Formulierreacties' wordt in kolom C gekeken hoe vaak de workshop voorkomt zoals gedefinieerd in veld A2. Als het getal dat staat in veld B2 bereikt is zal de workshop niet meer genoemd worden in het veld, anders wel.

A
B
C
D
1 WorkshopsCapaciteit Ronde 1 Ronde 2
2 Macramé
16
=if(countif('Formulierreacties'!C:C;A2)<B2; A2; "") =if(countif('Formu...
3 Figuurzagen
12
=if(countif('Formulierreacties'!C:C;A3)<B3; A3; "") Figuurzagen
4 Pottenbakken
10
=if(countif('Formulierreacties'!C:C;A4)<B4; A4; "") Pottenbakken
5 Bloemschikken
10
=if(countif('Formulierreacties'!C:C;A5)<B5; A5; "") Bloemschikken
6 Schilderen
6
=if(countif('Formulierreacties'!C:C;A6)<B6; A6; "") Schilderen
7 Fotografie
8
=if(countif('Formulierreacties'!C:C;A7)<B7; A7; "") Fotografie
8 Google Forms
3
=if(countif('Formulierreacties'!C:C;A8)<B8; A8; "") Google Forms

In veld D2 komt dus te staan:
=if(countif('Formulierreacties'!D:D;A2)<B2; A2; "") en zo verder...
D:D verwijst dan naar de kolom waarop de antwoorden voor ronde 2 binnenkomen.

Als je alle formules juist hebt ingevoerd installeer je formRanger vanuit de Scriptgalerij en zet je die aan het werk. Vergeet niet om de form refresh trigger in te stellen op: on 'every form submit' want anders gaat het allemaal niet werken
Wil je niet helemaal 'from scratch' beginnen of graag het voorbeeld bekijken, klik dan hier voor een kopie van de spreadsheet.
Voor een eigen formulier kun je het beste wel vanaf het begin beginnen met het maken van een formulier en daarna het installeren van formRanger.
Onderstaande screencast zou in principe voldoende duidelijk moeten zijn/.



Bekijk de screencast op YouTube.

Graag ontvang ik reacties van mensen die aan de hand van deze instructie het gaan uitproberen en of het dan inderdaad ook werkt. Zo niet, dan zal ik m'n instructies verder uitwerken als daar behoefte aan is.

Met dank aan Lise Galuga die me op het idee bracht om het zo toe te passen.

12 opmerkingen:

  1. Hallo Willem,
    Het kwartje is bij mij gevallen ;-) Dit is precies wat ik zoek. Bedankt voor deze uitgebreide en zeer duidelijke screencast.

    BeantwoordenVerwijderen
  2. Je moet nu Formranger zoeken in de menu Add-ons. Ik kan het daar niet meer vinden.
    Kan je mij zeggen wat ik nu moet doen?

    BeantwoordenVerwijderen
  3. Dank. Work around voor formRanger is inderdaad nodig.
    Je moet dan in je formulier kiezen voor 'Reacties -> Bestemming voor reacties wijzigen -> Nieuw blad in been bestaande spreadshet...' en dan voor een oude Google Spreadsheet kiezen waar je de formRanger nog wel in kan gebruiken.
    Ik ga het eens proberen op mijn school om leerlingen te laten inschrijven op deze manier.

    BeantwoordenVerwijderen
  4. Is er iemand in de buurt van Enschede die dit heel goed onder de knie heeft en mij als docent hiermee kan helpen? graaaaaagg

    groet Johan

    BeantwoordenVerwijderen
  5. Claas Hazewinkel13 augustus, 2015 20:47

    Dank voor zeer nuttige tutorial! er zijn wel wat wijzigingen in de nieuwe update van FormRanger maar die wijzen voor zich (maken het nog makkelijker).

    BeantwoordenVerwijderen
  6. Dag Willem,
    bestaat er ook een mogelijkheid om te voorkomen dat leerlingen zich twee keer voor eenzelfde workshop inschrijven?

    BeantwoordenVerwijderen
  7. Hallo Arent,
    Volgens mij kan dat wel als je je leerlingen op een Google Apps domein hebt en laat inloggen voordat ze naar het formulier gaan...

    BeantwoordenVerwijderen
  8. Ik heb een probleem...
    Ik heb meerdere workshoprondes, maar niet elke workshop wordt elke ronde gegeven.
    Nu werkt het script niet meer als de max limiet is bereikt...
    Hoe kan ik dit oplossen?

    BeantwoordenVerwijderen
  9. Ha Willem, het was even stoeien om Formranger geïnstalleerd te krijgen - het lukte me alleen met de nieuwe versie van Formulier - en sommige stappen zijn net anders maar het werkt allemaal nu allemaal perfect!

    BeantwoordenVerwijderen
  10. In de nieuwe Formulieren, was het even zoeken, je uitleg klopt niet meer helemaal.
    Daarnaast kun je je in de eerste ronde blijven opgeven, maar stopt hij er dan in de tweede ronde ergens (meestal 1 later) mee.

    BeantwoordenVerwijderen
  11. Top uitleg. Het werkt nog steeds.

    BeantwoordenVerwijderen