Plages de cellules multiples dans les arguments d'une fonction

Alesk

XLDnaute Nouveau
Bonjour,
j'ai fait une recherche, mais les mots que j'ai utilisés ne doivent pas convenir, je n'ai rien trouvé.
je voudrais pouvoir passer en argument une plage de cellules multiple dans une fonction qui n'a pas qu'une plage en argument.
par exemple :
j'ai voulu écrire la fonction qui compte le nombre de "coucou" dans les plages suivantes : A1:A10 et C1:C10
j'ai écrit ça : =NB.SI(A1:A10;C1:10;"coucou") mais ça me fait une erreur.
je peux m'en sortir en faisant =NB.SI(A1:A10;"coucou")+NB.SI(C1:10;"coucou")
mais je me disais qu'il y avait peut-être une solution avec un seul NB.SI
Merci
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Plages de cellules multiples dans les arguments d'une fonction

Bonjour,

=nbsimz((B3:B5;D3:D9);"aa")


Code:
Function NbSiMZ(champrech As Range, valCherchée)
  Application.Volatile
  temp = 0  
  For i = 1 To champrech.Areas.Count
    For j = 1 To champrech.Areas(i).Count
      If valCherchée = champrech.Areas(i)(j) Then
        temp = temp + 1
      End If
    Next j
  Next i
  NbSiMZ = temp
End Function

JB
 

Pièces jointes

  • FonctionNBSIMZ3.xls
    24.5 KB · Affichages: 101
Dernière édition:

Alesk

XLDnaute Nouveau
Re : Plages de cellules multiples dans les arguments d'une fonction

Merci pour les réponses.
j'ai regardé la définition de SOMMEPROD(), mais je ne vois pas comment l'utiliser pour qu'elle réponde à mon problème.

quant à la réponse de Boisgontier, je pensais qu'il existait une possibilité sans utiliser les macros, et surtout une solution pour faire une plage multiple de plus de 2 plages de cellules.
genre :
=nb.si(A1:A5;C1:C5;E1;E5;"coucou")
autant que l'on veut en fait...


Désolé, je n'avais pas vu la nouvelle réponse de James007. J'étudie ça.
 
Dernière édition:

Alesk

XLDnaute Nouveau
Re : Plages de cellules multiples dans les arguments d'une fonction

Après essai, la fonction sommeprod() ne simplifie pas ma formule initiale.

voir mon tableau ci-dessous.
la 1ère formule est dans la case D3, il s'agit de compter les occurrences du texte "G11" dans les matinées et de les multiplier par 4 et d'ajouter les occurrences du même texte dans les après-midi en les multipliant par 3.
 

Pièces jointes

  • PlanningAlesk.xls
    36 KB · Affichages: 109

abcd

XLDnaute Barbatruc
Re : Plages de cellules multiples dans les arguments d'une fonction

Bonjour,

Effectivement avec SOMMEPROD, mais peut-être employé de façon différente :

En G3 (j'ai choisi une cellule me renvoyant un résultat que je peux vérifier) :
=SOMMEPROD(($E$9:$N$51=F3)*(MOD(COLONNE($E:$N);2)=1)*4)+SOMMEPROD(($E$9:$N$51=F3)*(MOD(COLONNE($E:$N);2)=0)*3)
renvoie bien 36

abcd
 

Alesk

XLDnaute Nouveau
Re : Plages de cellules multiples dans les arguments d'une fonction

En G3 (j'ai choisi une cellule me renvoyant un résultat que je peux vérifier) :
=SOMMEPROD(($E$9:$N$51=F3)*(MOD(COLONNE($E:$N);2)=1)*4)+SOMMEPROD(($E$9:$N$51=F3)*(MOD(COLONNE($E:$N);2)=0)*3)
renvoie bien 36

abcd

Ouhla..., je vais étudier cette formule, mais je crains d'en avoir pour la semaine...
merci en tout cas.
 

abcd

XLDnaute Barbatruc
Re : Plages de cellules multiples dans les arguments d'une fonction

Re,

On compte le nombre de cellules qui répondent à la condition, mais uniquement pour les colonnes impaires (MOD ... =1)*4
+ idem pour les colonnes paires (MOD ... =0)*3

abcd
 

Discussions similaires

Statistiques des forums

Discussions
312 803
Messages
2 092 250
Membres
105 316
dernier inscrit
cyrille225