• 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.

Zinnen afbreken en aanvullen met spaties tot een bepaald aantal tekens

Status
Niet open voor verdere reacties.

Rooierick

Gebruiker
Lid geworden
6 feb 2013
Berichten
7
Beste,

Ik heb een lijst met een hoop productnamen met daarbijhoorde product gegevens. Elk product staat in één kollom en in één rij. Nu moet ik voor de verwerking van deze gegevens zorgen dat de eerste 40 tekens "gevuld" zijn, alvorens de volgende (max 30) tekens er achter komen te staan. Maar de woorden mogen niet "kapot"gemaakt worden.

Voorbeeld:
Productnaam gevolgd door een aantal afmetingen en de diameter
teken 40 is de E van Afmeting (ik wil niet dat het woord "kapot" gemaakt word en het eerste deel mag niet meer als 40 tekens bevatten. Dus nu wil ik "productnaam" tot en met "aantal" in het eerste deel hebben. Wat een totaal is van 35 tekens. Nu wil ik dat er achter deze 35 tekens nog 5 spaties worden toegevoegd om een totaal van 40 tekens te halen. Om daar vervolgends de rest van de zin achter te plaatsen.

Dus dan krijg je dit:
Productnaam gevolgd door een aantal"_____"afmetingen en de diameter (zo moet de zin dus in 1 cel komen te staan)


Ik heb al het een en ander doorgelezen op het internet maar ik kom er niet uit.

Is er hier iemand die mij kan helpen?

Met vriendelijke groet,

Rick
 
Laatst bewerkt:
Kom je verder met zo'n constructie?

Code:
=LINKS(A1;VIND.SPEC("aantal";A1;1)-1)&HERHALING(" ";5)&RECHTS(A1;LENGTE(A1)-VIND.SPEC("aantal";A1;1)+1)
 
Als je tekst in A1 staat, plak deze formule in bijvoorbeeld B1 en sluit af met Ctrl+Shift+Enter:
Code:
=LINKS(LINKS(LINKS(A1;40);MAX((DEEL(LINKS(A1;40);RIJ($1:$70);1)=" ")*RIJ($1:$70)))&"                                        ";40)
Ik heb de formule gevonden op http://www.mrexcel.com/archive/General/30895.html en beetje aangepast aan jouw vraag.
Eerst wordt je formule afgebroken tot 40 tekens. Het stuk na laatste spatie wordt erafgeknipt, daarna heleboel spaties erachter geplakt en daarna op 40 tekens afgebroken, zodat je string altijd 40 tekens zal bevatten.
Heb niet getest wat er gebeurt als er geen spatie in je string zit en ook niet als laatste teken een spatie is.
Groet.
 
Als je het gedeelte met alle spaties " " vervangt door HERHALING(" ";40) dan heb je ook 40 spaties. De functie wordt hierdoor flexibeler, je zou dan bijvoorbeeld overal waar "40" staat kunnen vervangen door een celverwijzing, zodat je de lengte telkens kunt aanpassen naar believen. Let er dan wel op dat het aantal spaties dat hij bekijkt staat nu op 70 staat vanwege de functie Rij(1:70) die een teller is. Als je meer spaties in je tekst hebt (maar dat kan natuurlijk alleen als je meer dan 70 tekens hebt en nu zijn het er 40) dan zal dat niet helemaal goed gaan.
 
Als je tekst in A1 staat, plak deze formule in bijvoorbeeld B1 en sluit af met Ctrl+Shift+Enter:
Code:
=LINKS(LINKS(LINKS(A1;40);MAX((DEEL(LINKS(A1;40);RIJ($1:$70);1)=" ")*RIJ($1:$70)))&"                                        ";40)
Ik heb de formule gevonden op http://www.mrexcel.com/archive/General/30895.html en beetje aangepast aan jouw vraag.
Eerst wordt je formule afgebroken tot 40 tekens. Het stuk na laatste spatie wordt erafgeknipt, daarna heleboel spaties erachter geplakt en daarna op 40 tekens afgebroken, zodat je string altijd 40 tekens zal bevatten.
Heb niet getest wat er gebeurt als er geen spatie in je string zit en ook niet als laatste teken een spatie is.
Groet.


Daan dit is inderdaad de oplosssing voor het eerste deel van mijn vraag. Super bedankt. Het enigste probleem is wat je inderdaad al aangaf niet zeker te weten, dat wanneer er slecht 1 woord in de regel staat er niks meegenomen word. Maar iedergeval al bedankt voor je moeite:) Heb je toevallig ook een oplossing om nu het laatste deel van de tekst weer achter het eerste deel incl spaties te zetten?
 
Laatst bewerkt:
Heb nu geen tijd.
Kijk anders op de site waarvan ik de link heb gegeven. Daar staat ook iets over het tweede deel bewaren.
Als het niet goed gaat met slechts één woord als input, doe dan iets als ALS(LENGTE(A1)<=40;A1;"de formule hierboven") want als je input <40 tekens dan kun je gewoon je hele input gebruiken zonder de afknipbewerkingen. Wat als het eerste en enige woorde langer is dan 40 tekens? Tja, dat zal wel niet voorkomen...
 
Nog een kleine aanpassing gedaan want het gaat anders fout bij 39

Code:
If Len(c02) + Len(c01(i)) < 39 Then


Mocht je tevreden zijn met het antwoord zet je de vraag dan op opgelost

Niels
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan