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

Lengte van woorden binnen 1 cel naar voren halen

Status
Niet open voor verdere reacties.

Koendevries

Gebruiker
Lid geworden
15 sep 2023
Berichten
22
Hoi,

Ik ben op zoek naar een formule die de lengte van een bepaalde woorden binnen één cel kan omzetten naar een numerieke waarde. In feite wil ik de lengte van een specifiek element in de cel naar voren halen. Heeft iemand hier ervaring mee? Je kunt een voorbeeld vinden in het bijgevoegde Excel-bestand. Het is mogelijk een uitdagende vraag, maar ik hoop dat iemand hiermee bekend is.
 

Bijlagen

  • vraag.xlsx
    8,1 KB · Weergaven: 18
Heb je Office 365?
dan kan het zo:

PHP:
=TEXTJOIN(" ";TRUE;LEN(TEXTSPLIT(TRIM(C2);" ")))

=TEKST.COMBINEREN(" ";WAAR;LENGTE(TEXTSPLIT(SPATIES.WISSEN(C2);" ")))

of is dit de gewenste uitkomst?
PHP:
=LET(woord;TEXTSPLIT(C2;" ");TEXTJOIN(", ";TRUE;IF(LEN(woord)=4;woord;"")))

=LET(woord;TEXTSPLIT(C2;" ");TEKST.COMBINEREN(", ";WAAR;ALS(LENGTE(woord)=4;woord;"")))
 
Laatst bewerkt:
En als je geen Office 365 hebt dan kan het met een User Defined Function:
 

Bijlagen

  • vraag.xlsm
    14,7 KB · Weergaven: 11
Dank jullie wel voor jullie input. Ik gebruik inderdaad Office 365. Ik snap nu hoe de numerieke waarde wordt opgehaald, dankzij jullie uitleg! Voor mij waren deze formules nieuw.
 
Hoi,

Ik loop eigenlijk nog tegen het volgende aan. Wanneer ik probeer een specifiek criteriumbereik aan de formule toe wil voegen, krijg ik een foutmelding. Weet iemand hier een oplossing voor? Ik dacht zelf eigenlijk aan het volgende...

=LET(woord;TEKST.SPLITSEN(C2;" ");TEKST.COMBINEREN(", ";WAAR;ALS(EN(LENGTE(woord)=4;NUMERIEKE.WAARDE(woord)>1000;NUMERIEKE.WAARDE(woord)<2000);woord;"")))
 
Laatst bewerkt:
Volgens mij bevat het door jou geplaatste bestand geen voorbeeld waarover je het nu hebt.
Je bedoeling is evenmin helder.
 
Het voorbeeld een beetje aanpassen zodat het je vraag goed illustreert kan geen kwaad inderdaad.

Let wel: NUMERIEKE.WAARDE("acht") werkt NIET, mocht dit je bedoeling zijn.

Dus: wat wil je bereiken...
 
Dat is inderdaad corrrect. Ik heb een excel bestand met mijn vraagstuk toegevoegd .
Ik was altijd in de veronderstelling dat de numerieke waarde juist de waarde omzette naar een getal.
 

Bijlagen

  • vraag.xlsx
    10,7 KB · Weergaven: 13
UDF:

PHP:
=F_snb(B2)

Code:
Function F_snb(c00)
  sn = Split(c00)

  For j = 0 To UBound(sn)
    If Val(sn(j)) \ 1000 = 1 Then F_snb = F_snb & ", " & sn(j)
  Next

  F_snb = Mid(F_snb, 3)
End Function
of
Code:
Function F_snb(c00)
  sn = Split(c00)

  For j = 0 To UBound(sn)
    If Val(sn(j)) \ 1000 <> 1 Then sn(j) = "~"
  Next

  F_snb = Join(Filter(sn, "~", 0), ", ")
End Function
 
Laatst bewerkt:
Andere optie met formule:
Code:
=LET(x;TEKST.SPLITSEN(B2;" ");y;ALS(ISGETAL(--x);--x;"");TEKST.COMBINEREN(", ";WAAR;FILTER(y;(y>1000)*(y<2000);"")))
Of wat exotischer:
Code:
=TEKST.COMBINEREN(", ";WAAR;XML.FILTEREN("<x><y>"&SUBSTITUEREN(B2;" ";"</y><y>")&"</y></x>";"//y[.=number() and .>1000 and .<2000]"))
 
Laatst bewerkt:
Dank voor jullie input, veel nieuwe inzichten geleerd.
Nu heb ik echter nog een vraag over beide formules. Wat is de betekenis van de -- in de volgende formule: ALS(ISGETAL(--x);--x;"").
Daarnaast heb ik een aantal filmpjes bekeken over de XML.Filteren formule, maar ik begrijp nog niet helemaal hoe een filter op Xpath werkt, zoals a[number()=. and .>100000 and .<700000]. Heb je misschien een website waar wordt uitgelegd hoe een dergelijk filter precies in elkaar steekt?
 
De -- maakt van een getal opgeslagen als tekst weer een getal, want de tekst "8" is wat anders dan het getal 8 in Excel. In ALS(ISGETAL(--x);x;''') wordt dus van elk "woord" in reeks x gecontroleerd of het een getal is door de -- ervoor te zetten en dan de functie ISGETAL te gebruiken. Bij tekst is het een foutmelding (dus geeft ISGETAL als uitkomst ONWAAR), bij een getal opslagen als tekst komt er een getal uit (uitkomst dus WAAR). De WAAR/ONWAAR bepaalt of het getal (--x) moet worden opgenomen in de reeks voor verdere analyse.

Ik heb veel gehad aan deze pagina om de functie en de mogelijkheden van XML.FILTEREN goed te leren begrijpen: https://stackoverflow.com/questions/61837696/excel-extract-substrings-from-string-using-filterxml. In Excel 365 zijn echter veel nieuwe handige functies erbij gekomen, die gebruik van XML.FILTEREN veelal overbodig maakt.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan