Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel: Aggregieren von Daten





Frage

Hallo! Ich hab in einer Spalte gaaanz viele Daten (Text -> Ortsnamen) stehen, die mehr als einmal vorkommen. Die möchte ich gern aggregrieren, d.h. eine Spalte mit jedem Ortsnamen, allerdings nicht mehrfach, sondern nur einmal. Geht das? Gruß Tom

Antwort 1 von fürLau

Hallo
Zitat:
gaaanz viele Daten (Text -> Ortsnamen) stehen,
Excel kann derzeit standardmäßig nur 256 Spalten... ob das reicht?
Gruß[h3]{[h1]Ó¤[sup...fürLau
Signatur wurde ganz und gar ohne SNTool erstellt.

Antwort 2 von TRH

OK, zur Präzisierung:
Es handelt sich um eine Spalte, in der untereinander in den einzelnen Zeilen die jeweiligen Ortsnamen stehen (pro Zelle ein Ortsname).
Dachte eigentlich, dass sich das jedeR selber denken könnte, aber nu...

Vielleicht gibts ja auch noch fachbezogene Antworten, die mich irgendwie weiterbringen...

Gruß Tom

Antwort 3 von nighty

hi ihr :)

hier auch der hinweis zu quattro pro das etwas bessere excel,1 000 000 spalten/1 000 000 zeilen

gruss nighty

Antwort 4 von powie_ohne_keks

Zitat:
Dachte eigentlich, dass sich das jedeR selber denken könnte, aber nu...

Vielleicht gibts ja auch noch fachbezogene Antworten, die mich irgendwie weiterbringen...


wenn ich sowas nur schon lese.............zweifle ich ernsthaft, ob Dir "andere" noch helfen werden.

*ich werd mich an diesen ton NICHT gewöhnen, auch wenns ne menge leute hier gibt, die das so wünschen*

astaluego

Antwort 5 von CaroS

Hallo TRH,

soll das in derselben Spalte stattfinden, in der die Ortsnamen schon stehen? Dann müsste das über Filtern (oder Sortieren, Gruppieren, Ausblenden) laufen.
Oder willst Du alle Deine Ortsnamen in einer weiteren Spalte - jeden nur einmal - angezeigt bekommen? Dafür könnte man eine Formel finden.
Die Originalwerte sollen ja wohl in beiden Fällen erhalten bleiben?

Man weiß eben nicht so genau, was mit "aggregieren" gemeint ist. Vielleicht hat deshalb bisher noch niemand Deine Frage beantwortet.

Gruß,
CaroS

Antwort 6 von TRH

Hallo!

Oder willst Du alle Deine Ortsnamen in einer weiteren Spalte - jeden nur einmal - angezeigt bekommen?

Genau das wäre so mein Ziel.

Die Originalwerte sollen ja wohl in beiden Fällen erhalten bleiben?

Genau.

Falls da also jemand eine Idee hat, wäre ich dankbar für Infos.

Antwort 7 von CaroS

Hallo TRH,

noch ´ne Frage: Sind die Ortsnamen in der Spalte alphabetisch sortiert? (Wenn ja sicherlich auftseigend, A - Z.)
Oder kann man die Spalte sortieren und die Sortierung auch im Falle von Änderungen/Ergänzugen gewährleisten oder wiederholen?

Sollten die Antworten ´ja´ lauten, wird eine Formellösung etwas einfacher, bei ´nein´ ist im schlimmsten Fall eine Hilfsspalte nötig. (Alternative: VBA)

Gruß,
CaroS

Antwort 8 von fürLau

Hallo
hier die VBA Lösung;
Kopiere nachstehenden Code in ein Modul und starte das Makro mit Extras | Makro | Makros.. | ausführen. Dies ist auch noch detailierter unter www.excelbeispiele.de Anleitungen Nr.3 nachzulesen.
Option Explicit

Sub Orte_aggregieren()
Dim spalte%, i%, zeile As Long: Rem Weil "gaaaanz" Viele ;*)
spalte = 3: Rem ab Spalte C
ActiveSheet.Cells(1, spalte).Value = ActiveSheet.Range("A2").Value
spalte = spalte + 1
Rem In jeder Zeile der Spalte A
For zeile = 3 To Range("A65536").End(xlUp).Row
Rem in Spalte 3(C) bis Ende beschriebene Zellen in Zeile 1
For i = 3 To ActiveSheet.Range("IV1").End(xlToLeft).Column
If ActiveSheet.Cells(zeile, 1).Value = ActiveSheet.Cells(1, i).Value Then
Exit For
End If
Next
If i = spalte Then
Rem Nicht gefunden ergänzen
ActiveSheet.Cells(1, spalte).Value = ActiveSheet.Cells(zeile, 1).Value
spalte = spalte + 1
End If
Next
End Sub


Gruß[h3]{[h1]Ó¤[sup...fürLau
Signatur wurde ganz und gar ohne SNTool erstellt.

Antwort 9 von CaroS

Hallo TRH,

hier erstmal eine kleine Matrixformel, die genau das macht, was Du willst. (Leider nur kopiert und nicht von mir. So wie ich es machen wollte, krieg ich´s im Moment einfach nicht hin.)

{=WENN(SUMME(WENN(A$1:A$100="";0;1/ZÄHLENWENN(A$1:A$100;A$1:A$100))) < ZEILE();"";INDIREKT("A"& KKLEINSTE(WENN(ZÄHLENWENN(BEREICH.VERSCHIEBEN(A$1;;;ZEILE($1:$100));A$1:A$100)=1;ZEILE($1:$100));ZEILE(A1))))}

Markiere neben der Spalte mit den Ortsnamen nur eine Zelle, kopiere die Formel ohne die {}-Klammern in die Formelzeile (oder entferne sie dort), ändere A$1:A$100 in den Bereich, in dem bei Dir die Ortsnamen stehen (die Zeilenzahl kann auch größer gewählt werden, auf Vorrat sozusagen) und drücken dann Strg + Umschalt + Eingabe.

Wenn die Formel in der Formelzeile nun in {}-Klammern eingeschlossen ist, kannst Du die Zelle so weit wie nötig nach unten ziehen/kopieren. Nachdem alle vorhandenen Namen einmal angezeigt wurden, folgen nur noch leere Werte "".

Gruß,
CaroS

Antwort 10 von TRH

Hallo!

Besten Dank für die Hilfe!

Noch einen schönen Feierabend
Gruß Tom

Antwort 11 von TRH

...wobei mir gerade auffällt, dass bei der ersten Lösung (Makro), die Orte nebeneinander in die Zeilen aggregiert werden.
Was müsste man am Makro ändern, damit die untereinander stehen?

Jetzt wird mir auch die anfängliche Verständnisschwierigkeit klar; sorry für die etwas unklare Problembeschreibung...

Antwort 12 von fürLau

Hallo
Zitat:
Die möchte ich gern aggregrieren, d.h. eine Spalte mit jedem Ortsnamen,

Hab´ ich zunächst anders interpretiert.Der geänderte Code schreibt die Aggregate in Spalte D (4) untereinander:

Option Explicit

Sub Orte_aggregieren()
Dim zeile2%, i%, zeile As Long: Rem Weil "gaaaanz" Viele ;*)
zeile2 = 2: Rem ab zeile2 C
ActiveSheet.Cells(zeile2, 4).Value = ActiveSheet.Range("A2").Value
zeile2 = zeile2 + 1
Rem In jeder Zeile der zeile2 A
For zeile = 3 To Range("A65536").End(xlUp).Row
Rem in Spalte 4(D) bis Ende beschriebene Zeilen
Cells(zeile, 1).Select
For i = 2 To ActiveSheet.Range("D65536").End(xlUp).Row
Cells(zeile, 1).Select
Cells(i, 4).Select
If ActiveSheet.Cells(zeile, 1).Value = ActiveSheet.Cells(i, 4).Value Then
Exit For
End If
Next
If i = zeile2 Then
Rem Nicht gefunden ergänzen
ActiveSheet.Cells(zeile2, 4).Value = ActiveSheet.Cells(zeile, 1).Value
zeile2 = zeile2 + 1
End If
Next
End Sub


Gruß[h3]{[h1]Ó¤[sup...fürLau
Signatur wurde ganz und gar ohne SNTool erstellt.