Seit uralten DOS-Zeiten verwendet MS in allen Programmen einen rein
zeichenorientierten Sortier-Algorithmus.
Ich habe dadurch immer wieder besonders in Excel das Problem, daß ein
Sortieren nach Texten wie z.B. ABC1, ABC2, ABC11, ABC3 etc. zu höchst
unerfreulichen Ergebnissen führt (ABC1,ABC11,ABC2,ABC3).
Zahlen werden als Einzelzeichen und nicht als zusammenhängende Zahl
interpretiert und damit falsch sortiert.
Da ich mir nicht vorstellen kann, daß ich der Einzige mit diesem Problem
bin, hoffe ich, daß es irgendwo bereits eine Lösung dafür gibt.
Wer kann mir weiterhelfen? Danke!
mfg Horst
Horst Poleschinski <horst.pol...@chello.at> schrieb in im
Newsbeitrag: OCegNeu...@cppssbbsa02.microsoft.com...
Natürlich habe ich auch schon versucht, innerhalb von Excel irgendetwas
zusammenzustricken. Aber wie du ganz richtig feststellst, ist alles, was da
möglich wäre, immer einzelfallbezogen und damit nicht brauchbar.
Da gerade Sortierroutinen ziemlich rechenintensive Programme sind, kann
meiner Meinung nach die wirkliche Lösung nur ein eigenes, in C
geschriebendes, Sortierprogramm sein, das Text weiterhin zeichenweise
verwertet, bei Ziffern aber Folgeziffern solange weiter scannt, bis die Zahl
vollständig ist, und diese Zahl dann für die weitere Sortierung verwendet.
Das Programm müßte so universell sein, daß Ziffernfolgen an jeder beliebigen
Stelle des Textes und auch mehrfach vorkommen können. Dieses Programm könnte
man dann als AddIn in Excel-Makros oder auch anderen Office-Anwendungen, ja
sogar im Betriebssystem (z.B. Sortierung von Dateinamen), verwenden.
Eigentlich wäre das ein Fall für eine sinnvolle Erweiterung seitens
Microsoft.
Ich hoffe jedoch noch immer, daß es so etwas irgendwo schon gibt.
Ich kenne die trickreichen Abkürzungen in Newsgruops noch nicht so genau.
Deshalb die Frage: Was bedeutet IMHO?
mfg Horst
Ullrich Schwarz <Ullrich...@gmx.de> schrieb in im Newsbeitrag:
8o8qqf$a3k8l$2...@ID-7341.news.cis.dfn.de...
> Hallo Horst,
> IMHO gibt es in Excel nur die Möglichkeit, Einzelbestandteile des
> Textes per Formel in Hilfsspalten zu übernehmen und nach diesen zu
> sortieren. Wie das konkret gemacht wird, ist abhängig von der
> Struktur des Textes. Alternativ könnte man sich vielleicht noch ein
> Makro zusammenbasteln, aber auch das wird nur einzelfallbezogen
> funktionieren.
> MfG Ullrich
>
>
> Horst Poleschinski <horst.pol...@chello.at> schrieb in im
> Newsbeitrag: OCegNeu...@cppssbbsa02.microsoft.com...
> >
IMHO In My Humble Opinion
= meiner unbedeutenden Meinung nach..
Siehe zB:
http://www.detebe.org/3.14/yabla.txt
http://userpage.fu-berlin.de/~oheiabbd/veramain.cgi
MfG Ullrich
Horst Poleschinski <horst.pol...@chello.at> schrieb in im
Newsbeitrag: u4bOAB5...@cppssbbsa02.microsoft.com...
das läßt sich nur vernünftig lösen, in dem Du ABC01, ABC02, ABC11 ...
verwendest, also mit führenden Nullen auffüllst.
Lutz
"Horst Poleschinski" <horst.pol...@chello.at> schrieb im Newsbeitrag
news:u4bOAB5...@cppssbbsa02.microsoft.com...
| Natürlich habe ich auch schon versucht, innerhalb von Excel irgendetwas
| zusammenzustricken. Aber wie du ganz richtig feststellst, ist alles, was
da
| möglich wäre, immer einzelfallbezogen und damit nicht brauchbar.
Wäre ein C-Lösung nicht auch einzelfallbezogen? Ich denke, das ließe sich
dann genauso in VBA realisieren.
| Das Programm müßte so universell sein, daß Ziffernfolgen an jeder
beliebigen
| Stelle des Textes und auch mehrfach vorkommen können. Dieses Programm
könnte
| man dann als AddIn in Excel-Makros oder auch anderen Office-Anwendungen,
ja
| sogar im Betriebssystem (z.B. Sortierung von Dateinamen), verwenden.
| Eigentlich wäre das ein Fall für eine sinnvolle Erweiterung seitens
| Microsoft.
Unter der Voraussetzung, daß die zu sortierende Tabelle nicht aus 256
Spalten besteht, hast Du ziemlich genau (256 - LetzteSpalte) Möglichkeiten,
einen String in die entsprechende Anzahl (alpha-)numerischen Bestandteile zu
zerlegen und anschließend nach diesen Spalten zu sortieren.
| Ich hoffe jedoch noch immer, daß es so etwas irgendwo schon gibt.
Eine gängige und allseits genutzte Möglichkeit ist wie immer ein numerischer
Teil mit fester Länge, der links mit Nullen aufgefüllt ist. Wo ich dieses
gerade schreibe, fällt mir zu meiner obigen Lösung ein, daß Du nur eine(!)
Sortierspalte brauchst, wenn Du die "unnormierten" Werte vorher normierst.
ABC1 -> ABC001
ABC12 -> ABC012
ABC123 -> ABC123
ABC2 -> ABC002
Dein VBA-Programm müßte "nur" so intelligent sein, die richtige feste Länge
des Dezimalteils in einem String zu ermitteln. Um einen Anfang zu finden,
könnte man wohl einige Paramter an die VBA-Routine übergeben, mit der man
Offsets und Längen vorgeben kann.
mfg
Jörg
Horst Poleschinski <horst.pol...@chello.at> schrieb in im Newsbeitrag:
OCegNeu...@cppssbbsa02.microsoft.com...
>
Heiner Berghoff <heiner....@cityweb.de> schrieb in im Newsbeitrag:
8p0t41$ca3$1...@news.cityweb.de...
> hier muß ich Dich leider korrigieren;
Hallo Heiner!
Tut mir leid, Du hast recht!
Ich war wohl etwas zu oberflächlich beim Ausprobieren. :-]
Aber das Problem mit der Listen-Eingabe habe ich leider trotzdem.
mfg Horst