Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortieren von Zahlen die als text vorliegen

Sortieren von Zahlen die als text vorliegen
28.02.2008 12:30:50
Zahlen
Hallo Forum,
ich möchte die Werte von Kondensatoren numerisch sortieren.
Die Werte liegen z.B. in der Form
100N (100 Nanofarad)
10N (10 Nanofarad)
10P (10 Pikofarad)
10P3 (10,3 Pikofarad)
vor (in Klammern der Wert nur noch mal ausgeschrieben)
Gibt es dafür einen Sortiermechanismus?
Rauskommen sollte in diesem Fall (aufsteigend)
10P
10P3
10N
100N
Danke und Gruß´

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren von Zahlen die als text vorliegen
28.02.2008 12:34:00
Zahlen
Vielleicht solltest du mal noch begründen, warum diese Reihenfolge rauskommen soll, damit man die entsprechenden Kriterien versteht (alphabetisch etc.) und evtl. in eine Formel einbauen kann.
Ich denke, das geht wohl nur über eine Hilfsspalte oder alternativ per VBA.
Gruß David

AW: Sortieren von Zahlen die als text vorliegen
28.02.2008 13:06:00
Zahlen
Danke David für den Hinweis:
P = Piko = 10E-12
N = Nano = 10E-9
10P = 10 * 10E-12
10P3 = 10,3 * 10E-12
10N = 10 * 10E-9
100N = 100 * 10E-9

AW: Sortieren von Zahlen die als text vorliegen
28.02.2008 13:13:00
Zahlen
Hallo Christian,
Wandle in einer Hilfsspalte in reelle Zaheln um:

Function txt2eng(text As String) As Double
Dim tmp As Double
Dim Exponent As Double
Dim Nachkomma As Boolean
Dim i As Long
Dim tmpstr As String
tmp = 0
tmpstr = text
Exponent = 1
Nachkomma = False
If Len(text) = 0 Then
txt2eng = 0
Else
Do
If IsNumeric(Left(tmpstr, 1)) Then
tmp = 10 * tmp + CDbl(Left(tmpstr, 1))
If Nachkomma Then
Exponent = Exponent * 0.1
End If
Else
Select Case UCase(Left(tmpstr, 1))
Case "P"
Exponent = 0.000000000001
Case "N"
Exponent = 0.000000001
Case "U"
Exponent = 0.000001
Case "M"
Exponent = 0.001
End Select
Nachkomma = True
End If
tmpstr = Right(tmpstr, Len(tmpstr) - 1)
Loop Until Len(tmpstr) = 0
txt2eng = tmp * Exponent
End If
End Function


Dann sortierst Du nach der Hilfsspalte.
Gruß Harald

Anzeige
Noch ein's drauf
28.02.2008 13:32:10
Harald
Hallo Christian,
hier noch die Erweiterung auf k,M,g und der Weg zurück (na ja fast):

Public Function eng2dbl(text As String) As Double
' Wandelt Zahlen mit Einheit in Double Zahlen um (z.B. zum Sortieren)
' Grundversion erkennt p,n,u,m,k,M,g
' Unterscheidung m=milli, M=Mega
' 2008-02-28
' Dr. Harald Kapp
' PTD EA D AR
Dim tmp As Double
Dim Exponent As Double
Dim Nachkomma As Boolean
Dim i As Long
Dim tmpstr As String
tmp = 0
tmpstr = text
Exponent = 1
Nachkomma = False
If Len(text) = 0 Then
eng2dbl = 0 'Rückgabewert, wenn Null-Argumant
Else
Do
If IsNumeric(Left(tmpstr, 1)) Then
tmp = 10 * tmp + CDbl(Left(tmpstr, 1))
If Nachkomma Then 'Sonderbehandlung des Exponenten bei Nachkommastellen
Exponent = Exponent * 0.1
End If
Else
Select Case UCase(Left(tmpstr, 1))
Case "P"
Exponent = 0.000000000001
Case "N"
Exponent = 0.000000001
Case "U"
Exponent = 0.000001
Case "M"
If Left(tmpstr, 1) = "m" Then ' Fallunterscheidung milli und Mega
Exponent = 0.001
Else
Exponent = 1000000
End If
Case "K"
Exponent = 1000
Case "G"
Exponent = 1000000000
End Select
' nach dem Einheitenzeichen kommen die Nachkommastellen, daher muss der Exponent
' im Falle weiterer Ziffern entsprechend verringert werden
' Das wird durch dieses Flag sicher gestellt
Nachkomma = True
End If
tmpstr = Right(tmpstr, Len(tmpstr) - 1)
Loop Until Len(tmpstr) = 0
eng2dbl = tmp * Exponent
End If
End Function


'***********************************************************************************


Public Function Sci2Eng(ByVal dblRLC As Double, ByVal strUnit As String) As String
'** Author  : Alexander Bell
'** Usage   : Convert the value in Scientific format to Engineering, well suited
'**         : for Bill Of Material (BOM). On Error returns string #ERROR"
'** PREFIXES:
'   T -     Tera        (Multiplier 1,000,000,000,000 or 1E12)
'   G -     Giga        (Multiplier 1,000,000,000 or 1E9)
'   M -     Mega        (Multiplier 1,000,000 or 1E6)
'   k -  kilo       (Multiplier 1,000)
'   m -     mini        (Multiplier 0.001)
'   u -     micro       (Multiplier 0.000,001 or 1E-6)
'   n -     nano        (Multiplier 0.000,000,001 or 1E-9)
'   p -     pico        (Multiplier 0.000,000,000,001 or 1E-12)
'** Disclaimer: This code is provided on "AS IS" basis without warranty of any kind
On Error GoTo ErrorHandle
Select Case CDec(Log(dblRLC) / Log(10))
Case Is >= 12
Sci2Eng = CStr(dblRLC / 1000000000000#) & " T"
Case Is >= 9
Sci2Eng = CStr(dblRLC / 1000000000#) & " G"
Case Is >= 6
Sci2Eng = CStr(dblRLC / 1000000#) & " M"
Case Is >= 3
Sci2Eng = CStr(dblRLC / 1000#) & " k"
Case Is >= 0
Sci2Eng = CStr(dblRLC) & " "
Case Is >= -3
Sci2Eng = CStr(dblRLC * 1000#) & " m"
Case Is >= -6
Sci2Eng = CStr(dblRLC * 1000000#) & " u"
Case Is >= -9
Sci2Eng = CStr(dblRLC * 1000000000#) & " n"
Case Else
Sci2Eng = CStr(dblRLC * 1000000000000#) & " p"
End Select
Sci2Eng = Sci2Eng & strUnit
Exit Function
ErrorHandle:
Sci2Eng = "#ERROR"
End Function


'***********************************************************************************
Die zweite Funktion habe ich selbst im Internet gefunden, sind nicht meine Lorbeeren, siehe Funktionskopf.
Gruß Harald

Anzeige
AW: Sortieren von Zahlen die als text vorliegen
28.02.2008 13:25:00
Zahlen
vielleicht geht das auch einfacher, in dem du die Zahlen so eingibst, wie sie sind (als 0,00...001 etc.) und die Ansicht über ein benutzerdefiniertes Format anpasst.
Ich habe da kürzlich im Forum hier einen Link gefunden, in dem auf eine Seite mit detaillierten Erläuterungen zu solchen Excel-Formaten verwiesen wurde. Damit könnte sich das auch realisieren lassen.
http://www.online-excel.de/excel/singsel.php?f=71#s15

AW: Sortieren von Zahlen die als text vorliegen
28.02.2008 13:26:08
Zahlen
Hallo,
dieses Förmelchen in eine Hilfsspalte und danach sortieren:
=WENN(ISTZAHL(FINDEN("P";A2));LINKS(A2;FINDEN("P";A2)-1)*10^-12+WENN(ISTZAHL(--RECHTS(A2;1)); RECHTS(A2;1)*10^-13;0);LINKS(A2;FINDEN("N";A2)-1)*10^-9+WENN(ISTZAHL(--RECHTS(A2;1));RECHTS(A2;1) *10^-10;0))
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Sortieren von Zahlen die als text vorliegen
28.02.2008 13:49:00
Zahlen
Vielen Dank erst einmal für Eure Hilfe!!!!!!!!!!!!
Ich teste........

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige