/ / Excel-Makro Best Practice für mehrere Optionen in If-Anweisung oder Fall - Excel, Excel-vba, if-Anweisung, Lookup, vlookup, vba

Excel Macro Best Practice für mehrere Optionen in If-Anweisung oder Fall - Excel, Excel-VBA, If-Anweisung, Nachschlagen, Vlookup, VBA

Ich habe mehrere "Anruftypen" (von "Roaming" bis "International") und ich brauche einen Lookup, um die korrekte Rate abhängig vom Typ in einem Excel-Makro anzuwenden.

Was ist die beste Methode, um dies zu tun?

Wenn CategoryType = "Roaming" UND Land in Liste A angegeben ist Dann

Wenn Liste B Dann

Benutze ich Arrays? Wie prüfen Sie, ob sich in einer IF-Anweisung ein String in einem Array befindet?


Gelöst: Ich habe Case verwendet und dann Subcases hinzugefügt, um eine neue Kategorie zuzuweisen:

Select Case otype
Case "International"
Select Case country
Case "Australia", "China", "Singapore"
ActiveCell.Offset(0, 68).Value = "R01"
Case Else
ActiveCell.Offset(0, 68).Value = "R02"
End Select
End Select

Antworten:

1 für die Antwort № 1

Sie könnten so etwas wie die folgende Formel verwenden (Matrixformel, verwenden Sie also Strg + Umschalt + Eingabetaste).

=MAX((B4:B7=B10)*(IF(ISERROR(SEARCH(B11,C4:C7)),0,1))*D4:D7)

Das eine Problem ist, dass Sie möglicherweise ein falsches Ergebnis erhalten, wenn das Land, nach dem Sie suchen, ein Teilstring eines anderen Landes ist. Die einzige Lösung für dieses Problem wäre, alle Namen Ihres Landes anzugeben |France|Canada|UK| und fügen Sie dann die Pipes um die Eingabe des Suchlandes hinzu.

Bildbeschreibung hier eingeben


0 für die Antwort № 2

Es könnte auch eine andere Option sein. Bei solchen Berechnungen versuche ich zu vermeiden, dass mehrere Werte in ein Feld eingegeben werden. Stattdessen versuche ich, es wie eine Datenbank zu behandeln:

Bildbeschreibung hier eingeben