Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
224to228
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
224to228
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array sortieren

Array sortieren
25.02.2003 13:00:57
Norbi
Hallo,

Kann man einen array sortieren, ähnlich der Zellen einer Tabelle?
Konkreter Fall:

Array1 = 3,45,4,65,5 etc. dazu gehört ein Array2 (wie eine zweite Spalte)
Array2 = A,B,C,D,E
Jetzt möchte ich Array1 und 2 nach Array1 sortieren lassen.
Ergebnis soll lauten:
Array1= 3,4,5,45,65
Array2= A,C,E,B,D

Geht das mit VBA?

Gruß Norbi

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Array sortieren
25.02.2003 13:32:51
Michael Scheffler

Hallo,

schau mal hier:
http://www.mvps.org/vbnet/index.html?code/sort/qsoverview.htm

Gruß

Micha

Re: Array sortieren
25.02.2003 13:52:06
Harald Kapp

Hallo Norbi,
das geht prinzipiell, wenn Du Deine eigene Sortierfunktion schreibst. Dazu müsstest DU eine Funktion schreiben, die z.B. Array1 sortiert. Beim Sortieren werden die Elemente von Array1 getauscht, bis die Sortierreihenfolge erreicht ist. Das Besondere Deiner Funktion wäre nun, das bei jedem Tausch von Elementen in Array1 auch die entsprechenden Elemente in Array2 getauscht werden.

Ein ganz simples und leicht zu verbesserndes Beispiel:

Gruß Harald


Anzeige
Re: Array sortieren
25.02.2003 13:59:48
Hans W. Hofmann

Universeller wäre ein indirekter Sort, d.h. einen Array
a(i)=i
vorbelegen und Array1(a(i)) sortieren und den Tausch aber nur auf a(i) durchführen. Damit vermeide ich ggf. Stringoperationen (Speedy) und kann die Sortierung auch auf andere Arrays übertragen.


Gruß HW

Re: Array sortieren
25.02.2003 14:11:36
Harald Kapp

Hallo Hans,
völlig richtig. War auch nur ein Schnellschuss von mir.

Noch besser fände ich eine Lösung, die die Zusammengehörigkeit der Daten in einer Struktur dokumentiert (a la C oder Pascal), aber ich habe in Excel keine einfache Möglichkeit dafür gefunden. Eine eigene Klasse etc. ist dann doch einwenig aufwendig.

Gruß Harald

Anzeige
Re: Array sortieren
25.02.2003 14:32:30
Norbi

Danke,

ich bin seit einer Stunde dabei, das zu entziffern und zu verstehen, aber langsam klappt es. Hoffentlich bekomme ich das auf meine Makro umgemodelt. Wird etwas dauern.

Gruß

Norbi

Re: Array sortieren
25.02.2003 14:34:08
Norbi

Danke

mal schauen, ob das bei mir klappt. Sieht zumindest einfacher aus, als das was Michael hatte, wobei das von Michael scheinbar schneller läuft.

Gruß

Norbi

Re: Array sortieren
25.02.2003 14:43:08
Logo schneller

Hallo Norbi,
logo, fast jeder Sortieralgorithmus kann schneller sein als mein Hack. Immerhin wächst die Laufzeit bei mir mit n-Quadrat, ein guter Quicksort kommt auf n*log(n) - wenn ich mich recht erinnere. Das Problem dabei ist ja, dass Du keine Sortierroutine aus einer Bibliothek verwenden kannst, da Du das zweite Array in Abhängigkeit vom ersten Array mitführen willst.

Besser fährsst Du wahrscheinlich, wenn Du den Qsort von Michael mit der indirekten Methode von Hans kombinierst. Also die Qsort-routine benutzt, um a(Arry1(i)) zu sortieren. Danach kannst Du entweder Array2 auch sortieren, oder du arbeitest immer mit der indirekten referenzierung, kommt drauf an, was Du mit den sortierten Daten alles anfangen möchtest.

Gruß Harald


Anzeige
Re: Array sortieren
25.02.2003 14:55:48
Hans W. Hofmann

Universeller wäre ein indirekter Sort, d.h. einen Array
a(i)=i
vorbelegen und Array1(a(i)) sortieren und den Tausch aber nur auf a(i) durchführen. Damit vermeide ich ggf. Stringoperationen (Speedy) und kann die Sortierung auch auf andere Arrays übertragen.


Gruß HW

Re: Array sortieren
25.02.2003 15:13:31
Nike

Hi,
also ich muß ja zugeben, mich würde so ne Arrayumsortierungunsorgie schon mal interessieren,
aber an deiner Stelle würde ich die zwei Arrays
nebeneinander auf eine Tabelle ausgeben, nach der jeweiligen
Spalte sortieren lassen und dann wieder einlesen...

Bye

Nike

Re: Array sortieren
25.02.2003 16:46:40
Norbi

Hi Nike,

Du wirst lachen, aber zu dem Ergebnis komme ich auch gerade. Bedeutet zwar einen riesigen Performanceverlust, aber die Zeit dich ich bis jetzt da rein investiert habe ist auch nicht ohne. Vor allem, weil irgendwas schief läuft und ich weiß nicht warum.

Also Dummytabelle einfügen, Daten rein, sortieren, wieder einlesen, Dummytabelle löschen. (Soll ja nicht jeder gleich sehen, wie primitiv ich arbeite)

Gruß Norbi

Anzeige
Re: Array sortieren
25.02.2003 16:49:02
Nike

Hi,
lach nicht, die Sort Algorythmen sind gar nicht so ohne...
also so primitiv bist du gar nicht ;-)

Bye

Nike

Re: Array sortieren
25.02.2003 16:50:16
Norbi

Hi

Danke für die aufmunternden Worte.

CU

Norbi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige