• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

deze formule kan vast korter...

Status
Niet open voor verdere reacties.

Gerald Baalhuis

Gebruiker
Lid geworden
14 jan 2006
Berichten
369
Ik heb na enig puzzelen en knippen en plakken een nogal lange formule gemaakt. Deze formule voegt maximaal 12 kolommen met tekst samen, gescheiden door een komma en een spatie.
Per regel verschilt het aantal ingevulde tekstkolommen, zodat ik iets moest verzinnen om de overbodige komma's en spaties te verwijderen. De laastste komma moest ook nog weg, dat is ook gelukt. Mar nu is de formule wel heel erg lang.
Ik vroeg mij af of deze korter (=mooier) kan?
Iemand enig idee?

Groetjes,

Gerald

zie bijgevoegd excel bestandje
 

Bijlagen

Gerald,

Wat dacht je van
Code:
=SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;;", ";O3);", , ";"")
 
Thoralf,

Bedankt, deze is inderdaad véééél korter. Alleen één klein dingetje: Als er slechts 1 afdeling staat (in kolom H, dit is de eerste kolom vanaf waa de afdelingen worden ingevuld) blijft er een komma staan in de cel waar de formule staat.

Gerald

P.S. De afdelingen in het echte excel bestand beginnen in kolom H en niet in D zoals het voorbeeld bestand (echte bestand is > 100kB)
 
Laatst bewerkt:
Met een kleine aanpassing om die laatste komma te verwijderen, echter wel een verdubbeling van lengte van de formule:

Code:
=LINKS(SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;", ";O3);", , ";"");LENGTE(SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;", ";O3);", , ";""))-2)
 
Laatst bewerkt:
Met een kleine aanpassing om die laatste komma te verwijderen, echter wel een verdubbeling van lengte van de formule:

Code:
=LINKS(SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;;", ";O3);", , ";"");LENGTE(SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;;", ";O3);", , ";""))-2)

Thoralf,

Bedankt, deze is evengoed nog korter dan de originele....:)

Gerald
 
Laatst bewerkt:
Moet nog een kleinigheidje aanpassen:
moet worden:

Code:
=LINKS(SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;", ";O3;", ");", , ";"");LENGTE(SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;", ";O3;", ");", , ";""))-2)

Maar ook dit is nog niet helemaal juist: als het aantal afdelingen oneven is verdwijnen de laatste 2 tekens van de laatse afdeling, teerwijl dit in de hieraan voorafgaande formule juist gebeurde bij een even aantal afdelingen.
Advies: gebruik de eerste formule en laat de laatste komma staan, dan heb je alleen als het aantal afdelinge oneven is aan het einde een overbodige komma.
 
Laatst bewerkt:
Wat dacht je van
Code:
=SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;;", ";O3);", , ";"")
Thoralf,

Bijna:
Code:
=ALS(AANTALARG(D3:O3)=0;"";SUBSTITUEREN(TEKST.SAMENVOEGEN(D3;", ";E3;", ";F3;", ";G3;", ";H3;", ";I3;", ";J3;", ";K3;", ";L3;", ";M3;", ";N3;", ";O3);HERHALING(", ";12-AANTALARG(D3:O3));""))
Slechts iets langer en haalt overal de laatste komma weg. In tweede instantie een 0-situatie toegevoegd, anders krijg je 22 posities in een cel, namelijk 11 x ", ".

Maar dit was slecht het inschieten van je perfecte voorzet.
 
Laatst bewerkt:
@ Rob,

Klasse!
Oneven + Oneven = Even, en dan een even aantal malen komma+ spatie verwijderen.

Ik zag ook nog dat ik per ongeluk achter N3 twee maal een punt komma had staan, niet dat dat een probleem geeft, maar het is iets netter die toch maar te vervangen door één punt komma.
 
Thoralf en Rob,

Hartelijk dank voor jullie oplossingen! Het werkt perfect. Ik kan weer verder met mijn project.
Het wordt uiteindelijk een soort "planning" voor 400 opdrachten verdeeld over 6 werkdagen en 5 machines....ben er nog niet helemaal uit, maar met dit fantastische forum als vraagbaak en de Excel "die-hard"zoals jullie kom ik er wel uit :)

Nogmaals bedankt,

Groet,

Gerald
 
Laatst bewerkt:
Gerald, Graag gedaan, was een leuk, creatief probleem. Kijk nog ven naar mijn formule, heb er een nul-situatie aan toegevoegd, dus als er nog niets op de regel staat.

Thoralf,

Teveel eer: goede samenwerking => de kracht van een forum

Rob,

Nu is het helemaal perfect, er waren inderdaad 2 of 3 apotheken zonder afdeling, daar ging het niet helemaal goed. Maar met de aangepaste formule gaat het helemaal lukken.
Wellicht kom ik gaandeweg nog meer leuke uitdagingen tegen waar ik nog geen oplossing voor kan bedenken, dan zet ik zeker weer een vraag op dit prachtige forum.

Groet,

Gerald
 
Gerald, Graag gedaan, was een leuk, creatief probleem. Kijk nog ven naar mijn formule, heb er een nul-situatie aan toegevoegd, dus als er nog niets op de regel staat.

Thoralf,

Teveel eer: goede samenwerking => de kracht van een forum

Beste Rob, het gaat bijna goed :) Bijgesloten een bestandje met twee regel met jullie formule, Kijk een wat er gebeurt als je elf of meer afdelingen invult...

Gerald
 

Bijlagen

Laatst bewerkt:
Hallo Gerald,
Je hebt kennelijk bij het kopiëren van de formule een paar foutjes gemaakt.
Bijgaand een goed voorbeeld.
 

Bijlagen

Dag Gerald,

Heb je trek in een Macro,
probeer dan deze eens.

Je kunt het aantal Rijen nog flink uitbreiden.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan