Fonctions NB.si() et Somme.si()

Accueil

Nb.Si(champCritère;critère)
Somme.si(champCritère;Critère;champSomme)

NbsiSommesi.xls

La fonction Nb.Si() compte le nombre de cellules vérifiant le critère spécifié.

La fonction Somme.Si() calcule la somme des cellules vérifiant le critère.

Sur l'exemple, le critère est dans la cellule G2

Critère avec un joker *

=NB.SI(Champ;"*FR*") donne le nombre de cellules contenant le code FR

Dans l'exemple ci dessous,nous comptons le nombre de codes contenant FR1,FR2,FR3

En G7 : =NB.SI(B2:B21;"*"&F3)
En H7: =SOMME.SI(B2:B21;"*"&F3;C2:C21

Appartenance à un ensemble

Compter le nombres de cellules qui contiennent aa,bb,cc.

=SOMMEPROD(NB.SI(A2:B12;{"aa";"bb";"cc"}))
=SOMMEPROD(NB.SI(A2:B12;D7:D9))

Sous-Totaux

En C2:=SI(A2<>A3;SOMME.SI($A$2:$A$100;A2;$B$2:$B$100);"")

Somme si montant coché

=SOMME.SI(C3:M3;"þ";B3:L3)

SommeMontantCoché

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Count = 1 And Target.Column <= 13 And Target.Column Mod 2 = 1 And Target.Row >= 3 And Target.Row <= 6 Then
     Target = IIf(Target = "þ", "o", "þ") 'Police Wingdings
  End If
End Sub

Autre exemple

=SOMME.SI($A$2:$G$6;A10;$B$2:$H$6)

Totaux avec table de correspondance

SommeSi

Sélectionner H2:H5
=totalserieMat(G2:G4;correspond;ident;heures)
Valider avec maj+ctrl+entrée

Function totalserieMat(noSerie, Correspond, ident, heures)
  Application.Volatile
  t = ident
  h = heures
  a = Correspond
  s = noSerie
  Set d1 = CreateObject("Scripting.Dictionary")
  For i = LBound(a) To UBound(a)
    d1(a(i, 2)) = a(i, 1)
  Next i
  Dim ts()
  ReDim ts(LBound(s) To UBound(s))
  For k = LBound(s) To UBound(s)
    For i = LBound(t) To UBound(t)
      tmp = t(i, 1)
      ns = d1(tmp)
        If ns = s(k, 1) Then
           ts(k) = ts(k) + h(i, 1)
        End If
      Next i
   Next k
   totalserieMat = Application.Transpose(ts)
End Function

 

 

 


Exemples

NbsiSommesi.xls