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

SUBSTITUTE & LEN formule vraag

Status
Niet open voor verdere reacties.

yizzll

Gebruiker
Lid geworden
11 jan 2013
Berichten
27
Hoi.
Ik heb een vraag. Ik heb een attachment als voorbeeld toegevoegd. Dit is maar een voorbeeld. Maar mijn situatie is ongeveer gelijk.
Ik heb dus een formule waar ik gebruik maak van Substitute & LEN.
Ik heb een text in column B. Het Woord in C. En de Som in C.
Op het moment word de volgende formule gebruikt.
=(LEN(B4)-LEN(SUBSTITUTE(B4,C4,"")))/LEN(C4)

op het moment telt deze formule hoe vaak het woord wat ik aangeef in column C voorkomt in de cel in column B.
Wat ik graag zou willen is dat ik meerdere woorden in de cel in column C kan toevoegen.
In dit voorbeeld staat er bijvoorbeel in cel C4 fox. Als ik er nu neerzet fox jumped gebeurd er niets.
Dan telt die niets meer.
Moet ik tussen de woorden iets plaatsen zodat excel begrijpt dat het verschillende woorden zijn?
Of moet ik de formule aanpassen.
Ik heb geen idee.
Alvast bedankt.
foxvoorbeeld.jpg
 
Bij mij komt er gewoon 1 uit: "fox jumped" komt 1 keer voor.
Overigens verdient een Excel sheet als attachment sterk de voorkeur boven een plaatje.
 
bedankt voor je reactie.
ik heb een excel file toegevoegd met hoe mijn eigen voorbeeld eruit ziet.
Misschien is het zo wat duidelijker.
Zoals je kan zien heb ik meerdere woorden toegevoegd in the 2de colom.
Ik wil dus dat wanneer die woorden in de a colom staan dat die ze telt. Bijvoorbeeld bij rij 2 zou dit 0 moeten zijn. Bij rij 3 zou dit 1 moeten zijn en bij rij 4 zou het getal 2 moeten zijn.
Sorry wanneer ik onduidelijk ben geweest.
Bekijk bijlage voorbeeld excelhulp.xlsx
 
Laatst bewerkt:
In het oorspronkelijke voorbeeld telde de formule hoe vaak een string voorkwam.
Moet dat nog steeds gebeuren of wil je alleen weten hoeveel van de woorden in C voorkomen in B? Dus als 1 woord 1x voorkomt en een ander woord 2x: is de uitkomst dan 2 of 3?
Als je een oplossing wilt met formules, dan is het veel handiger om de woorden in aparte cellen te plaatsen. Als dat niet kan, dan is een VBA oplossing meer voor de hand liggend.
Wat verdient de voorkeur?
 
Hoi Marcel,
De uitkomst zou dan 3 moeten zijn.
De reden waarom ik alle woorden in dezelfde cel wilde hebben is omdat iemand anders die woorden gaat toevoegen. En kan blijven toevoegen. Dus iedere keer wanneer die weer een nieuw woord verzint dat die hem makkelijk kan toevoegen door hem alleen maar erbij te zetten in die cel.
Iemand die geen verstand heeft van formules etc. Het is al een redelijk grote sheet dus een cel per woord maakt het misschien wat onoverzichtelijk.
Het zou voor diegene dus zo simpel mogelijk moeten zijn. Ik wil dat die alleen de woorden hoeft toe te voegen.
Wanneer het een VBA word zou ik deze dan zelf ook kunnen aanpassen?
Er zijn namelijk 6 categorieën die ieder een colom moeten hebben met de formule en een colom waar de woorden in toegevoegd kunnen worden.
In het voorbeeld stonden alle woorden met betrekking tot Device.
Er moet ook een colomn met betrekking tot Art, innovatief, platform, experience & change/movement.

Ik wil dan per categorie woorden kunnen toevoegen in de colomn die bij die categorie hoort.
En dat excel per categorie telt hoeveel van die woorden die waren toegevoegd in de colom die bij die categorie hoort terug komen in de feedback.
 
Laatst bewerkt:
In de bijlage heb ik het opgelost met een UDF oftewel een User Defined Function.

Hij is case insensitive; als je hem case sensitive wilt, dan moet je 2x de UCase met bijbehorende haakjes verwijderen.

Code:
Option Explicit

Function countStringsInString(ByVal searchWords As String, ByVal SearchIn As String) As Long

Dim t1, t2
Dim i As Long, j As Long, counter As Long


t1 = Split(UCase(searchWords))
t2 = Split(UCase(SearchIn))

For i = 0 To UBound(t1)
    For j = 0 To UBound(t2)
        If t1(i) = t2(j) Then counter = counter + 1
    Next j
Next i
    
countStringsInString = counter

End Function
 

Bijlagen

Hey Marcel,
Super bedankt voor de moeite die je neemt.
Sorry voor de waarschijnlijk domme reactie maar hoe krijg ik dit nu in mijn originele file?
Sorry ik heb echt geen idee. Ik ga in de tussentijd ook effe google.
 
Ga in je Excel file met <ALT>+F11 naar de Visual Basic Editor.
Kies Insert in de menubalk en vervolgens Module.
Als het goed is, heb je nu rechts een leeg vlak waarin je de code kunt plakken.
De file moet je opslaan als een bestand met macro's (xlsm).
 
Volgens mij is het al gelukt met wat hulp van google.
Super bedankt.
Marcel Beug is Koning! :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan