[Excel2010] ALS formule i.c.m. checkboxes

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RVE_NL
  • Registratie: Maart 2007
  • Laatst online: 14-09 22:14
Ik ben bezig met een formuliertje dat automatisch een soort Boolean genereerd.
Deze ben ik in excel 2010 aan het maken en ik stuit op een probleem.

Ik heb meerdere checkboxes gemaakt, zovlug deze aangeklikt wordt komt er in B3 (t/m B15) onzichtbaar (witte tekst) WAAR te staan (indien niet aangeklikt staat er ONWAAR).

Formule van checkbox: =$B$3

Omdat checkboxes geen andere waardes dan WAAR en ONWAAR kunnen geven heb ik in de cel B17 (t/m 32) de =ALS formule gebruikt om de waarde WAAR in B3 de betekenis/tekst "Piet" te laten noemen, en in geval van ONWAAR niet laten weergeven (d.m.v. "")

=ALS(B3="WAAR";"Piet";"")

Nu reageerd hij niet op mijn checkbox, in B3 komt weldegelijk WAAR en ONWAAR te staan. Echter de ALS functie B17 ziet de ingevulde waardes WAAR en ONWAAR van de checkbox niet als tekst.

Ik heb geprobeerd in de cel eigenschappen bij categorie aan te gegeven dat B3 tekst is (ook standaard) maar dit werkt niet.

- Hoe krijg ik het zo dat ingevulde waardes van de checkboxen als "tekst"gezien worden?
- Of beter, hoe krijg ik het voor elkaar dat de checkbox niet de waarde "WAAR / ONWAAR" weergeeft bij check/uncheck maar een willekeurige waarde, bijv; Piet.
Op deze manier zou namelijk mijn probleem verkomen worden.



---
Voor de mensen die willen weten wat erna met de waarde gebeurt:
Daarna wil ik "tekst" van cellen B17 t/m 32 samenvoegen door:

=TEKST.SAMENVOEGEN(#VERW!;" OR ";B18;" OR ";B19;" OR ";B20;" OR ";B21;" OR ";B22;" OR ";B23;" OR ";B24;" OR ";B25;" OR ";B26;" OR ";B27;" OR ";B28;" OR ";B29)

wat dus de uitkomst Piet OR Piet OR Piet OR OR ect. moet geven.
iemand enig idee hoe ik de niet gebruikte OR's eruit laat?

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Haal dat ="WAAR" eens weg. WAAR is al een correcte waarde voor een boolean bij Nederlandse Excel ;)
Daarna wil ik "tekst" van cellen B17 t/m 32 samenvoegen door:

=TEKST.SAMENVOEGEN(#VERW!;" OR ";B18;" OR ";B19;" OR ";B20;" OR ";B21;" OR ";B22;" OR ";B23;" OR ";B24;" OR ";B25;" OR ";B26;" OR ";B27;" OR ";B28;" OR ";B29)

wat dus de uitkomst Piet OR Piet OR Piet OR OR ect. moet geven.
iemand enig idee hoe ik de niet gebruikte OR's eruit laat?
Dit geet #VERW! als antwoord. :+ Maar ik snap het niet helemaal. Moet "Piet" niet afhankelijk van de rij zijn ofzo?

Excel heeft hier zonder VBA helaas geen mooie oplossing voor. Met VBA moet je denken aan iets als http://www.cpearson.com/excel/stringconcatenation.aspx

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • RVE_NL
  • Registratie: Maart 2007
  • Laatst online: 14-09 22:14
pedorus schreef op maandag 19 december 2011 @ 15:18:
[...]
Haal dat ="WAAR" eens weg. WAAR is al een correcte waarde voor een boolean bij Nederlandse Excel ;)
[...]
Dit deed de truc, dankjewel!
pedorus schreef op maandag 19 december 2011 @ 15:18:
Dit geet #VERW! als antwoord. :+ Maar ik snap het niet helemaal. Moet "Piet" niet afhankelijk van de rij zijn ofzo?
Excel heeft hier zonder VBA helaas geen mooie oplossing voor. Met VBA moet je denken aan iets als http://www.cpearson.com/excel/stringconcatenation.aspx
Bij mij werkt dit gelukkig wel, hij voegt gewoon alle tekens wat in de cellen B17 t/m 29 samen achter elkaar.
Probleem is alleen als er niets in de cellen staat komt er toch OR.

Deze OR is bijvoorbeeld wel noodzakelijk tussen de 'gecombineerde' waardes van de cellen B17 en B18. maar als B19 t/m 29 leeg zijn hoeven hier natuurlijk geen OR's meer te komen.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ok, laat ik het zo zeggen, 13 cellen handmatig noemen vind ik geen mooie oplossing. :p Je kunt vervolgens een enorme constructie met 13 ifjes optuigen, of iets als http://www.mrexcel.com/fo...430951&highlight=ConcatIf gebruiken. Ook die laatste doet trouwens intern exact hetzelfde als wat je zelf kan doen: altijd "OR" toevoegen en de overbodige "OR" weghalen met bijvoorbeeld LEFT() of RIGHT().

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • RVE_NL
  • Registratie: Maart 2007
  • Laatst online: 14-09 22:14
Ik heb het topic doorgelezen en de VBA code ingeplakt maar ik begrijp niet hoe ik het werkend kan krijgen. (Mijn excel kennis rijkt niet verder dan logica met formules, VBA dit lijkt meer op een aparte taal :P)

Zonder die overbodige OR dingetjes weghalen lijkt het niet te gaan werken, is er misschien nog een andere manier?

ik heb mijn bestandje even geupload zover ik nu ben, misschien dat je dan kunt zien wat ik uiteindelijk wil bereiken. http://www.megafileupload.../335874/Boolean-xlsx.html

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Over WAAR: =ALS(B3=WAAR;"Piet";"") is hetzelfde als =ALS(B3;"Piet";"") terwijl dat laatste korter is. (Immers: onder de motorkap wordt 'B3=WAAR' gecheckt wat als antwoord WAAR heeft).

Het bestand heb ik niet bekeken, maar als ik het zo lees: als je alle ruimte hebt dan kan je een extra hulp-rij toevoegen, waar A3 = "" als A2 leeg is, en A3 = " OR " & A2 als het WAAR is. (Waar in dit voorbeeld A2 de bovenstaande cel).
Dan kan je een eenvoudige concat (in het NL: tekst.samenvoegen) doen van de hele rij.

Edit: daarbij moet je natuurlijk nog wel even de eerste of juist laatste vermelding checken, daar kan nog wel een OR OR komen. Maar dat kan je natuurlijk ook weer afvangen met een extra check, mocht dat nodig zijn.

[ Voor 17% gewijzigd door F_J_K op 22-12-2011 10:01 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • pedorus
  • Registratie: Januari 2008
  • Niet online
RVE_NL schreef op donderdag 22 december 2011 @ 09:48:
Ik heb het topic doorgelezen en de VBA code ingeplakt maar ik begrijp niet hoe ik het werkend kan krijgen. (Mijn excel kennis rijkt niet verder dan logica met formules, VBA dit lijkt meer op een aparte taal :P)
Voor VBA heb je de ontwikkelaarsbalk nodig (via opties), en in de visual basic editor kun je dan de tekst in de module stoppen. Vervolgens is het een kwestie van iets als
code:
1
=concatif(B3:B15;WAAR;range_met_tekstwaardes_zoals_piet;",")

Overigens kun je de tekst van een checkbox prima leeg laten en de tekst in de naastliggende cel zetten.
F_J_K schreef op donderdag 22 december 2011 @ 09:59:
Dan kan je een eenvoudige concat (in het NL: tekst.samenvoegen) doen van de hele rij.
Ik vind concatenate(b1,b2,b3,...) toch niet zo eenvoudig. concatenate(b1:b3) werkt helaas niet. ;)
Edit: daarbij moet je natuurlijk nog wel even de eerste of juist laatste vermelding checken, daar kan nog wel een OR OR komen. Maar dat kan je natuurlijk ook weer afvangen met een extra check, mocht dat nodig zijn.
Een "OR OR"-situatie lijkt me niet op te treden als je de juiste deelresultaten hebt:
code:
1
=als(checkbox_link;"OR Piet";"")

En dan is het alleen een kwestie van de eerste OR er af halen:
code:
1
=deel(tekst.samenvoegen(subresultaten_per_cel);4;999999999)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • RVE_NL
  • Registratie: Maart 2007
  • Laatst online: 14-09 22:14
Ik heb het eindelijk voor elkaar, ik zit alleen nog met 1 klein probleempje waar ik geen oplossing voor vind.

=ALS(=T(B9;B9 + "OR";" "))

De bedoeling is: als B9 tekst is moet de waarde van B9 + OR weergegeven worden.
Indien B9 geen tekst is moet de cel leeg blijven.
Waarschijnlijk gebruik ik de formule in formule funtie verkeerd, want hij geeft ook foutmeldingen.
Pagina: 1