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

Excel formule voor samenvoegen waarden

Status
Niet open voor verdere reacties.

Nappie84

Gebruiker
Lid geworden
24 mrt 2012
Berichten
38
Ik ben in een vorige vraag van mij: http://www.helpmij.nl/forum/showthread.php/890261-VBA-samenvoegen-tekst-en-kolommen
erg geholpen met jullie antwoorden door gebruik te maken van een draaitabel. Daarnaast heb ik met een formule (dankzij een collega) alles kunnen realiseren.

Echter heb ik toch 1 vraag:

Is het mogelijk op basis van een excel formule of vba het volgende voor elkaar te krijgen:
In kolom A staan de regio en in kolom B de medewerkers die er aan gekoppeld zijn.

Nu willen we graag in kolom F tonen als een medewerker ook in andere regio's voorkomt en in welke regio dat is.

Met een draaitabel in dit snel te te realiseren, alleen heb ik in mijn bronbestand meer dan 130 regio's en meer dan 5000 gebruikers en dan wordt dit niet overzichtelijk met een draaitabel.
Daarnaast worden alles medewerkers op basis van de regio in kolom A op een apart tabblad getoond zodat medewerkers per regio in 1 overzicht staan.

In de bijlage heb ik een voorbeeld bestand.
Is het toch met een formule of vba voor elkaar te krijgen dat in kolom F deze gegevens getoond worden?
Als een medewerker maar 1 regio heeft dan zou er iets kunnen staan van "geen andere regio's".

Bekijk bijlage Map1.xlsx

Alvast bedankt voor het meedenken!
 
Probeer deze eens:
Code:
Sub tsh()
    Dim Br
    Dim i As Long
    
    Br = Sheets("Blad1").Cells(1).CurrentRegion.Resize(, 3)
    With CreateObject("Scripting.Dictionary")
        For i = 2 To UBound(Br)
            .Item(Br(i, 2)) = .Item(Br(i, 2)) & "|" & Br(i, 1)
        Next
        For i = 2 To UBound(Br)
            Br(i, 3) = Join(Filter(Split(Mid(.Item(Br(i, 2)), 2), "|"), Br(i, 1), False), ", ")
        Next
    End With
    Sheets("Blad1").Cells(1, 1).Resize(UBound(Br), 3) = Br
End Sub
 
Dag Timshel,

Ik heb hem getest en dit is wat ik zoek, dank!

Is het nog mogelijk als iemand 1 regio heeft dat er dan een tekst komt te staan "geen andere regio's" ? nu zijn deze namelijk leeg.
En als de gegevens niet getoond worden in kolom C maar in kolom E? kan dit ook nog?

Dan is dit precies wat ik zoek.
 
Zo dan:
Code:
Sub tsh()
    Br = Cells(1).CurrentRegion
    j = UBound(Br)
    For i = 2 To j
        Br(i, 1) = Join(Filter(Evaluate("transpose(if(B2:B" & j & "=B" & i & ",A2:A" & j & ",A" & i & "))"), Br(i, 1), 0), ", ")
        Br(i, 1) = IIf(Br(i, 1) = "", "Geen andere regio's", Br(i, 1))
    Next
    Cells(1, 5).Resize(j) = Br
End Sub
 
Laatst bewerkt:
Top! dit is wat ik zoek, bedankt voor je hulp!
Vraag is opgelost.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan