web-dev-qa-db-fra.com

Countif Avec Multiple OR Critères

Je dois compter le nombre de cellules dans une colonne qui contiennent une valeur spécifique. J'utilise actuellement le code suivant:

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

Cependant, je dois maintenant compter combien de cellules contiennent soit

  • SAL, ou
  • PRE
7
BradStevenson

Le moyen le plus rapide serait simplement de faire 2 COUNTIFs:

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

Vous pouvez utiliser l'équivalent VBA d'une formule COUNTIF standard (qui peut prendre plus d'un argument). Cela peut être étendu si nécessaire

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

Equivalent VBA
MsgBox Evaluate("Sum(COUNTIF(A:A,{""PRE"",""SAL""}))")

18
brettdj

Pourquoi n'utilisez-vous pas la fonction CountIfs?

Exemple:

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

Où CR1_range est évidemment votre plage et V_1 votre variable

Edit: Oups! Je viens de voir que cela doit être une instruction OR, ma réponse ne fonctionnerait que pour une instruction AND (n'a pas supprimé pour référence si personne n'est intéressé)

2
SilverShotBee

Suivre a bien fonctionné pour moi: -

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)

Cette page Web aide à propos des plages nommées dans Excel. 

0
Sukumar