wake-up-neo.com

Countif mit mehreren OR Kriterien

Ich muss die Anzahl der Zellen in einer Spalte zählen, die einen bestimmten Wert enthalten. Ich verwende derzeit den folgenden Code:

iVal = Application.WorksheetFunction.COUNTIF(Range("A:A"), "SAL")

Ich muss jetzt jedoch zählen, wie viele Zellen enthalten sind

  • SAL, oder
  • PRE
7
BradStevenson

Der schnellste Weg wäre einfach 2 COUNTIFs zu machen:

iVal = Application.WorksheetFunction.CountIf(Range("A:A"), "SAL") + Application.WorksheetFunction.CountIf(Range("A:A"), "PRE")
8
Jonathan Sayce

Sie können das VBA-Äquivalent einer COUNTIF-Standardformel verwenden (die mehrere Argumente enthalten kann). Dies kann nach Bedarf erweitert werden

Standardformel
=SUM(COUNTIF(A:A, {"SAL","PRE"}))

VBA-Äquivalent
MsgBox Evaluate("Sum(COUNTIF(A:A,{""PRE"",""SAL""}))")

18
brettdj

Warum verwenden Sie nicht die CountIfs-Funktion?

Beispiel:

Application.CountIfs(CR1_range, V_1, CR2_range, V_2, CR3_range, V_3, CR4_range, V_4)

Wobei CR1_range offensichtlich Ihr Bereich ist und V_1 Ihre Variable ist

Bearbeiten: Ooops! Ich habe gerade gesehen, dass es sich um eine OR -Anweisung handeln muss, meine Antwort würde nur für eine AND-Anweisung funktionieren (wurde nicht gelöscht, da sich jemand dafür interessiert).

2
SilverShotBee

Folgendes hat für mich gut funktioniert: -

Dim val1 as string, val2 as string

val1 = "value1"
val2 = "value2"    

count = Application.WorksheetFunction.CountIfs(ThisWorkbook.Names("firstname").RefersToRange, val1 , ThisWorkbook.Names("secondname").RefersToRange, val2)

Diese Webseite hilft bei benannten Bereichen in Excel. 

0
Sukumar