Exceltabelle nach absoluten DB-Adressen sortieren

ducati

Level-3
Beiträge
11.490
Reaktionspunkte
4.022
Zuviel Werbung?
-> Hier kostenlos registrieren
kennt jemand ne einfache Möglichkeit, eine Exceltabelle nach absoluten DB-Adressen zu sortieren? Im ersten Schritt erstmal nur BOOL (DBX) als Bonus wärs nicht schlecht, wenn auch DBB, DBW, DBD gehn würden :unsure:

Code:
DB1.DBX0.0;Text awner
DB1.DBX0.1;Text awner
DB1.DBX13.6;Text erdhtr
DB1.DBX13.7;Text srtjns
DB1.DBX8.0;Text srtjns
DB1.DBX8.1;Text srtjns
DB11.DBX0.0;Text snf
DB11.DBX0.1;Text sfghjtr
DB11.DBX13.6;Text trjsr
DB11.DBX13.7;Text kjuz
DB11.DBX8.0;Text drtjh
DB11.DBX8.1;Text srtz
DB8.DBX0.0;Text hfgfh
DB8.DBX0.1;Text sthztr
DB8.DBX13.6;Text strh
DB8.DBX13.7;Text rth
DB8.DBX8.0;Text teawtg
DB8.DBX8.1;Text aerger

Aktuell mach ich das über TIA in ner Variablentabelle von nem Panel... Muss doch auch in Excel gehn?
 
Moin Ducati,

ne einfaceh Möglichkeit fällt mir ad hoc nicht ein.

Aber Du kannst ja den Code in Spalten aufteilen, in denen die Sortierkriterien dann so enthalten sind, dass Du die Sortierfunktionen von Excel nutzen kannst.

zB. 'DBX' suchen, dann den Punkt danach und anhand dieser Position die ByteAdresse in eine separate Spalte eintragen.
Genauso mit dem ersten vorkommen eines Punktes (dann könntest Du die DB-Nummer ausschneiden) usw.

Bleibt die Frage nach Aufwand/Nutzen.

VG

MFreiberger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ist ja schon so, das Excel 8.0 und 13.6 falsch sortiert...

hmm, bräuchte man dann 3 Spalten mit den Ziffern, nach denen dann sortiert wird... und das DBX, DBB, DBW, DBD? das wär nichtmal alphabetisch...

also vermutlich müsste man nen (aufwändiges) Makro schreiben? :unsure:

Bei größeren Listen ist das Hinundherkopieren zwischen TIA-Variablentabelle und Excel halt auch bissl fehleranfällig, wenn ich da mal verrutsche...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
so sollte das gehn für DB1.DBX0.0 DB1.DBB0 DB1.DBW0 DB1.DBD0

Code:
=WENN(
TEIL(A2;FINDEN(".";A2);4)=".DBX";
VERKETTEN(TEXT(TEIL(A2;FINDEN("D";A2)+2;FINDEN(".";A2)-FINDEN("D";A2)-2);"000000");TEXT(TEIL(A2;FINDEN(".";A2)+4;FINDEN(".";A2;FINDEN(".";A2)+1)-(FINDEN(".";A2)+4));"000000");TEIL(A2;FINDEN(".";A2;FINDEN(".";A2)+1)+1;1));
VERKETTEN(TEXT(TEIL(A2;FINDEN("D";A2)+2;FINDEN(".";A2)-FINDEN("D";A2)-2);"000000");TEXT(TEIL(A2;FINDEN(".";A2)+4;5);"000000");"8")
)

dis kommt dann raus:
Code:
DB1.DBX0.0;Text awner
DB1.DBX0.1;Text awner
DB1.DBX8.0;Text srtjns
DB1.DBX8.1;Text srtjns
DB1.DBX13.6;Text erdhtr
DB1.DBX13.7;Text srtjns
DB8.DBX0.0;Text hfgfh
DB8.DBX0.1;Text sthztr
DB8.DBX8.0;Text teawtg
DB8.DBX8.1;Text aerger
DB8.DBX13.6;Text strh
DB8.DBX13.7;Text rth
DB11.DBX0.0;Text snf
DB11.DBX0.1;Text sfghjtr
DB11.DBX8.0;Text drtjh
DB11.DBX8.1;Text srtz
DB11.DBX13.6;Text trjsr
DB11.DBX13.7;Text kjuz
 
Zuletzt bearbeitet:
Hintergrund des ganzen:
ich hab hier so Listen mit 5000 Adressen die wild durcheinander sind. Versuche rauszufinden, welche Adressen noch unbenutzt, also Reserve sind :rolleyes:
 
Moin Ducati,

Du kannst in Excel über "Text in Spalten" das Trennzeichen angeben: In Deinem Fall den Punkt.
Damit hast Du dann

Code:
DB11   |   DBX21   |   3

Und dann kannst Du Dir die mittlere Spalte über Formeln noch aufdröseln...

Hab mir die Tabelle aus #4 nicht angesehen.... vielleicht macht die ja Ähnliches.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
naja, eigentlich brauch ich ja die verschiedenen Spalten nicht.

ich mach jetzt einfach aus DB11.DBX13.7 -> 0000110000137
bzw. bei DB11.DBB13 -> 0000110000138

in ner separaten Spalte und sortiere dann nach dieser.
 
Zurück
Oben