OVH Cloud OVH Cloud

formule excel

9 réponses
Avatar
fredbzr
bonjour
mon soucis peut paraître simple
soit en a1 le nombre de "m" contenu dans les cellules c5,c72,c47,c139...
A chaque fois qu'il y a un "m" dans une de ces cellules, a1 doit augmenter
de 1
j'ai bien une formule, mais elle est longue et répétitive
=SI(C$5=$AE$4;1;0)+SI(C$72=$AE$4;1;0)+SI(C$139=$AE$4;1;0)+SI(C$206=$AE$4;1;0)+SI(C$273=$AE$4;1;0)+SI(C$340=$AE$4;1;0)+SI(C$407=$AE$4;1;0)+SI(C$474=$AE$4;1;0)+SI(C$541=$AE$4;1;0)+SI(C$608=$AE$4;1;0)+SI(C$675=$AE$4;1;0)+SI(C$742=$AE$4;1;0)+SI(C$809=$AE$4;1;0)

Après avoir essayé avec nb.si, çà ne marche pas car cette fonction définie
pour une plage de cellule.
Merci par avance de votre aide
Fred

9 réponses

Avatar
ru-th
Salut

nommes ta zone de cellules
=nb.si(plage;ae4)
a+
rural thierry
"fredbzr" a écrit dans le message de
news:433a6ad5$0$17227$
bonjour
mon soucis peut paraître simple
soit en a1 le nombre de "m" contenu dans les cellules c5,c72,c47,c139...
A chaque fois qu'il y a un "m" dans une de ces cellules, a1 doit augmenter
de 1
j'ai bien une formule, mais elle est longue et répétitive

=SI(C$5=$AE$4;1;0)+SI(C$72=$AE$4;1;0)+SI(C$139=$AE$4;1;0)+SI(C$206=$AE$4;1;0

)+SI(C$273=$AE$4;1;0)+SI(C$340=$AE$4;1;0)+SI(C$407=$AE$4;1;0)+SI(C$474=$AE$4
;1;0)+SI(C$541=$AE$4;1;0)+SI(C$608=$AE$4;1;0)+SI(C$675=$AE$4;1;0)+SI(C$742=$
AE$4;1;0)+SI(C$809=$AE$4;1;0)

Après avoir essayé avec nb.si, çà ne marche pas car cette fonction définie
pour une plage de cellule.
Merci par avance de votre aide
Fred




Avatar
anonymousA
bonjour,

t'es sur que ca marche avec une plage de cellules non contigues ?

A+
Avatar
SL
Bonjour
il me semble qu'une plage non contigue génère une erreur avec NB.SI
je propose
=SOMMEPROD((plage=$AE$4)*(MOD(LIGNE(plage)-5;67)=0))
avec "plage" = $C$1:$C$x

Stéphane

"anonymousA" a écrit dans le message de news:

bonjour,

t'es sur que ca marche avec une plage de cellules non contigues ?

A+



Avatar
ru-th
Salut

coup de fatigue ! probablement ;-))
fonction perso alors !

Function SOMDISCONT(plage As Range,var)
For Each i In plage
If i=var Then SOMDISCONT = SOMDISCONT + 1
Next
End Function

;-))
rural thierry

"anonymousA" a écrit dans le message de
news:
bonjour,

t'es sur que ca marche avec une plage de cellules non contigues ?

A+



Avatar
anonymousA
bonjour,

ouais, c'est mieux !!

A+
Avatar
anonymousA
y'a pas de mal.

cordialement,

A+
Avatar
fredbzr
merci d'avoir pris en compte mon problème si rapidement
mais pour la solution de Stephane, je ne vois pas à quoi correspond "plage"
= $C$1:$C$x ainsi que le -5;67
merci
fred

"anonymousA" a écrit dans le message de news:

y'a pas de mal.

cordialement,

A+



Avatar
SL
Re-bonjour

"plage" = $C$1:$C$x
càd sélectionne la plage $C$1:$C$x (x = 1000 par exemple) et nomme là

"plage"
Voir insertion/nom/définir
Si tu ne connais pas les plages nommées, je te conseille de parcourir l'aide
sur le sujet. C'est très utile dans Excel.

=SOMMEPROD((plage=$AE$4)*(MOD(LIGNE(plage)-5;67)=0))
tu cherches le nombre de C5, C72, C139... qui sont égals à AE4 mais pas les

autres cellules de la colonne C.
(plage=$AE$4) te crée une matrice de 0 et de 1 avec des 1 là où une cellule
est égale à AE4
(MOD(LIGNE(plage)-5;67)=0) te crée une matrice de 0 et de 1 avec des 1 sur
les lignes 5,72,139... càd celles qui diminuées de 5 sont multiples de 67
SOMMEPROD te multiplie terme à terme les 0 et les 1 et en fait la somme.

si C4 = AE4 tu auras 1*0 (car 4-5 n'est pas multiple de 67)
si C5 = AE4 tu auras 1*1 (5-5 est multiple de 67)
si C72 <> AE4 tu auras 0*1
...
et la somme de tout ça donne ce que tu cherches.

ça marche ?

Stéphane


"fredbzr" a écrit dans le message de news:
433a8ec1$0$5376$
merci d'avoir pris en compte mon problème si rapidement
mais pour la solution de Stephane, je ne vois pas à quoi correspond
"plage" = $C$1:$C$x ainsi que le -5;67
merci
fred

"anonymousA" a écrit dans le message de news:

y'a pas de mal.

cordialement,

A+







Avatar
fredbzr
merci des explications
je vais me pencher sur le sujet (y a du boulot)
merci encore du temps que vous avez pris
fred
"SL" a écrit dans le message de news:
%
Re-bonjour

"plage" = $C$1:$C$x
càd sélectionne la plage $C$1:$C$x (x = 1000 par exemple) et nomme là

"plage"
Voir insertion/nom/définir
Si tu ne connais pas les plages nommées, je te conseille de parcourir
l'aide sur le sujet. C'est très utile dans Excel.

=SOMMEPROD((plage=$AE$4)*(MOD(LIGNE(plage)-5;67)=0))
tu cherches le nombre de C5, C72, C139... qui sont égals à AE4 mais pas

les autres cellules de la colonne C.
(plage=$AE$4) te crée une matrice de 0 et de 1 avec des 1 là où une
cellule est égale à AE4
(MOD(LIGNE(plage)-5;67)=0) te crée une matrice de 0 et de 1 avec des 1 sur
les lignes 5,72,139... càd celles qui diminuées de 5 sont multiples de 67
SOMMEPROD te multiplie terme à terme les 0 et les 1 et en fait la somme.

si C4 = AE4 tu auras 1*0 (car 4-5 n'est pas multiple de 67)
si C5 = AE4 tu auras 1*1 (5-5 est multiple de 67)
si C72 <> AE4 tu auras 0*1
...
et la somme de tout ça donne ce que tu cherches.

ça marche ?

Stéphane


"fredbzr" a écrit dans le message de news:
433a8ec1$0$5376$
merci d'avoir pris en compte mon problème si rapidement
mais pour la solution de Stephane, je ne vois pas à quoi correspond
"plage" = $C$1:$C$x ainsi que le -5;67
merci
fred

"anonymousA" a écrit dans le message de news:

y'a pas de mal.

cordialement,

A+