Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Sortieren in Listen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Sortieren in Listen (1197 mal gelesen)
dan_rather
Mitglied
Techniker HLK


Sehen Sie sich das Profil von dan_rather an!   Senden Sie eine Private Message an dan_rather  Schreiben Sie einen Gästebucheintrag für dan_rather

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Jun. 2004 11:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,
hab folgendes Problem:

Ich würde gerne eine Spalte Sortieren in der zb folgendes steht:
77.2
78.2
66.2.1
66.2.10
66.2.2
66.2.3
66.2.31
66.2.32
66.2.33
66.2.34
66.2.5
66.2.6
66.2.7
66.2.8
das ergebniss sollte dann so aussehen:
66.2.1
66.2.2
66.2.3
66.2.31
66.2.32
66.2.33
66.2.34
66.2.5
66.2.6
66.2.7
66.2.8
66.2.10
77.2
78.2
mit den sortieroptionen von excel Funktioniert es nicht.
Das ganze soll als VBA-Code ausgeführt werden.
Danke schonmal 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

kjung
Mitglied
Administrator


Sehen Sie sich das Profil von kjung an!   Senden Sie eine Private Message an kjung  Schreiben Sie einen Gästebucheintrag für kjung

Beiträge: 399
Registriert: 17.03.2003

CATIA V4.2.4
CATIA V5R9SP4, V5R10SP5,
VPM 1.5 PTF11/12
AIX 4.3.3 ML10
WIN2K

erstellt am: 04. Jun. 2004 12:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dan_rather 10 Unities + Antwort hilfreich

Hallo,
ich meine, das wird Dir mit keiner Sort-Funktion - wie auch immer geartet - gelingen, da 66.2.10 hinter 66.2.1 steht, genauso, wie 66.2.31 auf 66.2.3 folgt.
Diese Zahl ist nicht numerisch zu sortieren (da keine Zahl), es sei denn, Du teilst die Zahl auf.
Mit VBA kenn ich mich überhaupt nicht aus.


------------------
Klaus   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Ehrenmitglied V.I.P. h.c.
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 04. Jun. 2004 13:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dan_rather 10 Unities + Antwort hilfreich

Hallo dan_rather,

wie Klaus schon gesagt hat, eine einfache numerische Sortierung kommt nicht in Frage ... aber ich kann auch keine Logik hinter der angegebenen Resultat-Reihenfolge erkennen, und so etwas ist natürlich zwingend notwendig, wenn man einem strohdummen Computer so etwas beibringen will 

Gibt es denn eine Logik?

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de
KLAMM? Was ist KLAMM?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

dan_rather
Mitglied
Techniker HLK


Sehen Sie sich das Profil von dan_rather an!   Senden Sie eine Private Message an dan_rather  Schreiben Sie einen Gästebucheintrag für dan_rather

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Jun. 2004 13:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Stefan,

die Logik ist vorhanden.
Es handelt sich hier um Positionsnummern einer RLT-Anlage.
Ergo: Pos. 1, Pos. 2 usw. Dann pos. 1.1, 1.2, 1.3 usw
Dann Pos. 1.1.1, 1.1.2, 1.1.3 usw.
Wäre total Glücklich wenn Ihr eine Idee hättet.
Übrigens sind die Positionsnummer in meiner Tabelle als Text dklariert, weil ich diese nur zum sortieren brauche.
Danke einstweilen für die bisherigen Antworten.
Gruß Dan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 04. Jun. 2004 13:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dan_rather 10 Unities + Antwort hilfreich

Hi Dan,

Du könntest es zwar mal s.u. versuchen,
vermute aber mal damit wirst Du auch nicht so richtig glücklich werden ...

Wobei ich der Meinung bin, das müsste sich noch rauskitzeln lassen irgendwie,
aber *ismirschlecht* und zu hoch, keinen Plan wie ...

Probier' mal und sieh' selbst welchen Humbuk er momentan fabriziert 
angenommen deine Daten seien in Spalte A.

CUSee you = Wir sehen uns Nancy
--

Code:

Option Explicit
Option Compare Text

Sub test()
  Dim i As Long, x As Integer
  ReDim var(1 To 1)
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
      ReDim Preserve var(1 To i)
      var(i) = Cells(i, 1).Value
    Next
  BubbleSort var
Range(Cells(1, 2), Cells(UBound(var), 2)) = Application.Transpose(var)
End Sub

Public Sub BubbleSort(ByRef vntArr As Variant)
    Dim iCount, i, j As Integer
    Dim strTemp As String
   
    iCount = UBound(vntArr, 1)
    For j = 0 To iCount - 1
        For i = 0 To iCount - 2
            If LenB(Str(vntArr(i + 1))) > LenB(Str(vntArr(i + 2))) Then
                strTemp = vntArr(i + 2)
                vntArr(i + 2) = vntArr(i + 1)
                vntArr(i + 1) = strTemp
            End If
        Next i
    Next j
End Sub


 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

dan_rather
Mitglied
Techniker HLK


Sehen Sie sich das Profil von dan_rather an!   Senden Sie eine Private Message an dan_rather  Schreiben Sie einen Gästebucheintrag für dan_rather

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Jun. 2004 14:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo startrek,
scho nicht schlecht aber...?????

Danke

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pablo
Mitglied
Techniker


Sehen Sie sich das Profil von pablo an!   Senden Sie eine Private Message an pablo  Schreiben Sie einen Gästebucheintrag für pablo

Beiträge: 453
Registriert: 23.01.2002

Win10
Office 365
SE 2020

erstellt am: 04. Jun. 2004 14:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dan_rather 10 Unities + Antwort hilfreich

Hallo Dan,

nach welchen Kriterien willst du sortieren?
Als Text kommt 66.2.10 vor 66.2.2, als Zahl kommt 66.2.31 nach 66.2.5,
wieso kommt 66.2.31 nach 66.2.3, wohin käme 66.2.11? Oder sollte es 66.2.3.1 heißen?

pablo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

dan_rather
Mitglied
Techniker HLK


Sehen Sie sich das Profil von dan_rather an!   Senden Sie eine Private Message an dan_rather  Schreiben Sie einen Gästebucheintrag für dan_rather

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 04. Jun. 2004 14:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo pablo,
66.2.31 kommt nach 66.2.3 weil 66.2.31 die erste position im Strang
66.2.3 ist und ich nicht mehr als 3 Punkte in meinen Positionsnummern setzen kann.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ralf_A
Mitglied



Sehen Sie sich das Profil von Ralf_A an!   Senden Sie eine Private Message an Ralf_A  Schreiben Sie einen Gästebucheintrag für Ralf_A

Beiträge: 269
Registriert: 14.10.2002

erstellt am: 07. Jun. 2004 13:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dan_rather 10 Unities + Antwort hilfreich

Hallo dan_rather,

hättest du die Möglichkeit folgendes einzugeben

66.2.01
66.2.02
66.2.03
66.2.031
66.2.032
66.2.033
66.2.034
66.2.05
66.2.06
66.2.07
66.2.08
66.2.10
77.2
78.2

also mit den eingefügten Nullen, dann würde es gehen.


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 21. Jun. 2004 15:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dan_rather 10 Unities + Antwort hilfreich

erstelle einfach eine Hilfsspalte und stelle die die Positionsnummern ohne . dar, dann geht auch das Sortieren und Excel erkennt auch die Logik. Formel wäre zb. in Spalte B VERKETTEN(TEIL(A4;1;2);TEIL(A4;4;1);TEIL(A4;6;2))
wenn deine Liste in Spalte A ist. Anschliessend nach Spalte B sortieren - wenn sie stört, ausblenden.

eine andere Möglichkeit wäre, die Positionsnummern ohne . zu schreiben und auf 5 Ziffern hinten mit 0 auffüllen.
Über Zellformat formatierst du diese Zelle dann ##"."#"."##
Damit kann man auch sortieren mit dem gewünschten Ergebnis - ist halt die Frage ob die Nullen stören

66.2.10
66.2.10
66.2.20
66.2.30
66.2.31
66.2.32
66.2.33
66.2.34
66.2.50
66.2.60
66.2.70
66.2.80
77.2.00
78.2.00

[Diese Nachricht wurde von Thomas Harmening am 21. Jun. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz