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

foutmelding meer dan 64 geneste niveaus

Status
Niet open voor verdere reacties.

Apeace

Nieuwe gebruiker
Lid geworden
2 jun 2022
Berichten
1
Hi allemaal,

Wie kan mij helpen?
Ik probeer deze formule uit te voeren en dat kan niet doordat er bijna het dubbele van 64 geneste niveaus in zit.
Weet iemand misschien een andere formule of hoe deze formule toch wel kan met meer geneste niveaus?

Alvast bedankt!

Formule:
=SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(A1;" de"; "");" en";"");" ik";"");" een";"");" niet";''");" het";"");" dat";"");" was";"");" te";"");" bij";"");" in";"");" van";"");" voor";"");" is";"");" met";"");" maar";"");" op";"");" naar";"");" die";"");" je";"");" om";"");" ook";"");" er";"");" mijn";"");" bijenkorf";"");" me";"");" of";"");" aan";"");" geen";"");"meer";"");" wat";"");" ben";"");" erg";"");" heb";"");" i";"");" mij";"");" wel";"");" door";"");" dan";"");" kon";"");" the";"");" to";"");" ze";"");" by";"");" nog";"");" a";"");" heel";"");" moest";"");" waren";"");" als";"");" veel";"");" worden";"");" zijn";"");" dus";"");" echt";"");" goed";"");" haar";"");" hele";"");" iets";"");" omdat";"");" over";"");" zo";"");" al";"");" eens";"");" elkaar";"");" hebben";"");" iemand";"");" kan";"");" kwam";"");" vond";"");" werd";"");" zeer";"");" er";"");" op";"");" alleen";"");" and";"");" andere";"");" dit";"");" had";"");" heeft";"");" na";"");" nu";"");" ons";"");" weinig";"");" zelf";"");" daar";"");" dame";"");" vind";"");" want";"");" weg";"");" moeten";"");" niemand";"");" qua";"");" terug";"");" that";"");" toen";"");" zou";"");" jammer";"");" wij";"");" gewoon";"");" hadden";"");" helemaal";"");" jullie";"");" kom";"");" kunnen";"");" moet";"");" staan";"");" steeds";"");" weer";"");" wordt";"");" achter;"")
 
Waarom maak je er niet een UDF van? Lijkt mij een stuk simpeler. Dit soort formules is natuurlijk ook zo onhandig en lelijk als wat :).
 
Welke tekst houd je over met deze formule ?
 
Ik heb er een voorbeeldje van gemaakt, met een aanpassing van jouw vervangingstekst, want die levert onzin op, omdat je ook delen van woorden weghaalt. Je krijgt dan onzinwoorden. Als je wilt zien hoe jouw code werkt, moet je de functie TussenVoegsel_ori maar even achter de knop hangen.

Code:
Sub Testje()    Cells(2, 1).Value = TussenVoegsel(Cells(1, 1))
End Sub


Code:
Public Function TussenVoegsel(Gestript As String) As String


    Gestript = Replace(Gestript, " de ", " ")
    Gestript = Replace(Gestript, " en ", " ")
    Gestript = Replace(Gestript, " ik ", " ")
    Gestript = Replace(Gestript, " een ", " ")
    Gestript = Replace(Gestript, " niet ", " ")
    Gestript = Replace(Gestript, " het ", " ")
    Gestript = Replace(Gestript, " dat ", " ")
    Gestript = Replace(Gestript, " was ", " ")
    Gestript = Replace(Gestript, " te ", " ")
    Gestript = Replace(Gestript, " bij ", " ")
    Gestript = Replace(Gestript, " in ", " ")
    Gestript = Replace(Gestript, " van ", " ")
    Gestript = Replace(Gestript, " voor ", " ")
    Gestript = Replace(Gestript, " is ", " ")
    Gestript = Replace(Gestript, " met ", " ")
    Gestript = Replace(Gestript, " maar ", " ")
    Gestript = Replace(Gestript, " op ", " ")
    Gestript = Replace(Gestript, " naar ", " ")
    Gestript = Replace(Gestript, " die ", " ")
    Gestript = Replace(Gestript, " je ", " ")
    Gestript = Replace(Gestript, " om ", " ")
    Gestript = Replace(Gestript, " ook ", " ")
    Gestript = Replace(Gestript, " er ", " ")
    Gestript = Replace(Gestript, " mijn ", " ")
    Gestript = Replace(Gestript, " bijenkorf ", " ")
    Gestript = Replace(Gestript, " me ", " ")
' Etc.
End Sub

Code:
Public Function TussenVoegsel_ori(Gestript As String) As String


    Gestript = Replace(Gestript, " de", "")
    Gestript = Replace(Gestript, " en", "")
    Gestript = Replace(Gestript, " ik", "")
    Gestript = Replace(Gestript, " een", "")
    Gestript = Replace(Gestript, " niet", "")
    Gestript = Replace(Gestript, " het", "")
    Gestript = Replace(Gestript, " dat", "")
    Gestript = Replace(Gestript, " was", "")
    Gestript = Replace(Gestript, " te", "")
    Gestript = Replace(Gestript, " bij", "")
    Gestript = Replace(Gestript, " in", "")
    Gestript = Replace(Gestript, " van", "")
    Gestript = Replace(Gestript, " voor", "")
    Gestript = Replace(Gestript, " is", "")
    Gestript = Replace(Gestript, " met", "")
' Etc.
End Sub
 
Welke Excel versie heb je exact? Heb je al de beschikking over functies als VSTACK (VERT.STAPELEN) en TEKST.SPLITSEN?
 
Als je op Office Insider zit, dan zou deze werken:

Code:
=REDUCE("",TEXTSPLIT(C1,," ",TRUE),LAMBDA(accumulator,value,
     IF(ISERROR(MATCH(value,tblWeglaten[Weglaten],0)), accumulator & " " & value,accumulator)))
of, in NL Excel (vertaling van functies kan nog wijzigen):
Code:
=REDUCE("",TEKST.SPLITSEN(C1,," ",WAAR),LAMBDA(accumulator,value,
     ALS(ISFOUT(VERGELIJKEN(value,tblWeglaten[Weglaten],0)), accumulator & " " & value,accumulator)))
 

Bijlagen

Kon net geen bestand uploaden, maar nu gelukkig weer wel. Hierbij dus het voorbeeldje met de UDF. Leuk overigens dat een aantal helpers er vanuit gaat dat een vraagsteller over de meest recente versie beschikt. Of meedoet aan het OfficeInsider programma :). Of altijd een Engelse versie :d. Dat laatste verbaast me eigenlijk nog het meest. De meeste mensen werken volgens mij gewoon met een Nederlandse versie.
 

Bijlagen

@JP, onderstaande in name manager met als naam "MassRep" (in jouw voorbeeldbestand)
Deze werkt al bij iedereen met office 365

Code:
=LAMBDA(str;list;IF(list<>"";MassRep(SUBSTITUTE(str;" "&list&" ";" ");OFFSET(list;1;0));str))

Vervolgens gebruiken als

Code:
=MassRep(C1;A2)
 
Ik denk niet dat iemand formules met opzet in het Engels schrijft. Blijkbaar hebben sommige gewoon Engelse versies van Office.
Het is maar een kleine moeite om het in de vertaler add-in te gooien.

Oplossingen voor office 365 worden vaak gegeven. Niet alleen voor de TS maar ook voor toekomstige lezers.
 
Het zou wenselijk zijn als elke vraagsteller erbij zou vermelden met welke versie wordt gewerkt (en ook taal) zodat de antwoorden daarop kunnen worden toegespitst. Leuk natuurlijk als een antwoord op hogere versies dan door TS gebruikt werkt zodat lezers van die versies er ook wat aan hebben, maar de versie van TS zou centraal moeten staan. Als TS heb je niets aan antwoorden die bij jou niet werken. En het vertalen van oplossingen kan je ook wel aan de lezer overlaten die met een andere/hogere versie werkt. Dat is dan een 'inspanning' waar een lezer best toe in staat is als hij/zij met een andere taal werkt. E.e.a. speelt uiteraard niet als TS een bestandje meestuurt en een werkend bestand terugkrijgt. Dan staat-ie gelijk in de goede taal.
 
Op andere fora is het verplicht je office versie te vermelden. Wordt ook aangegeven onder je gebruikersnaam zodat je betere antwoorden krijgt.
Misschien ook iets voor dit forum als verbeterpunt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan