[EXCEL] Conditioneel waarde aan cellen toekennen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • whistler
  • Registratie: April 2000
  • Laatst online: 18-04 17:00
Situatie
Ik heb een dataset in Excel 365 met de resultaten van een aantal meerkeuze vragen waarbij meerdere opties aangevinkt konden worden.

Bij een bepaalde vraag waren er 11 aanvinkmogelijkheden. Elk van de mogelijkheden staat in een kolom in Excel (M t/m W).

Als mensen een waarde hebben aangevinkt staat er een 1 in de cel, als ze hem niet aanvinkten is de cel leeg. Met zoeken/vervangen kan ik aan een lege cel een waarde toekennen en dan kan ik in kaart brengen hoeveel mensen welke keuze hebben gemaakt, welk percentage dat is, enzovoort.

Voorbeeld
MNOPQRSTUVW
11111
211111
3


Probleem
Maar er zijn óók mensen die de vraag hebben overgeslagen. Daar is dus de hele rij met cellen voor kolommen M t/m W leeg. Zoals in rij 3 in het voorbeeld. Met andere woorden, dat is een missing. En die wil ik graag kunnen onderscheiden van de rest. Met zoeken en vervangen krijg ik dat niet voor elkaar want dat behandelt elke lege cel gelijk en dan zouden deze cellen dezelfde waarde krijgen als lege cellen in rijen waar er wél iets staat.

Oplossing?
Dus heb ik waarschijnlijk een macro of een soort script nodig dat die rijen doorgaat en dat als alle cellen in een rij leeg zijn, daarin de waarde "missing" (of 99) invult.

Ik vond al dat je in Excel wellicht zoiets kunt doen met VBA (Alt+F11) en/of regular expressions maar ik beheers die code niet. Vroegah heb ik wel met ASP en PHP gewerkt dus ik weet dat zoiets waarschijnlijk wel kan maar ik heb even een beginpunt nodig.

Wat ik zou willen in 'proto-code' is dit:

code:
1
2
3
4
Foreach(Rij2 to Rij6744)
    if SUM(Mrij : Wrij = 0) Then
        Fill Mrij : Wrij = "missing"
End


Is er hier iemand die VBA-code beheerst en me op de goede weg kan zetten hoe ik dit kan uitwerken?

n.b. Ik heb de enquete zelf niet opgesteld, anders had ik wel in de tool meteen waarden aan een negatief en ontbrekend antwoord toegekend. Maar ik moet het nu doen met de data die ik heb.

Beste antwoord (via whistler op 05-05-2022 09:37)


  • dixet
  • Registratie: Februari 2010
  • Laatst online: 04-10 11:14
Ik zou in kolom X de formule "=SOM(M1:W1)" toevoegen en doortrekken naar alle rijen
Overal waar die de waarde 0 geeft is geen antwoord gegeven, of een waarde >0 als er wel een antwoord is aangevinkt.

Daarmee kan je vervolgens verder: filteren, kleurtje geven etc

Alle reacties


Acties:
  • +1 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Als de dataset niet te groot is, zou ik een tweede tabblad maken die je data 1-op-1 kopieert, tenzij de hele rij leeg is. Iets in de hoek van (voor cel M2):
code:
1
=if(max(source!$M2:$W2)="","missing",source!M2)

When life gives you lemons, start a battery factory


Acties:
  • Beste antwoord
  • +4 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 04-10 11:14
Ik zou in kolom X de formule "=SOM(M1:W1)" toevoegen en doortrekken naar alle rijen
Overal waar die de waarde 0 geeft is geen antwoord gegeven, of een waarde >0 als er wel een antwoord is aangevinkt.

Daarmee kan je vervolgens verder: filteren, kleurtje geven etc

Acties:
  • +2 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Als in de cellen alleen een 1 kan staan of niets, kun je naast de eerste rij gebruiken:

code:
1
=als(aantal(M1:W1)=0;"Missing";"")


Kopieer die formule naar beneden in de kolom waarin je ze hebt geplaatst.

Acties:
  • 0 Henk 'm!

  • Icephase
  • Registratie: Mei 2008
  • Laatst online: 04-10 16:18

Icephase

Alle generalisaties zijn FOUT!

Het gaat om de KOLOM he mensen!

Gewoon een optelling maken van de kolommen, als het totaal 0 is, zijn alle cellen leeg. Als het totaal niet 0 is, zijn niet alle cellen leeg.

Dan moet het met een ALS() functie lukken, toch?


Sorry, niet goed gelezen!

[ Voor 7% gewijzigd door Icephase op 04-05-2022 11:36 ]


Acties:
  • +1 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Icephase schreef op woensdag 4 mei 2022 @ 11:20:
Het gaat om de KOLOM he mensen!
Zoals ik het begrijp gaat het er om of er in de kolommen M:W rijen leeg zijn. De vragensteller schreef immers (citaat): "Bij een bepaalde vraag waren er 11 aanvinkmogelijkheden. Elk van de mogelijkheden staat in een kolom in Excel (M t/m W)."(Einde citaat).
En die 11 aanvinkmogelijkheden staan telkens in een rij !

[ Voor 6% gewijzigd door dix-neuf op 04-05-2022 11:26 ]


Acties:
  • +1 Henk 'm!

  • Icephase
  • Registratie: Mei 2008
  • Laatst online: 04-10 16:18

Icephase

Alle generalisaties zijn FOUT!

Oh je hebt gelijk!

Maar dan werkt het hetzelfde, alleen dan moet je de hele rij optellen. Dus wat @dixet ook al zei.

Acties:
  • 0 Henk 'm!

  • whistler
  • Registratie: April 2000
  • Laatst online: 18-04 17:00
Ah, dat is omdenken. Ik zat al helemaal op de script-toer, maar dit is veel gemakkelijker. Dank allemaal!

Acties:
  • +1 Henk 'm!

  • martyw
  • Registratie: Januari 2018
  • Laatst online: 13:28
Je zou ook een van de AANTAL functies kunnen gebruiken, je bent er alleen in geinteresseerd of er minstens een 1 in een rij zit, niet in de som - dus dit is iets sneller (wat je gaat merken als je heel veel rijen hebt)
Pagina: 1