Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
920to924
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
920to924
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortierung von Werten mit 3 Punkten

Sortierung von Werten mit 3 Punkten
08.11.2007 09:33:20
Werten
Liebe Loid,
in folgender Tabelle (linke Spalte) habe ich Daten, welche Kapitel eines Buches darstellen.
Die dargestelletn Werte sind exemplarisch und variieren oft (also, mal mehr , mal weniger Werte).
In der rechten Spalte sieht man das gewünschte Ergebnis.
Es soll eine neue Sortierung erfolgen, welche fortlaufend ist.
Die Daten der linken Spalte liegen sowohl in einem Array als auch in einer Spalte des Tabellenblattes vor.
Meine Lösungsansätze bisher waren das splitten der Daten, die Ziffern zwischen den Punkten auslesen
neu zählen und sortieren.
Die Ansätze habe ich aber alle, weil nicht funktionabel, gefrustet in die Tonne geschmissen.
Wie gesagt, es sind Werte, welche theoretisch bis unendlich gehen können.
Bewusst wurde in der Ursprungsspalte z.B. die Ziffer 2 vor dem ersten Punkt weggelassen
(welche aber durchaus erscheinen kann) um das ganze noch mehr zu dramatisieren ..:-)
Wüsste hier vielleicht jemand einen Lösungsansatz?
1.0.0.0 -- 1.0.0.0
1.1.0.0 -- 1.1.0.0
1.1.1.0 -- 1.1.1.0
1.1.4.0 -- 1.1.2.0
1.1.7.0 -- 1.1.3.0
1.2.0.0 -- 1.2.0.0
1.2.1.0 -- 1.2.1.0
1.2.1.5 -- 1.2.1.1
1.2.3.0 -- 1.2.2.0
1.2.3.4 -- 1.2.2.1
3.0.0.0 -- 2.0.0.0
3.2.0.0 -- 2.1.0.0
3.2.3.0 -- 2.1.1.0
3.2.3.3 -- 2.1.1.1
4.0.0.0 -- 3.0.0.0
4.2.0.0 -- 3.1.0.0
4.2.1.0 -- 3.1.1.0
4.2.1.2 -- 3.1.1.1
4.3.0.0 -- 3.2.0.0
4.3.2.0 -- 3.2.1.0
4.3.2.4 -- 3.2.1.1
Grüße Stefan

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortierung von Werten mit 3 Punkten
08.11.2007 10:39:00
Werten
Hallo Stefan,
wenn die Zahlen zwischen den Punkten alle einstellig sind, gehts wohl auch so:
 AB
11.0.0.01.0.0.0
21.1.0.01.1.0.0
31.1.1.01.1.1.0
41.1.4.01.1.2.0
51.1.7.01.1.3.0
61.2.0.01.2.0.0
71.2.1.01.2.1.0
81.2.1.51.2.1.1
91.2.3.01.2.2.0
101.2.3.41.2.2.1
113.0.0.02.0.0.0
123.2.0.02.1.0.0
133.2.3.02.1.1.0
143.2.3.32.1.1.1
154.0.0.03.0.0.0
164.2.0.03.1.0.0
174.2.1.03.1.1.0
184.2.1.23.1.1.1
194.3.0.03.2.0.0
204.3.2.03.2.1.0
214.3.2.43.2.1.1

Formeln der Tabelle
ZelleFormel
B2=LINKS(B1;1)+(LINKS(A2;1)<>LINKS(A1;1))&"." &WENN(TEIL(A2;3;1)=TEIL(A1;3;1); TEIL(B1;3;1); WENN(LINKS(A2;1)<>LINKS(A1;1); 0;TEIL(B1;3;1)+1))&"." &WENN(TEIL(A2;5;1)=TEIL(A1;5;1); TEIL(B1;5;1); WENN(TEIL(A2;3;1)<>TEIL(A1;3;1); 0;TEIL(B1;5;1)+1))&"." &WENN(TEIL(A2;7;1)=TEIL(A1;7;1); TEIL(B1;7;1); WENN(TEIL(A2;5;1)<>TEIL(A1;5;1); 0;TEIL(B1;7;1)+1))
B3=LINKS(B2;1)+(LINKS(A3;1)<>LINKS(A2;1))&"." &WENN(TEIL(A3;3;1)=TEIL(A2;3;1); TEIL(B2;3;1); WENN(LINKS(A3;1)<>LINKS(A2;1); 0;TEIL(B2;3;1)+1))&"." &WENN(TEIL(A3;5;1)=TEIL(A2;5;1); TEIL(B2;5;1); WENN(TEIL(A3;3;1)<>TEIL(A2;3;1); 0;TEIL(B2;5;1)+1))&"." &WENN(TEIL(A3;7;1)=TEIL(A2;7;1); TEIL(B2;7;1); WENN(TEIL(A3;5;1)<>TEIL(A2;5;1); 0;TEIL(B2;7;1)+1))

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Sortierung von Werten mit 3 Punkten
08.11.2007 13:50:05
Werten
Meine Herren,
Hut ab. Kaum habe ich für den Beitrag die Entertaste gedrückt, waren Antworten da.
Ich habe beide Varianten ausprobiert und sie funktionieren. Großen Danke für die Mühe.
Ähm ... Ich muss zugeben, daß ich bisher die Verarbeitung der Werte über VBA realisierte und noch nie
Formeln, wie ihr sie verwendet, geschrieben habe.
Will sagen, alles bisher von mir Verzapfte liegt ins Sub's und Co.
Idealerweise wollte ich die Werte (Erich - sind u.a. mehrstellig z.B. 12.200.1.0)
aus einem Array (ist vorhanden) lesen und sortiert in einer Spalte zur Ausgabe bringen.
Also: Lies Werte in Array - sortiere - gebe in eine Spalte aus.
Kann man Eure Formeln einfach so in eine SubRoutine reinknallen?

Anzeige
AW: Sortierung von Werten mit 3 Punkten
08.11.2007 15:19:32
Werten
Naja, ich kann jetzt nur für meine Lösung sprechen. Unmöglich ist nichts, aaaber:
1.) Wenn Du bei meiner Lösung Spalte A-D wegnimmst, kannst Du gleich das Array in E:H kopieren.
2.) In der Tabelle ist es sehr einfach zu lösen, Programmierung ist auf jeden Fall mühsamer. Du müsstest zunächst die 1. Spalte durchgehen und ggf. neu nummerieren, dann die zweite Spalte dito, aber unter Berücksichtigung der ersten, dann die dritte Spalte dito, aber unter Berücksichtigun der zweiten etc. etc., dann könntest Du auch beliebig tiefe Gliederungsebenen verwalten.
Also die Herangehensweise mit Programmierung wäre komplett anders, aber natürlich machbar. Aber nicht von mir, weil ich grad' keine Lust drauf habe :-) (und nicht wirklich geschmeidig im Umgang mit Arrays bin ...)
Immerhin geht meine Lösung auch mit mehrstelligen Zahlen :-)
Viele Grüße, Wolli

Anzeige
AW: Sortierung von Werten mit 3 Punkten
08.11.2007 15:20:00
Werten
Naja, ich kann jetzt nur für meine Lösung sprechen. Unmöglich ist nichts, aaaber:
1.) Wenn Du bei meiner Lösung Spalte A-D wegnimmst, kannst Du gleich das Array in E:H kopieren.
2.) In der Tabelle ist es sehr einfach zu lösen, Programmierung ist auf jeden Fall mühsamer. Du müsstest zunächst die 1. Spalte durchgehen und ggf. neu nummerieren, dann die zweite Spalte dito, aber unter Berücksichtigung der ersten, dann die dritte Spalte dito, aber unter Berücksichtigun der zweiten etc. etc., dann könntest Du auch beliebig tiefe Gliederungsebenen verwalten.
Also die Herangehensweise mit Programmierung wäre komplett anders, aber natürlich machbar. Aber nicht von mir, weil ich grad' keine Lust drauf habe :-) (und nicht wirklich geschmeidig im Umgang mit Arrays bin ...)
Immerhin geht meine Lösung auch mit mehrstelligen Zahlen :-)
Viele Grüße, Wolli

Anzeige
AW: Sortierung von Werten mit 3 Punkten
08.11.2007 16:26:00
Werten
Hallo Stefan,
probier mal

Option Explicit
Sub Reorg_Dekad()
Dim aa() As Integer, nn() As Integer, zw, strE As String
Dim lngL As Long, intB As Integer, zz As Long, ss As Integer
lngL = Cells(Rows.Count, 1).End(xlUp).Row
intB = Len(Cells(1, 1)) - Len(Replace(Cells(1, 1), ".", "")) + 1
ReDim aa(1 To lngL, 1 To intB), nn(1 To lngL, 1 To intB)
ReDim zw(1 To intB)
For zz = 1 To lngL
zw = Split(Cells(zz, 1), ".")
For ss = 1 To intB
aa(zz, ss) = zw(ss - 1)
Next ss
Next zz
nn(1, 1) = 1
strE = nn(1, 1)
For ss = 2 To intB
strE = strE & ".0"
Next ss
Cells(1, 4) = strE
For zz = 2 To lngL
nn(zz, 1) = nn(zz - 1, 1) - (aa(zz, 1)  aa(zz - 1, 1))
strE = nn(zz, 1)
For ss = 2 To intB
If nn(zz, ss - 1) = nn(zz - 1, ss - 1) Then
nn(zz, ss) = nn(zz - 1, ss) - (aa(zz, ss)  aa(zz - 1, ss))
End If
'        Cells(zz, ss + 4) = nn(zz, ss)
strE = strE & "." & nn(zz, ss)
Next ss
Cells(zz, 4) = strE
Next zz
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Sortierung von Werten mit 3 Punkten
08.11.2007 17:10:21
Werten
Meine Fresse,
das klappt bemerkenswert.
Was diese kleinen aa,ss und zz doch so alles bewirken.
Vielen Dank Erich. *zu Wolli schiel* Das hättest du doch auch geschafft, oder? :-)
Ich bin mal so kühn und schiebe die Mappe hoch um dir ein Denkmal zu setzen.
naja ... eigentlich will ich ja bloß die Uploadfunktion testen. :-)
Nochmal ein großen Dank für die hervorragende Arbeit.
Grüße aus Berlin
Stefan
https://www.herber.de/bbs/user/47519.xls

AW: Sortierung von Werten mit 3 Punkten
08.11.2007 21:59:00
Werten
Hehe, ich wollte eigentlich noch schreiben "Erich programmiert bestimmt nix, der macht nur Formeln" - falsch gedacht! Aber mal ins Verhältnis gesetzt: die Formel-Lösung hat Erich und mich deutlich unter 5 Minuten gekostet, für das Makro waren bestimmt 'n paar Minütli mehr fällig. Außerdem muss man da den Grips anstrengen :-(
Herzlichen Gruß Euch Beiden! Wolli

Anzeige
AW: Dekadische Gliederung reorganisiseren
09.11.2007 12:35:00
Erich
Hallo Stefan,
nach dem ersten VBA-Schnellschuss hier eine neue Version, die wohl variabler und stimmiger ist:
https://www.herber.de/bbs/user/47554.xls
Schönes Wochenende und viel Spaß damit!
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige