Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Switch Case in Excel möglich?

Switch Case in Excel möglich?
21.03.2018 14:42:38
Julia
Hallo,
ich möchte gern eine Berechnung durchführen.
Mit WENN haben ich es schon versucht aber das wird sehr verschachtelt.
als pseudocode sollte die Berechnung folgendes tun:
"A4" = "MIN"
case 1: [@min] case 2: [@Wert] case 3: ([@Wert]*1,2) case 4: "D4" = 6
"A4" = "MAX"
case 1: [@min] > [@Wert] "D4" = 0
case 2: [@Wert] >= [@Zahl] "D4" = 10
case 3: ([@Wert]/1,2) >= [@Zahl] "D4" = 8
case 4: "D4" = 6
Oder habt ihr eine andere Idee wie man das umsetzten kann?
Ich freue mich auf eure Antworten
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Switch Case in Excel möglich?
21.03.2018 14:49:36
ChrisL
Hi Julia
Vielleicht so...
Select Case Range("A4")
Case "MIN"
If Bedigung Then
ElseIf Bedingung Then
ElseIf Bedingung Then
ElseIf Bedingung Then
End If
Case "MAX"
If Bedigung Then
ElseIf Bedingung Then
ElseIf Bedingung Then
ElseIf Bedingung Then
End If
End Select

cu
Chris
Anzeige
AW: Switch Case in Excel möglich?
21.03.2018 15:58:46
Peter(silie)
Hallo,
Switch Case ist in VBA Select Case.
Die Syntax sieht dann so aus:
(bsp code)
Option Explicit
Sub a()
Debug.Print SelectCase(0.1)
Debug.Print SelectCase(200)
End Sub
Public Function SelectCase(ByVal value_ As Double) As String
Dim cMin As Double
Dim cMax As Double
cMin = 1.10234
cMax = 100.90385
Select Case value_
Case Is  vbNullString Then SelectCase = SelectCase & vbCrLf
Select Case value_
Case Is >= cMax
SelectCase = SelectCase & value_ & " >= " & cMax & " is True"
Case Else
SelectCase = SelectCase & value_ & " >= " & cMax & " is False"
End Select
End Function
Das ergebnis sieht dann so aus:
0,1 = 100,90385 is False
200 = 100,90385 is True

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Switch Case in Excel: So geht's


Schritt-für-Schritt-Anleitung

Um die Switch Case-Logik in Excel zu implementieren, kannst du die Select Case-Anweisung in VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, wie du das machst:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Rechtsklicke auf VBAProject (DeineDatei.xlsm) und wähle Einfügen > Modul.
  3. Schreibe die Select Case-Funktion:

    • Kopiere den folgenden Code in das Modul:
    Option Explicit
    
    Sub BerechnungMitSwitch()
       Select Case Range("A4").Value
           Case "MIN"
               ' Hier die Berechnung für MIN
               ' Beispiel-Bedingungen
               If Range("B4").Value < 10 Then
                   Range("D4").Value = 6
               ElseIf Range("B4").Value >= 10 Then
                   Range("D4").Value = Range("B4").Value * 1.2
               End If
           Case "MAX"
               ' Hier die Berechnung für MAX
               If Range("B4").Value < 10 Then
                   Range("D4").Value = 0
               ElseIf Range("B4").Value >= 10 Then
                   Range("D4").Value = 10
               End If
       End Select
    End Sub
  4. Schließe den VBA-Editor:

    • Drücke ALT + Q, um den Editor zu schließen.
  5. Führe das Makro aus:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle BerechnungMitSwitch und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Funktion nicht gefunden"

    • Überprüfe, ob der Makroname korrekt ist und dass du den richtigen VBA-Code eingefügt hast.
  • Fehler: "Zelle A4 hat keinen Wert"

    • Stelle sicher, dass du einen Wert in Zelle A4 eingegeben hast, bevor du das Makro ausführst.
  • Fehler: "Typ nicht korrekt"

    • Achte darauf, dass die Werte in den Zellen korrekt formatiert sind (z.B. Zahlen als Zahl und nicht als Text).

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch die WENN-Funktion in Excel nutzen, um ähnliche Ergebnisse zu erzielen. Allerdings wird die Formel dadurch komplexer und verschachtelter. Hier ein einfaches Beispiel für eine WENN-Formel:

=WENN(A4="MIN";WENN(B4<10;6;B4*1,2);WENN(A4="MAX";WENN(B4<10;0;10);""))

Diese Methode ist jedoch nicht so übersichtlich wie die Switch Case-Logik in VBA.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Excel Switch Case-Logik umsetzen kannst:

  1. Beispiel für MIN-Berechnung:

    • Wenn der Wert in A4 "MIN" ist und B4 kleiner als 10, setze D4 auf 6. Andernfalls multipliziere B4 mit 1,2.
  2. Beispiel für MAX-Berechnung:

    • Wenn der Wert in A4 "MAX" ist und B4 kleiner als 10, setze D4 auf 0. Andernfalls setze D4 auf 10.

Diese Beispiele zeigen, wie flexibel die Excel Case Funktion sein kann.


Tipps für Profis

  • Verwende Variablen: Um deine Switch Case-Logik zu optimieren, nutze Variablen für häufig verwendete Werte, um die Lesbarkeit zu erhöhen.

  • Fehlerbehandlung einfügen: Füge Fehlerbehandlungsroutinen ein, um unerwartete Eingaben zu handhaben.

  • Dokumentation: Kommentiere deinen Code gut, damit du und andere ihn leichter verstehen können.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen der WENN-Funktion und Switch Case in Excel? Die WENN-Funktion ist ideal für einfache Bedingungen, während Switch Case in VBA besser für komplexere Entscheidungen geeignet ist.

2. Kann ich Switch Case auch ohne VBA verwenden? Nein, die Switch Case-Logik ist ausschließlich in VBA verfügbar. In Excel selbst kannst du nur WENN-Funktionen verwenden.

3. Ist Switch Case in allen Excel-Versionen verfügbar? Ja, die Select Case-Anweisung ist in allen Versionen von Excel, die VBA unterstützen, verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige