Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1200to1204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Felder zusammenfassen

Felder zusammenfassen
Stefan
Hallo,
ich stehe wie der Ochse vorm Berg und komme nicht weiter.
In Spalte A sind Zahlen eingetragen in Spalte B ist ein Text eingetragen. Wenn die Zahl in Spalte A1=A2 ist dann sollen die Textfelder B1 und B2 über den Befehl "verketten" in Spalte C zusammengefügt werden. Bis daher alles kein Problem. Nun kommt es:
Es ist möglich das die Zahl in Spalte A manchmal 3 mal untereinander kommt, manchmal 10 mal oder manchmal nur 1 mal untereinander gleich ist. Je nachdem wie häufig die gleiche Zahl in Spalte A kommt entsprechend sollen die Felder zusammengeführt werden. Also hier Z.B. "guten Tag das" ; dann "ist" in der Zeile dann "test" dann "für sf". Die Zusammenfassung sollte immer in der ersten der gleichen Zahlen stehen...
SpalteA SpalteB
1 guten
1 tag
1 das
3 ist
2 ein
3 test
5 für
5 sf
Bin ziemlich ratlos....

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Felder zusammenfassen
02.03.2011 20:17:39
Oberschlumpf
Hi Stefan
Für deine Bsp-Zahlen in den Spalten A + B wird das gewünschte Ergebnis in Spalte C + jeweils erste Zeile angezeigt.
Sub sbZahl()
Dim liRow As Integer, liRow1 As Integer, liIdx As Integer, liarZeiger() As Integer
Dim liCounter As Integer, lboTreffer As Boolean, lstrKette As String
ReDim liarZeiger(0)
liarZeiger(0) = Range("A1").Value
For liRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If liarZeiger(liIdx)  Range("A" & liRow).Value Then
For liCounter = 0 To UBound(liarZeiger)
If Range("A" & liRow).Value = liarZeiger(liCounter) Then
lboTreffer = True
Exit For
End If
Next
If lboTreffer = False Then
liIdx = liIdx + 1
ReDim Preserve liarZeiger(liIdx)
liarZeiger(liIdx) = Range("A" & liRow).Value
Else
lboTreffer = False
End If
End If
Next
For liIdx = 0 To UBound(liarZeiger)
For liRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Range("A" & liRow).Value = liarZeiger(liIdx) Then
If liRow1 = 0 Then
liRow1 = liRow
End If
lstrKette = lstrKette & Range("B" & liRow).Value & " "
End If
Next
Range("C" & liRow1).Value = Trim(lstrKette)
liRow1 = 0
lstrKette = ""
Next
End Sub

Hilfts?
Ciao
Thorsten
Anzeige
Texte zusammenfassen - ohne VBA
02.03.2011 20:21:33
Erich
Hi Stefan,
so könnte es gehen (hier bis max. 10 Vorkommen) (C2 nach untenkopieren):
 ABC
11gutenguten tag das
21tag 
31das 
43istist
51einein
63testtest
75fürfür sf
85sf 

Formeln der Tabelle
ZelleFormel
C1=B1&WENN(A2=A1;" "&B2;"")&WENN(ZÄHLENWENN(A1:A3;A1)=3;" "&B3;"")&WENN(ZÄHLENWENN(A1:A4;A1)=4;" "&B4;"")&WENN(ZÄHLENWENN(A1:A5;A1)=5;" "&B5;"")&WENN(ZÄHLENWENN(A1:A6;A1)=6;" "&B6;"")&WENN(ZÄHLENWENN(A1:A7;A1)=7;" "&B7;"")&WENN(ZÄHLENWENN(A1:A8;A1)=8;" "&B8;"")&WENN(ZÄHLENWENN(A1:A9;A1)=9;" "&B9;"")&WENN(ZÄHLENWENN(A1:A10;A1)=10;" "&B10;"")
C2=WENN(A2=A1;"";B2&WENN(A3=A2;" "&B3;"")&WENN(ZÄHLENWENN(A2:A4;A2)=3;" "&B4;"")&WENN(ZÄHLENWENN(A2:A5;A2)=4;" "&B5;"")&WENN(ZÄHLENWENN(A2:A6;A2)=5;" "&B6;"")&WENN(ZÄHLENWENN(A2:A7;A2)=6;" "&B7;"")&WENN(ZÄHLENWENN(A2:A8;A2)=7;" "&B8;"")&WENN(ZÄHLENWENN(A2:A9;A2)=8;" "&B9;"")&WENN(ZÄHLENWENN(A2:A10;A2)=9;" "&B10;"")&WENN(ZÄHLENWENN(A2:A11;A2)=10;" "&B11;""))

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
und noch mal mit VBA
02.03.2011 20:43:47
Erich
Hi Stefan,
hier wird bei jedem Wechsel in Spalte 1 der Text ausgegeben:

Sub TxtZus()
Dim zz As Long, lngZ As Long, strT As String
lngZ = 1
While lngZ 
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Felder zusammenfassen
02.03.2011 21:03:37
pastinake
.. oder so
Sub Stefan()
Dim rngBereich As Range, rngBereich2 As Range
Dim zelle As Range, zelle2 As Range
Dim wsf As WorksheetFunction
Set wsf = Application.WorksheetFunction
Set rngBereich = Sheets("Tabelle1").Range("a1", Range("a" & Application.Rows.Count).End(xlUp))
For Each zelle In rngBereich
If wsf.CountIf(rngBereich, zelle.Value) > 1 Then
For Each zelle2 In rngBereich
If zelle2.Row = zelle.Row Then
zelle.Offset(0, 2) = zelle.Offset(0, 1).Value & " "
ElseIf zelle2.Value = zelle.Value And zelle2.Row 
Gruß aus Hilden
Bernd
Anzeige
AW: Felder zusammenfassen
02.03.2011 22:56:10
Stefan
Also Jungs, da bin ich aber von den Socken. Habe gerade Fussball geschaut und Ihr liefert hier so eine Monster Performance ab. Das war Riesen Arbeit. Erstmal vielen Dank dafür. Werde erst am Freitag dazu kommen das zu testen und gebe auf jeden Fall feedback.
Nochmals Danke
Stefan
AW: Felder zusammenfassen
03.03.2011 13:30:57
pastinake
Hallo Stefan,
hier noch eine Möglichkeit. Gefällt mir pers. besser als mein erster. Schau Dir mal das Ergebnis an. Hatte ich Dich so richtig verstanden ?
Sub Zusammenfassen()
Dim rngB As Range, zelle As Range, rngST As Range
Dim strText As String
Set rngB = Sheets("Tabelle1").Range(Cells(2, 1), Cells(Application.Rows.Count, 1).End(xlUp))
For Each zelle In rngB
Set rngST = rngB.Find(zelle, zelle, xlValues, xlWhole)
If Not rngST.Row  zelle.Row
If Not rngST.Row 
  • SpalteA SpalteB Ergebnis
    1 guten guten tag das Forum
    1 tag
    1 das
    3 ist ist test von Hans W. Herber
    2 ein
    3 test
    5 für für das und
    5 das
    4 wirklich
    6 schöne
    5 und
    8 sehr
    7 schnell schnell Excel
    9 reagierende
    7 Excel
    1 Forum
    3 von
    3 Hans W. Herber

  • Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige