Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Werte aus Zellen einer Spalte auslesen

Werte aus Zellen einer Spalte auslesen
02.06.2008 10:33:00
Konni
Hallo Freaks,
mit der Recherche im Archiv habe ich leider nichts gefunden.
Folgendes Problem:
In meiner Tabelle habe ich z.B. in Spalte A Objektnummern, in Spalte B dazugehörige Positionsnummern und in Spalte C Begründungen zu den einzelnen Positionen -
-A- -B- -C-
-3- -1- -2.3-
-3- -2- -2.3-
-3- -3- -2.5-
-5- -1- -6.1-
-5- -2- -2.6-
-6- -1- -2.2-
-7- -1- -2.3-
-7- -2- -2.3-
-7- -3- -2.2-
-7- -4- -2.6-
Nun möchte ich alle unterschiedlichen Werte aus -C- (Zellen sind als Text formatiert) zur Objektnummer (variabel) aus -A- in einer anderen Zelle (z.B. D1), getrennt durch Kommata, aufzählen lassen. Doppelnennungen sollen bei gleicher Objektnummer dabei nicht vorkommen.
Vielen Dank für Eure Unterstützung!
Gruß: Konni

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Ergänzung: Werte aus Zellen einer Spalte auslesen
02.06.2008 10:48:00
Konni
Hallo Freaks,
habe eine Veranschaulichung des Ergebnisses aus 4 verschiedenen Objektnummern vergessen:
D1 = 2.3, 2.5,
D2 = 6.1, 2.6,
D3 = 2.2,
D4 = 2.3, 2.2, 2.6,
Maximal sind es bei mir bis zu 8 verschiedene Objektnummern.
Vielen Dank und Gruß: Konni

Wahrscheinlich hast du recht, aber andererseits...
02.06.2008 11:04:13
Luc:-?
...könnte doch etwas im Archiv zu finden sein, Konni!
Ist bloß so 'ne Sache mit der Recherche... Bei Clever hatte ich neulich ein ähnliches Problem gelöst.
Wenn in A alles so regelmäßig steht wie in deinem Bsp, sollte die Lösung nicht allzu schwer sein...
Zuerst musst du dich entscheiden, in welchen Zeilen von D die zusamengefassten C-Werte ausgegeben wdn sollen - in allen, nur der jeweils ersten bzw jeweils letzten. Davon hängt schon mal die Formel ab. Schließlich muss die Fml die Zellen des Wertwechsels in A erkennen (WENN) und so dynamisch den jeweils zusammenzufassenden Zeilenbereich von C bestimmen. Das könnte bei deinem Aufbau fortlfd geschehen, wenn das Ergebnis kumulativ sein soll, d.h., solange der Wert in A nicht wechselt wird zum Wert der Vorgängerzeile von C der Wert der Zeile hinzugefügt (mit Operator &), wenn der Wert der C-Zeile ≠ Wert der C-Vorgängerzeile ist. In der letzten Zeile vor Wechsel in A stehen dann alle Werte (&"," jeweils voranstellen). Die anderen, unvollständigen Zeilenwerte können dann über die bedingte Formatierung "unsichtbar" formatiert wdn. Mit etwas mehr Aufwand ist auch noch Eleganteres möglich, aber dazu habe ich gerade keine Zeit. Probier mal!
Gruß Luc :-?

Anzeige
Unter der Voraussetzung, dass die Daten...
02.06.2008 14:06:05
Luc:-?
...nach Spalte A und darunter nach C sortiert vorliegen (was bzgl C hier nicht der Fall zu sein scheint), Konni,
bietet sich hier analog dem zuvor von mir Geschriebenen folgende einfache Lösung an...
D2[:D16] - Formel (): =WENN(A2=A1;D1&WENN(C2=C1;"";", "&C2);C2) - Bed1 :=$A2=$A3 - Schriftfarbname (): Auto, bedingt: Weiß
D.h., Formel in D2 eintragen (wenn das die 1.Zelle ist, sonst Fml entsprechend ändern!) und bis zur letzten Zelle von D (hier D16) runterziehen nachdem zuvor auch die bedingte Formatierung in D2 (hier Bed1 :) mit der genannten Schriftfarbe angelegt wurde.
Die Zusammenfassung ist dann immer in der letzten Zeile vor Wechsel in A sichtbar.
Gruß Luc :-?
PS: Wen es interessiert - die Formelzeile (hier aus A18) wurde mit folgender, 2 udF enthaltender Formel wiedergegeben: =RAddress(D2)&"[:"&RAddress(D16)&"] - "&WECHSELN(WECHSELN(CellContIn(D2;1;;"Formel");18;2);19;3)&" - "&CellContIn(D2;;;"Schriftfarbname")

Anzeige
AW: Verstehe nur Bahnhof
02.06.2008 16:45:00
Konni
Hallo Luc,
ich verstehe nur Bahnhof! Sei mir nicht böse!
Gruß: Konni
P.S.
Hier im Forum gefunden und modifiziert:

Sub Doppelte_Einträge_in_Spalte_löschen() 'Doppelte Werte in Spalte AP werden gelöscht '
Dim iRow As Integer
For iRow = Range("AP19").CurrentRegion.Rows.Count To 2 Step -1
If Cells(iRow, 42) = Cells(iRow - 1, 42) Then
Cells(iRow, 42).ClearContents
End If
Next iRow
End Sub


Das Ganze funktioniert zwar, aber meine Formel in AP18 (brauche ich zum kopieren) wird dabei auch gelöscht.
Ich habe aber 8 Spalten, wo der Code laufen soll und zwar von AP(42) bis einschl. AW(49) ab Zeile 19.
Wichtig:
In den anderen Spalten sind mehre Zeilen ab Zeile 19 leer. Vorstehender Code funktioniert also nur, wenn in Zeile 19 und in der betreffenden Spalte ein Eintrag vorhanden ist.
Wie muss der Code umgestrickt werden, dass Duplikate erst ab Zeile 19 in allen 8 Spalten gelöscht werden?
Ich bekomme das nicht hin. - Vielleicht erbarmt sich jemand hier!
Viele Grüße: Konni

Anzeige
Das ist ganz allein dein Problem,...
03.06.2008 01:41:00
Luc:-?
...Konni!
Ich habe dir eine einfache Formellösung gegeben! Von VBA und Makro war in deiner Anfrage nicht die Rede.
Ein derartiges Missverständnis wäre vermeidbar gewesen, wenn du mehr Sorgfalt auf die Abfassung deiner Anfrage verwendet hättest! Auch klingt das, was du hier schreibst, ganz anders als deine Auftaktfrage... :-(
Oder bist du etwa mit deinen Anfragen durcheinandergekommen und bist selbst im falschen Thread...?
Im Übrigen hab ich was gg "CodeKids", die sich irgenwie und irgendwo irgendwelche PgmCodes zusammensuchen und dann vom Forum an ihre Bedürfnisse anpassen lassen wollen, weil sie selber keine Ahnung haben. Wie willst du denn etwas, was du nicht verstehst, im Beruf verantworten? Da könnte ja sonst was in einem Makro stehen - du würdest die Folgen sicher kaum abschätzen können!
Gruß Luc :-?

Anzeige
Lösung, aber kann jemand Code beschleunigen?
02.06.2008 18:44:31
Konni

Sub Doppeleinträge_aus_Spalten_löschen()
ScreenUpdating = False
Dim r, c As Variant
With Range("AP19:AP1018").Select
Set r = Selection.Cells
For c = r.Cells.Count To 1 Step -1
If Application.CountIf(r, r(c))  1 Then r(c).Value = ""
Next c
End With
With Range("AQ19:AQ1018").Select
Set r = Selection.Cells
For c = r.Cells.Count To 1 Step -1
If Application.CountIf(r, r(c))  1 Then r(c).Value = ""
Next c
End With
With Range("AR19:AR1018").Select
Set r = Selection.Cells
For c = r.Cells.Count To 1 Step -1
If Application.CountIf(r, r(c))  1 Then r(c).Value = ""
Next c
End With
With Range("AS19:AS1018").Select
Set r = Selection.Cells
For c = r.Cells.Count To 1 Step -1
If Application.CountIf(r, r(c))  1 Then r(c).Value = ""
Next c
End With
With Range("AT19:AT1018").Select
Set r = Selection.Cells
For c = r.Cells.Count To 1 Step -1
If Application.CountIf(r, r(c))  1 Then r(c).Value = ""
Next c
With Range("AU19:AU1018").Select
Set r = Selection.Cells
For c = r.Cells.Count To 1 Step -1
If Application.CountIf(r, r(c))  1 Then r(c).Value = ""
Next c
End With
With Range("AV19:AV1018").Select
Set r = Selection.Cells
For c = r.Cells.Count To 1 Step -1
If Application.CountIf(r, r(c))  1 Then r(c).Value = ""
Next c
End With
With Range("AW19:AW1018").Select
Set r = Selection.Cells
For c = r.Cells.Count To 1 Step -1
If Application.CountIf(r, r(c))  1 Then r(c).Value = ""
Next c
End With
End With
Application.CutCopyMode = False
Range("O19").Select
ScreenUpdating = True
End Sub


Viele Grüße: Konni

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte aus Zellen einer Spalte auslesen in Excel


Schritt-für-Schritt-Anleitung

Um die unterschiedlichen Werte aus der Spalte C in Excel auszulesen und in einer anderen Zelle, zum Beispiel D1, aufzulisten, kannst du die folgende Formel verwenden:

  1. Angenommen, deine Daten beginnen in Zeile 2. In D2 trägst du folgende Formel ein:
    =WENN(A2=A1;D1&WENN(C2=C1;"";", "&C2);C2)
  2. Ziehe die Formel bis zur letzten Zeile deiner Daten nach unten.
  3. Stelle sicher, dass die Zellen in Spalte C als Text formatiert sind, um Probleme zu vermeiden.

Diese Methode hilft dir, die Werte in einer Excel-Spalte auszulesen und sie in D1 zu aggregieren, ohne doppelte Einträge.


Häufige Fehler und Lösungen

  • Fehler: Doppelte Einträge in D1

    • Lösung: Stelle sicher, dass du die Formel korrekt anwendest. Überprüfe, ob die Zellen in Spalte C tatsächlich unterschiedliche Werte haben.
  • Fehler: Die Formel funktioniert nicht, wenn die Daten nicht sortiert sind

    • Lösung: Sortiere die Daten zuerst nach Spalte A und dann nach Spalte C, um die Formel effektiv nutzen zu können.

Alternative Methoden

Wenn du lieber mit Excel VBA arbeiten möchtest, kannst du den folgenden Code verwenden, um die doppelten Einträge in einer Spalte zu löschen:

Sub Doppelte_Einträge_in_Spalte_löschen()
    Dim iRow As Integer
    For iRow = Range("AP19").CurrentRegion.Rows.Count To 2 Step -1
        If Cells(iRow, 42) = Cells(iRow - 1, 42) Then
            Cells(iRow, 42).ClearContents
        End If
    Next iRow
End Sub

Dieser Code löscht doppelte Werte in der Spalte AP ab Zeile 19. Du kannst ihn anpassen, um andere Spalten zu bearbeiten.


Praktische Beispiele

Für die Werte aus deiner Tabelle könnte eine mögliche Zusammenstellung für D1 folgende sein:

  • Wenn du in Spalte A die Objektnummer 3 hast, könnte D1 folgendes ausgeben: 2.3, 2.5
  • Für die Objektnummer 5 in D2: 6.1, 2.6
  • D3 könnte 2.2 ausgeben, während D4 2.3, 2.2, 2.6 anzeigen könnte.

Tipps für Profis

  • Verwende die Funktion UNIKAT() in Excel (ab Excel 365), um schnell einzigartige Werte aus einer Liste zu extrahieren.
  • Eine weitere Möglichkeit zur Fehlerbehebung ist die Nutzung der WENNFEHLER()-Funktion, um sicherzustellen, dass deine Formeln auch bei unerwarteten Eingaben stabil bleiben.

Beispiel:

=WENNFEHLER(WENN(A2=A1;D1&...); "Fehler")

FAQ: Häufige Fragen

1. Frage: Kann ich die Formel auch für andere Spalten verwenden? Antwort: Ja, passe einfach die Zellverweise entsprechend an, um die Werte aus anderen Spalten auszulesen.

2. Frage: Wie kann ich sicherstellen, dass die Daten korrekt formatiert sind? Antwort: Überprüfe die Formatierung der Zellen in den betreffenden Spalten und stelle sicher, dass sie als Text formatiert sind, um unerwünschte Fehler zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige