Microsoft Excel

Herbers Excel/VBA-Archiv

Vertikale Zellinhalte in einer Zelle zusammenfasse

Betrifft: Vertikale Zellinhalte in einer Zelle zusammenfasse von: Werner
Geschrieben am: 22.11.2014 11:07:54

Hallo Excel-Freunde
ich habe eine Tabelle - in Spalte A die Firmennamen - in Spalte B Namen der Mitarbeiter.
Jede Firma kann natürlich mehrere Mitarbeiter haben.
SpalteA SpalteB
Firma1 Name1
Firma1 Name2
Firma1 Name3
Firma1 Name4
Firma2 Name5
Firma2 Name6
usw
Ich möchte jetzt in einem separaten Bereich
(per Formel ?!) alle Namen der jeweiligen Firma in einer Zelle zusammenfassen.
Ergebnis
SpalteA SpalteB
Firma1 Name1;Name2;Name3;Name4
Firma2 Name5;Name6
Firma2 ....

Ist so etwas möglich ?
Freu mich auf einen Tip
Besten Gruss
Werner

  

Betrifft: nicht mit einer, aber mit drei Formeln möglich ..: von: neopa C (paneo)
Geschrieben am: 22.11.2014 16:40:35

Hallo Namensvetter,

... vorausgesetzt, Deine Datentabelle ist bzgl. Firmen sortiert (mit einer UDF von Luc reichen sogar 2 Formeln, aber bedarf halt der UDF)

Formel in A21 (mit Zellformat:0;;) und B21 nach unten kopieren) und F21 nach rechts und unten:

 ABCDEFGHI
1FirmaNamen       
2Firma1Name1       
3Firma1Name2       
4Firma1Name3       
5Firma1Name4       
6Firma2Name5       
7Firma2Name6       
8Firma2Name7       
9Firma3Name8       
10Firma4Name9       
11Firma4Name10       
12Firma4Name11       
13         
14         
15         
16         
17         
18         
19         
20FirmaNamen       
21Firma1Name1; Name2; Name3; Name4   Name1Name1; Name2Name1; Name2; Name3Name1; Name2; Name3; Name4
22Firma2Name5; Name6; Name7   Name5Name5; Name6Name5; Name6; Name7 
23Firma3Name8   Name8   
24Firma4Name9; Name10; Name11   Name9Name9; Name10Name9; Name10; Name11 
25         

Formeln der Tabelle
ZelleFormel
A21=VERWEIS(A20;A$1:A$18;A$2:A$19)
B21=WENN(A21=0;"";VERWEIS(9;1/(F21:ZZ21<>""); F21:ZZ21))
F21=WENN(SPALTE(A1)>ZÄHLENWENN($A$1:$A$19;$A21); "";E21&WENN(SPALTE(A1)>1;"; ";"")&INDEX($B:$B;VERGLEICH($A21;$A:$A;)+SPALTE(A1)-1))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


Gruß Werner
.. , - ...


  

Betrifft: cool - THX - welche UDF von Luc:-? meinst Du von: Werner
Geschrieben am: 22.11.2014 19:38:48

Hi Werner,
coole Lösung :)
.. welche UDF von Luc:-? meinst Du ?
Besten Abendgruss
Werner


  

Betrifft: Irgendeine passende sicher, ... von: Luc:-?
Geschrieben am: 22.11.2014 22:38:26

…Werner,
zB diese hier:
D2[:D5]:=INDEX(Splitt(VJoin(A$2:A$12;";";1);";");ZEILE(A1))
E2[:E5]:{=VJoin(WENN(A$2:A$12=D2;B$2:B$12;"");"; ";1)}

Function Splitt(Bezug, Optional ByVal TrennZ): Splitt = Split(Bezug, TrennZ): End Function

Rem Verbinden aller Elemente eines beliebigen Vektors
'   Vs1.1 -LSr -cd:20130904 -1pub:20130905herber -lupd:20141122t
Function VJoin(Bezug, Optional ByVal BindeZ As String = " ", Optional ByVal NurUngl As Boolean)
    Dim xBez
    On Error Resume Next
    With WorksheetFunction
        If TypeName(Bezug) = "Range" Then Bezug = .Transpose(.Transpose(Bezug))
        If IsError(LBound(Bezug)) Then
            VJoin = Bezug
        ElseIf NurUngl Then
            For Each xBez In Bezug
                If VJoin = "" Then
                    VJoin = xBez
                ElseIf xBez <> "" And InStr(VJoin, xBez) = 0 Then
                    VJoin = VJoin & BindeZ & xBez
                End If
            Next xBez
        ElseIf IsError(LBound(Bezug, 2)) Then
            VJoin = Join(Bezug, BindeZ)
        Else: Bezug = .Transpose(Bezug)
            If IsError(LBound(Bezug, 2)) Then
                VJoin = Join(Bezug, BindeZ)
            Else: VJoin = CVErr(xlErrRef)
            End If
        End If
    End With
End Function
Gruß, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "Vertikale Zellinhalte in einer Zelle zusammenfasse"