Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Automatische Sortierung ohne Leerzeichen

660 views
Skip to first unread message

Muersel Inan

unread,
Jun 9, 2007, 5:03:25 AM6/9/07
to
Hallo Zusammen,

habe eine Exceltabelle mit ca. 24.000 Einträgen in Spalte A. Es sind nicht
alle Zeilen durchgehend mit Werten gefüllt. In Spalte B soll exakt diese
Liste ohne Leezeichen dargestellt werden. Allerdings dürfen in Spalte B
keine Leerzeilen entstehen.Dadurch verschiebt sich natürlich die Position
der einzelnen Inhalte.
Eine Manuelle Sortierung, Pivottabelle oder ein VBA Programm ist nicht
möglich!

Ausganssituation Ziel
A B

2 Apfel Apfel
3 Birne Birne
4 Apfel
5 Apfel Karotte
6 Karotte Apfel
7
8
9 Apfel
10
...

Vielleicht hat jemand eine Idee. Für eine Ausführlich Erklärung wäre ich
dann auch sehr dankbar.
Vielen Dank im Voraus

Gruß


Ulli Tolksdorf

unread,
Jun 9, 2007, 5:13:06 AM6/9/07
to
Hi!

Ein VBA Programm "ist nicht möglich?" sicher?

Ansonsten folgender Vorschlag:

Liste in eine neue Tabelle kopieren.
Mit einer Nummerierung versehen.

Liste anhand Spalte "A" (also apfel, birne) sortieren.
dann allen alle leeren Zeilen auf einmal an.

Diese löschen

dann nach der nummerierung sortieren.

danach nur noch die jetzt perfekte Spalte in die eigentliche Tabelle
in die Spalte B zurückkopieren.

So würde ich das zumindest jetzt machen.

Gruß
Ulli.

Muersel Inan schrieb:

Klaus "Perry" Pago

unread,
Jun 9, 2007, 6:05:24 AM6/9/07
to

"Muersel Inan" <Mue...@Inan.de> schrieb im Newsbeitrag
news:Ogn3TSnq...@TK2MSFTNGP05.phx.gbl...

> Hallo Zusammen,
>
> habe eine Exceltabelle mit ca. 24.000 Einträgen in Spalte A. Es sind nicht
> alle Zeilen durchgehend mit Werten gefüllt. In Spalte B soll exakt diese
> Liste ohne Leezeichen dargestellt werden. Allerdings dürfen in Spalte B
> keine Leerzeilen entstehen.Dadurch verschiebt sich natürlich die Position
> der einzelnen Inhalte.
> Eine Manuelle Sortierung, Pivottabelle oder ein VBA Programm ist nicht
> möglich!
>
> Ausganssituation Ziel
> A B
>
> 2 Apfel Apfel
> 3 Birne Birne
> 4 Apfel
> 5 Apfel Karotte
> 6 Karotte Apfel
> 7
> 8
> 9 Apfel
> 10
> ...
>

Hallo Muersel,

folgende Matrixformel könnte helfen:

B2:
=WENN(ZEILE(A1)<=ANZAHL2($A$2:$A$25000);INDEX($A$2:$A$25000;KKLEINSTE(WENN($A$2:$A$25000<>"";ZEILE($1:$24999));ZEILE(A1)));"")

mit STRG+SHIFT+RETURN eingeben (sonst klappt es nicht) und beliebig nach
unten kopieren.

Gruß
Klaus


Wolfgang Habernoll

unread,
Jun 9, 2007, 10:33:16 AM6/9/07
to
Hallo

"Muersel Inan" <Mue...@Inan.de> schrieb im Newsbeitrag
news:Ogn3TSnq...@TK2MSFTNGP05.phx.gbl...

du könntest den Autofilter einsetzen.
- markiere Spalte A ( laß sie markiert) dann
- Daten->Filter->Autofilter
- wähle im Filter "Benutzerdefiniert" -> "entspricht nicht" und im
Feld daneben *nichts* auswählen, also leer lassen
- nun da Spalte A noch markiert ist gleich mit Strg+C kopieren
- und in B1 mit Strg+V einfügen
- Markierung mit "ESC" aufheben und Filter auf alle stellen

--
mfG
Wolfgang Habernoll

[ Win XP Home SP-2 , XL2002 ]


Lisa Wilke-Thissen

unread,
Jun 9, 2007, 11:08:10 AM6/9/07
to
Hallo,

"Wolfgang Habernoll" schrieb im Newsbeitrag
news:f4ednr$r94$00$1...@news.t-online.com...

>> habe eine Exceltabelle mit ca. 24.000 Einträgen in Spalte A. Es sind
>> nicht alle Zeilen durchgehend mit Werten gefüllt. In Spalte B soll exakt
>> diese Liste ohne Leezeichen dargestellt werden. Allerdings dürfen in
>> Spalte B keine Leerzeilen entstehen.
>> Dadurch verschiebt sich natürlich die Position der einzelnen Inhalte.

[...]


> du könntest den Autofilter einsetzen.

alternativ könnte man in Spalte A auch die gefüllten Zellen markieren (z.
B.: F5 | Inhalte | Konstanten), diese per Strg+C kopieren und in Spalte B
über "Inhalte einfügen | Leerzellen überspringen" einfügen. Damit wären aber
die Leerzeichen noch nicht entfernt (dazu würde evtl. die Funktion SÄUBERN()
benötigt) und als "automatisch" könnte man die Vorgehensweise auch nicht
bezeichnen.
Außerdem hat der OP seine Excelversion nicht genannt :-(

--
Viele Grüße

Lisa
MS MVP Word

Bernd

unread,
Jun 9, 2007, 12:22:58 PM6/9/07
to
Hallo Muersel,

ich nehme auch einmal an, dass Deine Daten in Spalte A erst ab Zeile 2
beginnen.

Nun empfehle ich eine Hilfsspalte B: Lass' B1 leer und gib' in B2 ein:
=WENN(ISTLEER(A2);B1;B1+1)
Kopiere B2 hinunter bis B24000.

Und dann in Zelle C2:
=INDEX($A$2:$A$24000;VERGLEICH(ZEILE()-1;$B$2:$B$24000,0))

Jetzt kopiere C2 so weit hinunter wie nötig.

Die Erklärung: In der Hilfsspalte B wird gezählt, wieviel nichtleere
Einträge in der Spalte A bis dahin vorhanden sind. Und in Spalte C
sucht die VERGLEICH-Funktion genau den richtigen Eintrag für die
Positionsnummer in B und verweist schließlich mit der korrekten
relativen Position in der INDEX-Funktion auf die Spalte A.

Viele Grüße,
Bernd

Klaus "Perry" Pago

unread,
Jun 9, 2007, 12:37:14 PM6/9/07
to

"Bernd" <bplu...@gmail.com> schrieb im Newsbeitrag
news:1181406178.8...@n4g2000hsb.googlegroups.com...

Hallo Bernd,

> Und dann in Zelle C2:
> =INDEX($A$2:$A$24000;VERGLEICH(ZEILE()-1;$B$2:$B$24000,0))

raffiniert!
Das Komma müsste noch ein Semikolon werden.

Gruß
Klaus


Eberhard Funke

unread,
Jun 9, 2007, 3:05:42 PM6/9/07
to


Hallo Muersel,

kopiere Spalte A nach B
Taste F5 --> Inhalte --> Leerzellen markieren.
Menü Bearbeiten --> Zellen löschen --> nach oben verschieben.

Das kannst Du natürlich auch direkt in Spalte A machen, wenn diese nicht im
Originalzustand erhalten bleiben muss.

--
Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de

Eberhard Funke

unread,
Jun 9, 2007, 3:57:51 PM6/9/07
to
Am Sat, 9 Jun 2007 21:05:42 +0200 schrieb Eberhard Funke:

Gerade sehe ich, das ist ganz nahe an Lisa's Vorschlag.
Ich habe "Liste ohne Leezeichen" als Liste ohne LeerZELLEN gelesen und
nehme an, dass der OP das auch so gemeint hat.

Bernd

unread,
Jun 9, 2007, 5:03:43 PM6/9/07
to
Hallo Klaus,

Danke! Du kennst mein Dilemma ja bereits: Ich teste in der englischen
Version und vergesse regelmäßig, alle Namen und Kommata umzustellen.

Aber, und dies nimmst Du mir bitte nicht übel: diese Version läuft
etwa 15x schneller als Deine Matrixlösung :-)

Viele Grüße,
Bernd

Klaus "Perry" Pago

unread,
Jun 9, 2007, 5:48:04 PM6/9/07
to

"Bernd" <bplu...@gmail.com> schrieb im Newsbeitrag
news:1181423023.7...@g4g2000hsf.googlegroups.com...

Hallo Bernd,

> Danke! Du kennst mein Dilemma ja bereits: Ich teste in der englischen
> Version und vergesse regelmäßig, alle Namen und Kommata umzustellen.

ja - ich hatte es auch als Flüchtigkeitsfehler erkannt.

> Aber, und dies nimmst Du mir bitte nicht übel: diese Version läuft
> etwa 15x schneller als Deine Matrixlösung :-)

Tja, was soll ich sagen - als alter Matrixler benutze ich halt
Matrixformeln. Diese sind manchmal nicht leichter auszutüfteln als
Hilfsspaltenlösungen. Wobei die Lösung von Eberhard, Excel-Bordmittel zu
benutzen, mir optimal erscheint.

Die Nachteile von Matrixformeln sind mir natürlich bekannt. Meine
Matrixformel wertet 24.999 Zellen gleichzeitig aus, und das für jede
Ergebniszelle. In dieser Größenordnung werden Matrixformeln grottenlangsam.
Bei 24.000 Werten in Spalte A und eine herunterkopierte Formel von B2 bis
B10000 dauerte die Auswertung bei mir ca 6 Minuten (P4 3 GHz).

Trotzdem hat sie für mich einen gewissen Reiz: wenn die Ausgabe nicht über
viele Zellen erfolgen müsste, wäre die Aufgabe in einer Zelle mit einer
Formel gelöst.

Gruß
Klaus


Message has been deleted

Eberhard Funke

unread,
Jun 10, 2007, 3:56:36 PM6/10/07
to
Am Sat, 09 Jun 2007 14:03:43 -0700 schrieb Bernd:

> Hallo Klaus,
>
%<

> Aber, und dies nimmst Du mir bitte nicht übel: diese Version läuft
> etwa 15x schneller als Deine Matrixlösung :-)
>
> Viele Grüße,
> Bernd

Hallo Bernd,

der Weg ist das Ziel ;-)

0 new messages