OVH Cloud OVH Cloud

SommeProd

5 réponses
Avatar
2B or not 2B
Bjr

Colonne A = dates
Colonne B (nommée AnY) = ancienneté en années calculée avec DATEDIF "y"
Colonne C (nommée AnM) = ancienneté en mois calculée avec DATEDIF "ym"

En D1 saisie de la condition "nombre d'années"
En D2 saisie de la condition "nombre de mois"
En D3 la formule {=SOMMEPROD((AnY<=D1)*(AnM<=D2))}

Le problème est qu'au niveau uilisation il existe un "sous-entendu".
En effet quand D1=0 pas d'ambiguité, le comptage se fait sur le nombre
de mois saisis en D2
Mais quand D1>=1 et D2=0 l'utilisateur considère que la réponse devrait
correspondre à 12 mois, or ce n'est évidemment pas le cas, avec cette
formule, et je ne crois pas que l'on puisse insérer des SI.

Bref, je ne vois pas l'astuce ....

5 réponses

Avatar
Gilgamesh
"2B or not 2B" a écrit dans le message de
news:
Bjr

Colonne A = dates
Colonne B (nommée AnY) = ancienneté en années calculée avec DATEDIF "y"
Colonne C (nommée AnM) = ancienneté en mois calculée avec DATEDIF "ym"

En D1 saisie de la condition "nombre d'années"
En D2 saisie de la condition "nombre de mois"
En D3 la formule {=SOMMEPROD((AnY<Ñ)*(AnM<Ò))}

Le problème est qu'au niveau uilisation il existe un "sous-entendu".
En effet quand D1=0 pas d'ambiguité, le comptage se fait sur le nombre
de mois saisis en D2
Mais quand D1>=1 et D2=0 l'utilisateur considère que la réponse devrait
correspondre à 12 mois, or ce n'est évidemment pas le cas, avec cette
formule, et je ne crois pas que l'on puisse insérer des SI.


-- Pourquoi ne pas calculer une nouvelle variable AnYM=AnY+AnM/12 et faire
le test dessus ?

Avatar
isabelle
mais si,

=si(D2=0;SOMMEPROD((AnY<Ñ)*1)*12;SOMMEPROD((AnY<Ñ)*(AnM<Ò)))

isabelle


Bjr

Colonne A = dates
Colonne B (nommée AnY) = ancienneté en années calculée avec DATEDIF "y"
Colonne C (nommée AnM) = ancienneté en mois calculée avec DATEDIF "ym"

En D1 saisie de la condition "nombre d'années"
En D2 saisie de la condition "nombre de mois"
En D3 la formule {=SOMMEPROD((AnY<Ñ)*(AnM<Ò))}

Le problème est qu'au niveau uilisation il existe un "sous-entendu".
En effet quand D1=0 pas d'ambiguité, le comptage se fait sur le nombre
de mois saisis en D2
Mais quand D1>=1 et D2=0 l'utilisateur considère que la réponse devrait
correspondre à 12 mois, or ce n'est évidemment pas le cas, avec cette
formule, et je ne crois pas que l'on puisse insérer des SI.

Bref, je ne vois pas l'astuce ....


Avatar
2B or not 2B
merci de ces réponses....mais:

en écrivant =SI....on ne peut pas valider par cntl shift
entrée------>n'est plus matriciel ->fiabilité de la formule?

le problème est plus complexe qu'il n'y parait (enfin pour moi).

En effet quand le nbre d'années est 0, il faut totaliser les N mois
indiqués en D2 (SOMMEPROD marche correctement)

Mais à l'année 1, il faut ajouter à (AN=1)*( MOIS=0) les 11 mois
précédents soit (AN=0)*(MOIS=1à11)
Puis à l'année 2 il faut ajouter à (AN=2)*(MOIS=0) toute l'année
précédente soit (AN=1)*(MOIS=1à11) et (AN=0)*(MOIS=1à11)

Et ainsi de suite.
C'est donc un cumul, à partir d'une borne de départ, jusqu'à une borne
d'arrivée. Je ne vois pas comment une formule peut être construite pour
traduire cette itération.

NB: Préfère éviter le VBA, car ai tout oublié des langues étrangères.
Avatar
isabelle
la solution qu'à donné Gilgamesh,
"calculer une nouvelle variable AnYM=AnY+AnM/12 et faire le test dessus
?"
ne convient pas ?

isabelle


merci de ces réponses....mais:

en écrivant =SI....on ne peut pas valider par cntl shift
entrée------>n'est plus matriciel ->fiabilité de la formule?

le problème est plus complexe qu'il n'y parait (enfin pour moi).

En effet quand le nbre d'années est 0, il faut totaliser les N mois
indiqués en D2 (SOMMEPROD marche correctement)

Mais à l'année 1, il faut ajouter à (AN=1)*( MOIS=0) les 11 mois
précédents soit (AN=0)*(MOIS=1à11)
Puis à l'année 2 il faut ajouter à (AN=2)*(MOIS=0) toute l'année
précédente soit (AN=1)*(MOIS=1à11) et (AN=0)*(MOIS=1à11)

Et ainsi de suite.
C'est donc un cumul, à partir d'une borne de départ, jusqu'à une borne
d'arrivée. Je ne vois pas comment une formule peut être construite pour
traduire cette itération.

NB: Préfère éviter le VBA, car ai tout oublié des langues étrangères.


Avatar
2B or not 2B
effectivement c'était plus simple comme ça. Ou presque. J'ai raisonné
sur le nombre de mois total en écrivant MmT*AnY+AnM

Merci de votre intérêt à mon problème et à vos suggestions.