OVH Cloud OVH Cloud

croisement d'une colonne nb si avec une variable

2 réponses
Avatar
laurentbeaumont
Bonjour,
bien que consultant excelabo régulièrement je ne trouve pas ce que je cherche
et votre aide sera la bienvenue.
Voila j'ai sur une colonne (B) le sexe des agents codés H ou F
Sur les colonnes suivantes (C, D, E...) le roulement des agents M J ou S
J'aurais voulou que la fonction nb.si qui compte mon nombre de M J ou S en bout
de colonne fasse un tri en fonction de la premiere
J'ai écrit aidé d'un collègue cette fonction

Function NombreFemmeM(Colonne As Range)
res = 0
For Each rw In Colonne
If (rw.Value = "m") Then
If (ActiveSheet.Cells(rw.Row, 2).Value = "f") Then
res = res + 1
End If
End If
Next

NombreFemmeM = res
End Function

Mon problème est que si l'on change une variable de la colonne B, le calcul ne
se met pas a jour. Si l'on change une variable des autres colonnes pas de
problème.
Que manque t-il ?

Merci d'avance

2 réponses

Avatar
isabelle
bonjour Laurent,

tu pourrais utiliser la fonction SommeProd pour ce faire

=SOMMEPROD((A1:A1000="m")*(B1:B1000="F"))

note: il ne faut pas utiliser une colonne entière dans cette formulle.

isabelle


Bonjour,
bien que consultant excelabo régulièrement je ne trouve pas ce que je cherche
et votre aide sera la bienvenue.
Voila j'ai sur une colonne (B) le sexe des agents codés H ou F
Sur les colonnes suivantes (C, D, E...) le roulement des agents M J ou S
J'aurais voulou que la fonction nb.si qui compte mon nombre de M J ou S en bout
de colonne fasse un tri en fonction de la premiere
J'ai écrit aidé d'un collègue cette fonction

Function NombreFemmeM(Colonne As Range)
res = 0
For Each rw In Colonne
If (rw.Value = "m") Then
If (ActiveSheet.Cells(rw.Row, 2).Value = "f") Then
res = res + 1
End If
End If
Next

NombreFemmeM = res
End Function

Mon problème est que si l'on change une variable de la colonne B, le calcul ne
se met pas a jour. Si l'on change une variable des autres colonnes pas de
problème.
Que manque t-il ?

Merci d'avance


Avatar
ru-th
Salut
pour le total général
=somme((sexe="F")*(jour="M"))
validation matricielle ctrl+shift+entrée

pour chaque ligne
=((B1="F")*OU(c1:e1="M"))
validation matricielle ctrl+shift+entrée

tu as raison, c'est introuvable sur excellabo ;-)))

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"LaurentBeaumont" a écrit dans le message de
news:
Bonjour,
bien que consultant excelabo régulièrement je ne trouve pas ce que je
cherche

et votre aide sera la bienvenue.
Voila j'ai sur une colonne (B) le sexe des agents codés H ou F
Sur les colonnes suivantes (C, D, E...) le roulement des agents M J ou S
J'aurais voulou que la fonction nb.si qui compte mon nombre de M J ou S en
bout

de colonne fasse un tri en fonction de la premiere
J'ai écrit aidé d'un collègue cette fonction

Function NombreFemmeM(Colonne As Range)
res = 0
For Each rw In Colonne
If (rw.Value = "m") Then
If (ActiveSheet.Cells(rw.Row, 2).Value = "f") Then
res = res + 1
End If
End If
Next

NombreFemmeM = res
End Function

Mon problème est que si l'on change une variable de la colonne B, le
calcul ne

se met pas a jour. Si l'on change une variable des autres colonnes pas de
problème.
Que manque t-il ?

Merci d'avance