Wenn in Bereich Funktion

ukyo184

Mitglied
Hallo,

ich suche eine Möglichkeit in Excel, folgendes abzubilden:

WENN Zelle >= 16 und Zelle < 18 DANN 6
WENN Zelle >= 18 und Zelle < 20 DANN 7
WENN Zelle >= 20 und Zelle < 22 DANN 8
WENN Zelle >= 22 und Zelle < 23 DANN 9
WENN Zelle >= 23 und Zelle < 24 DANN 10
WENN Zelle >= 24 und Zelle < 26 DANN 11
WENN Zelle >= 26 und Zelle < 30 DANN 12
WENN Zelle >= 30 DANN 15

Beispiel 1: Zelle = 20,57 ; Ausgabewert = 8
Beispiel 2: Zelle = 27,45 ; Ausgabewert = 11

Das sind mir nun ein bisschen viel Bedingungen um das alles in eine einzige Wenn-Dann-Verschachtelung unterbzubringen. Gibt es eine Funktion, mit der man ein entsprechendes Ergebnis ausgeben kann, je nachdem ich welchem Bereich der Wert einer Zelle liegt (siehe oben)?

Vielen Dank für eure Hilfe!

Gruß Ukyo
 
Also wenn abgesehen davon das beim zweiten Beispiel nicht 11 sondern 12 raus kommt, kannst du es mit einer benutzerdefinierten Funktion lösen.

Visual Basic:
Function ausgabe(zelle As Range)
If zelle >= 16 And zelle < 18 Then
    ausgabe = 6
ElseIf zelle >= 18 And zelle < 20 Then
    ausgabe = 7
ElseIf zelle >= 20 And zelle < 22 Then
    ausgabe = 8
ElseIf zelle >= 22 And zelle < 23 Then
    ausgabe = 9
ElseIf zelle >= 23 And zelle < 24 Then
    ausgabe = 10
ElseIf zelle >= 24 And zelle < 26 Then
    ausgabe = 11
ElseIf zelle >= 26 And zelle < 30 Then
    ausgabe = 12
ElseIf zelle >= 30 Then
    ausgabe = 15
End If
End Function

Oder mit SELECT CASE:

Visual Basic:
Function ausgabe(zelle As Range)
Select Case zelle
    Case Is < 16:   ausgabe = ""
    Case 16 To 17:  ausgabe = 6
    Case 18 To 19:  ausgabe = 7
    Case 20 To 21:  ausgabe = 8
    Case 22:        ausgabe = 9
    Case 23:        ausgabe = 10
    Case 24 To 25:  ausgabe = 11
    Case 26 To 29:  ausgabe = 12
    Case Is >= 30:  ausgabe = 15
End Select
End Function

Diesen Code in ein Modul kopieren und dann gibst du in der Tabelle einfach ein

Visual Basic:
=ausgabe($B1)

um den Wert der Zelle "B1" auszuwerten.
 
Zuletzt bearbeitet:
Hi Tombe,

vielen Dank. Die erste Variante funktioniert einwandfrei.

Die zweite sieht auf den ersten Blick eleganter aus, aber da müsste man die Grenzen noch nachbearbeiten. Da die auszuwertenden Zahlen bis zu zwei Nachkommastellen haben, müssten die Zeilen heißen:

Visual Basic:
Function ausgabe(zelle As Range)
Select Case zelle
    Case Is < 16: ausgabe = ""
    Case 16 To 17.99: ausgabe = 6
    Case 18 To 19.99: ausgabe = 7
    Case 20 To 21.99: ausgabe = 8
    Case 22 To 22.99: ausgabe = 9
    Case 23 To 23.99: ausgabe = 10
    Case 24 To 25.99: ausgabe = 11
    Case 26 To 29.99: ausgabe = 12
    Case Is >= 30: ausgabe = 15
End Select
End Function

Ich habe auf jeden Fall soeben mit deiner Hilfe mein erstes Makro für Excel "programmiert". :)

Gruß Ukyo
 
Zurück