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

Combinatie formules?

Status
Niet open voor verdere reacties.

jorisr

Gebruiker
Lid geworden
8 okt 2011
Berichten
18
Hallo,

ik ben op zoek naar een combinatie van formules om tekst te scheiden uit een cel met enkele voorwaarden.
Een voorbeeld maakt het snel duidelijker:
In kolom A staat een "sporttak". In kolom B staan diploma's in de vorm van "niveau+discipline (datum, soort, sporttak); niveau+discipline (datum, soort sporttak);etc.". (een persoon kan meerdere diploma's hebben.)
Nu zoek ik volgende formule: Als "sporttak" in kolom B gelijk is aan de "sporttak" in kolom A dan moet hij in kolom C het niveau van dit diploma tonen (diploma = niveau + discipline).
Extra moeilijkheid is dat regelmatig de sporttak gelijk is aan de discipline.
Eventueel zou in kolom D ook de datum van dit diploma mogen komen en in kolom E de soort van dit diploma. Het belangrijkste is kolom C

In bijlage heb ik een excel voorbeeld gehangen met in kolom C, D en E handmatig enkele uitkomsten erbij zodat het duidelijk is (je zou dus starten met enkel de info in kolom A en B).
Ik zoek liefst een formules, zoniet een macro maar hier kan ik zelf niet mee werken.

Het zou me heel hard vooruit helpen!
Merci!

Joris
Bekijk bijlage Demo scheiding cellen.xlsx
 

Bijlagen

Laatst bewerkt:
Klopt de uitkomst in C2 van je voorbeeld wel?
Ik zie 'Atletiek' niet terugkomen in de diploma's.
 
Bijgaand een oplossing met -toch- een macro, in het bijzonder een User Defined Function (UDF).
Een computer die tekst interpreteert doet dat zelden foutloos (denk maar google vertalen). Hoewel in dit voorbeeld de uitkomst klopt kun je er donder op zeggen dat er zich in het echte bestand uitzonderingen zullen voordoen. Ingewikkelde algoritmes geven in dit soort gevallen nauwelijks betere resultaten dan eenvoudige.

Code:
Function Niveau(Tak As String, CV As String) As String
    Dim sSkill
    
    For Each sSkill In Split(CV, ";")
        If InStr(UCase(sSkill), UCase(Tak)) > 0 Then Niveau = Trim(Left(sSkill, 10))
    Next
End Function
 

Bijlagen

Met een macro

Code:
Sub VenA()
Dim ar, ar1, j, it
ar = Cells(1).CurrentRegion
ReDim ar1(UBound(ar) - 2, 2)
For j = 2 To UBound(ar)
    For Each it In Split(ar(j, 2), ";")
        If InStr(LCase(it), LCase(ar(j, 1)) & ")") Then
            ar1(j - 2, 0) = IIf(Left(LCase(it), 3) = "ins", Trim(Left(it, 13)), Trim(Left(it, 10)))
            ar1(j - 2, 1) = CDate(Mid(it, InStr(it, "/") - 2, 10))
            ar1(j - 2, 2) = Mid(Trim(Mid(it, InStr(it, ",") + 1)), 1, InStr(Trim(Mid(it, InStr(it, ",") + 1)), ",") - 1)
            Exit For
        End If
    Next it
Next j
[C2].Resize(UBound(ar1) + 1, 3) = ar1
End Sub
 

Bijlagen

Hoi Timshell,

echt bangelijk goe! Dat scheelt me toch een paar dagen werk! Ik heb wel even moeten zoeken naar het gewoon kopieren van de code want daar ben ik echt niet in thuis.
Het niveau werkt nu, de datum en soort wel nog niet en ik vind mijn fout niet.
In bijlage mijn bestand (andere data heb ik gewist). Is dat 2de tabblad nodig?

Bekijk bijlage TrainersSubFed test macro.xlsm

nog is merci!

iets verder uitgewerkt...
 
Altijd handig dat voorbeeld bestanden compleet afwijken met het origineel.

Welke uitkomst verwacht je op bv deze regel
Begeleiden van voetballers met een handicap (21/06/2010, Cursus, Voetbal); Begeleiden van voetballers met een handicap (21/06/2010, Cursus, Gehandicaptensport); Trainer A Voetbal (Seniors) (14/05/2012, Cursus, Voetbal); Trainer A Voetbal (Elite Jeugd) (16/05/2011, Cursus, Voetbal)?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan