Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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
Inhaltsverzeichnis

Matrix sortieren

Matrix sortieren
26.10.2023 16:37:27
Max
Hallo zusammen,
vielleicht kann mir jemand von euch weiterhelfen.

Ich bräuchte die Schule ein Makros , welche die Werten einer Matrix sortiert. Die Sortierung soll Spaltenweiße erfolgen und die Werte alphabetisch sortiert werden. Tauchen Werte auf, die gleich sind, wie in der vorherigen Spalte, soll dieser Wert in die selbe Zeile verschoben werden. Leere Zeilen sollen übersprungen werden. Ist ein neuer Wert in der Spalte oder ein Wert, der zwar schon mal auftauchte, aber nicht direkt an den vorherigen Wert (benachbarte Spalte) angrenzt, soll dieser in einer neuen Zeile verschoben werden.
Ziel ist es, dass alle gleichen Werte in einer Zeile angeordnet sein sollen (siehe Beispiel):

https://www.herber.de/bbs/user/163835.xlsx

Ich danke euch für eure Hilfe.

Grüße Max

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

Betreff
Datum
Anwender
Anzeige
AW: Matrix sortieren
26.10.2023 16:39:17
Max
Ahhhh, ganz vergessen. Das Makros sollte mit einem CommandButton aktiviert werden.
AW: Matrix sortieren
26.10.2023 17:19:57
onur
Und der Lehrer hat erlaubt, dass Andere deine Aufgabe erledigen?
AW: Matrix sortieren
26.10.2023 16:58:48
Oberschlumpf
Hi Max,

und genau was hast du schon probiert, bei dem wir helfen könnten?
Bis jetzt seh ich nur, dass du eine Tabelle erstellt hast, die - nur wir - für dich mit "Makro-Leben" befüllen sollen.

Und DAS ist dann eigentlich: Auftragsprogrammierung

Im Internet findest du sehr viele, die, gegen Bezahlung, deinen Auftrag erledigen würden.

Ciao
Thorsten
AW: Matrix sortieren
26.10.2023 17:47:05
Yal
Hallo Max,

ich dachte zuerst "geil, eindlich eine harte Nuss".

Aber kannst Du mir verständlich erklären, welche Logik dazu führen kann, dass der "H" in der Spalte F nach dem "V" kommen muss?

Denke daran, dass Programmieren nichts anderes ist, als ein Computer den Regeln zu erklären, wie Daten behandelt werden sollen. Wenn die Regeln nicht eindeutig sind, kann man nicht programmieren.

Falls Du meinst, es war nur ein unvollständig ausgedachtes Beispiel, dann liefere bitte ein aussagekräftiges Beispiel nach, worauf ich Spass haben kann ;-)

VG
Yal
Anzeige
AW: Matrix sortieren
28.10.2023 08:57:29
Sulprobil
Hallo,

Mein Vorschlag (ohne jede Gewähr, aber ich verwende einen aktuellen Virenscanner):
https://www.herber.de/bbs/user/163864.xlsm

Denke daran, dass Du eine Lösung nur dann verwenden solltest, wenn Du sie verstanden hast, und dass Du ggf. auch eine Dokumentation anfertigen musst.

Viele Grüße,
Bernd
AW: Matrix sortieren
28.10.2023 12:08:07
daniel
Hi Bernd:

Kopiere doch einfach den Codetext in den Beitrag, dann ist Virenübertragung ausgeschlossen.

Die Beispieldatei, auf die der Code angewendet werden soll, liegt ja vor.

Gruß Daniel

Anzeige
Jetzt habe ich's
26.10.2023 17:59:36
Yal
Aber gemäß die Anmerkung meinen geschätzten Mitwirkenden dieses Forums, werde ich auch keinen Code liefern, höchsten einen Vorgehensweise:

_ übertrage die erste Spalte (von A nach I)
_ sortiere diese Spalte I
_ für jede Eintrag in der Spalte B,
_ wenn ein Treffer in der Spalte I, dann kopiere diese in der Spalte J, rechts von seinem gleichen
_ die restlichen am Ende der Spalte J hinzufügen und diese sortieren (Vielleicht zuerst die Spalte B in J30 oder tiefer kopieren, sortieren, dann davon die einzelnen Richtung J2:J12 "verschieben". Die Restlichen sind die, die nicht verschoben wurden)
_ dito Spalte C ggü Spalte J (also Zielspalte K)

Viel Erfolg (es ist ja ganz schön vorgekaut. Weh, Du machst nichts daraus ;-)

VG
Yal
Anzeige
AW: Jetzt habe ich's
26.10.2023 18:38:40
daniel
Hi
das rein mit VBA zu lösen, könnte schon aufwendig werden.
aber ich geb mal eine Lösung vor:

Sub test()


Dim FO1 As String
Dim FO2 As String
Dim FO As String
Dim Quelle As Range
Dim s As Long
Dim Ziel As Range

Set Quelle = Range("A2:C5")
Set Ziel = Range("E2")

FO1 = "=IF(yyy="""","""",IF(COUNTIF(xxx,yyy),yyy,""""))"
FO2 = "=SORT(FILTER(xxx,COUNTIF(RyyyC:R[-1]C,xxx)=0))"

Ziel.Formula2 = "=sort(" & Quelle.Columns(1).Address & ")"

For s = 1 To Quelle.Columns.Count - 1
FO = Replace(FO1, "yyy", Range(Ziel.Offset(0, s - 1), Ziel.Offset(0, s - 1).End(xlDown)).Address(1, 1, xlR1C1))
FO = Replace(FO, "xxx", Quelle.Columns(s + 1).Address(1, 1, xlR1C1))
Ziel.Offset(0, s).Formula2R1C1 = FO
FO = Replace(FO2, "yyy", Ziel.Row)
FO = Replace(FO, "xxx", Quelle.Columns(s + 1).Address(1, 1, xlR1C1))
Ziel.Offset(0, s).End(xlDown).Offset(1, 0).Formula2R1C1 = FO
Next


End Sub


bitte um Rückmeldung mit Kommentar des Lehrers.

das Aufrufen des Codes über einen Button sollte eigentlich Stoff des Unterrichts gewesen sein.
das kann aber auch hier nachgelesen werden:
https://online-excel.de/

Gruß Daniel
Anzeige
AW: Jetzt habe ich's
26.10.2023 19:48:31
Yal
Hallo Daniel,

sieht sehr gut aus! Natürlich unter voller Ausnutzung der Excel365-Formeln. Es ist ja die Frage, ob es darum geht, mit VBA das Programmieren im allgemein zu lernen, oder gezielt Excel auszureizen. Da sollte Max uns eingleisen (Falls er noch in Stimmung ist, mit uns zu reden ;-)

Eine reine VBA nach meinem vorigen Beschreibung ist gar nicht so aufwändig. Ich komme auf 43 Zeilen Code (Leer- und Kommentarzeilen herausgerechnet), geteilt in 4 Subs. Die längste ist die Sortierung (einfach den Code von MR genommen. Also Excel-frei wäre damit auch nicht).

Aber ich lasse Max zuerst sein Hausaufgabe machen, dann poste ich, wenn ich es nicht vergesse, den Code.


Nach 7 Tage nach dem Thread-Opener werden die Beiträge im Forum nicht mehr angezeigt und nicht mehr beantwortbar,
durch die Link zu eigenen Beiträge ( https://www.herber.de/cgi-bin/meinebeitraege?name=Yal oder https://www.herber.de/cgi-bin/meinebeitraege?name=Daniel ) sogar 7 nach dem letzten eigenen Beitrag angezeigt (nostalgicherweise im alten Design). Und auch beantwortbar. Es hat aber nur eine Mehrwert, wenn der TE sein Thread gebookmarked hat.

VG
Yal
Anzeige
AW: Da sind leider noch 2 Würmchen drin
28.10.2023 08:07:41
Sulprobil
Hallo Daniel,

Wenn alle Spalten identisch sind, produziert Dein Programm Kalk :-)
Es sollte den Ausgabebereich auch immer zuerst vollständig löschen.

Viele Grüße,
Bernd
AW: Da sind leider noch 2 Würmchen drin
28.10.2023 11:57:04
daniel
Ein bisschen Eigenleistung sollte von Fragesteller ja auch erbracht werden.
AW: Jetzt habe ich's
26.10.2023 21:02:26
daniel
Unter "programmieren können" verstehe ich, dass man die Möglichkeiten kennt, die ein System bietet und diese ausnutzt, um eine Aufgabe zu lösen.
Das kann man jetzt in zwei Richtungen interpretieren:
a) man hat ein sehr einfaches System, dass nur wenige Bearbeitungsmöglichkeiten zulässt und erwartet vom Schüler, dass er in der Lage ist, die Aufgabe in standardisierte Teilschritte zu zerlegen.
b) man hat ein komplexes System mit vielen Bearbeitungsmöglichkeiten und erwartet vom Schüler, dass er diese kennt und in der Lage ist, das passende für die Aufgabe auszuwählen und zu verwenden.

Also RISC vs. CISC.



Meine Lösung ist klar CISC (a). (Ich würde schon an der Sortierroutine scheitern)
Um ein guter Programmierer sollte beides können.

Die Frage ist hier natürlich, was gerade Lerninhalt ist, also entweder "echtes programmieren" lernen (b) oder die Möglicheoten von Excel zu kennen und zu nutzen (a)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige