[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Sortierreihenfolge bestimmen

Sprache / Programm: Excel ab Version 97
Beschreibung

Das Programm stellt fest, ob ein Bereich durchgehend aufsteigend oder durchgehend absteigend sortiert ist.

VBA-Quelltext
Function SortierFolgeBestimmen(Bereich As Range) As bmSortOrder
    Dim Zelle As Integer, SortOrder As Integer, Wert
   
    Set Bereich = Bereich.Cells
   
    On Error GoTo NichtStrengMonoton
    SortierFolgeBestimmen = Sgn(Bereich(Bereich.Cells.Count).Value - Bereich(1).Value)
   
    Select Case SortierFolgeBestimmen
        Case 1 ' Vermutlich aufsteigend sortiert
            For Zelle = 2 To Bereich.Cells.Count
                If Bereich(Zelle).Value <= Bereich(Zelle - 1).Value Then GoTo NichtStrengMonoton
            Next Zelle
       
        Case -1 'Vermutlich absteigend sortiert
            For Zelle = 2 To Bereich.Cells.Count
                If Bereich(Zelle).Value >= Bereich(Zelle - 1).Value Then GoTo NichtStrengMonoton
            Next Zelle
        Case Else
NichtStrengMonoton:
            SortierFolgeBestimmen = 0
    End Select

End Function
Argumente der Funktion/Prozedur

Rückgabewert

1 = Aufsteigend sortiert

-1 = absteigend sortiert

0 = nicht monoton sortiert oder nicht sortiert

Die Rückgabewerte entsprechen den Werten, die die Funktion Excel-Funktion Finden (Match) benötigt