Automatisation d'un Calcul

A

Anna

Guest
Bonjour à tous et toutes,

J'ai tellement apprécié la gentillesse des personnes qui naviguent sur ce forum que je me permets de predre quelques minutes de votre temps afin de vous expliquer la deuxième partie de mon problème.

J'exécute présentement un calcul manuellement et j'aimerais l'automatiser.
Dans ma colonne F plage F6 à F24 j'ai des résultats qui peuvent varier de 0 à 5.
En F25 je veux calculer le produit des cellules qui contiennent des valeurs supérieures à 0 et extraire la racine nième de ce résultat afin de ramener mon résultat à un valeur comprise entre 1 et 5. nième étant le nombre de cellule comprenant une valeur supérieure à 0.

Présentement j'ajuste manuellement ma formule au nombre de valeurs supérieures à 0 comme par exemple si j'ai 3 valeurs:

=PRODUIT(F6;F7;F12)^(1/3)

Afin d'automatiser le tout j'ai élaboré la formule suivante mais hélas sans succès :-((

=((Produit(F6:F24);si val(F6:F24;>0))^(1/NB(F6:F24;>0))

Est-ce que quelqu'un aurait la gentillesse d'aider, encore une fois, la pauvre novice que je suis...

Un très très gros merci à l'avance...
 
P

PhiBou

Guest
Bonjour Anna, le Forum

Une solution intermédiaire, je pense qu'on peut le faire en 1 seule cellule

Dans la cellule G6 : =SI(F6=0;"";F6)

Recopie incrémentée de G6 à G24

Dans la cellule F25 : =PRODUIT(G6:G24)^(1/NB(G6:G24))

Bonne fin de journée

PhiBou
 
A

Anna

Guest
Bonjour Phibou,

Un gros merci pour ta solution intermédiaire. J'ai toutefois encore un problème car toute les colonnes de A à Z sont utilisées, les quatres premières renferment les données utilisées pour les calculs dans la cinquième colonne ex:les colonnes B,C,D,et E servent aux calculs pour la colonne F et ainsi de suite jusqu'à Z.

C'est pour cette raison que je cherche à contenir la formule dans un seule cellule. Ce calcul se répète 5 fois dans ma feuille soit en F25, K25,P25,U25 et Z25.

Merci, je vais essayer de patenter quelquechose avec tes informations.

Anna
 
P

PhiBou

Guest
Bonjour Anna, le Forum

Je vois que ta question n'a pas eu d'autres réponses. Aussi il va falloir soit te contenter de la mienne en faisant le calcul colonne G sur une autre feuille (que tu masques pour l'esthétique).

Soit passer par une fonction :

Dans un module tu entres ce code :

Option Explicit
Function Anna(Col As Range)
Dim Compteur As Byte
Dim cel As Range
Dim Prod As Single
Prod = 1
Compteur = 0
For Each cel In Col
If cel.Value <> 0 Then
Prod = Prod * cel.Value
Compteur = Compteur + 1
End If
Next cel
Anna = Prod ^ (1 / Compteur)
End Function

et dans la cellule F25 tu tapes : = Anna(F6:F24)

et de même pour les 4 autres cellules de calcul.

Bonne journée

PhiBou
 
P

PhiBou

Guest
Rebonjour Anna, bonjour Jean-Marie

Super Jean-Marie, je tournais autour sans mettre la main dessus :

Petite correction racine énième donc : 1/NB.SI ce qui donne :

=PRODUIT(SI(F6:F24=0;1;F6:F24))^(1/NB.SI(F6:F24;">0"))

PhiBou

Bonne journée
 
A

Anna

Guest
Bonjour à vous deux (Jean-Marie et Phibou)

Vous êtes vraiment super! J'avais modifié mon fichier en fonction des informations de Phibou (Formule sur 5 autres colonnes que j'ai masquées par la suite) mais la formule que vous me proposez maintenant est exactement ce que je cherchais.

Encore une fois, un gros merci à vous deux et à tous les acros de ce forum.

Joyeuses Fêtes à tous et toutes....:))))

Anna
 
J

Jean-Marie

Guest
Re...

Anna, il est conseillé dans la charte du forum, de continuer sur le même fil quand la question concerne le même sujet, même si tu as eu une réponse positive.

Je n'avais pas recherché dans ton précédent fil, le fichier proposé le 19/11

Voici une nouvelle formule qui supprime le message #DIV0, quand toutes les valeurs sont à 0.
=SI(SOMME(F6:F24)=0;0;PRODUIT(SI(F6:F24=0;1;F6:F24))^(1/NB.SI(F6:F24;">0")))

Bonne soirée

@+Jean-Marie
 
A

Anna

Guest
Bonsoir Jean-Marie,

J'ai essayé ta formule ce matin et au lieu d'obtenir 0 j'obtiens le chiffre 3 et ce même si toutes les valeures sont à 0. Je vais donc analyser la formule et voir ce qui peut être la source de cette réponse.

Pour ce qui est des complexes, ne craint rien il m'en faut énormément plus pour le devenir :))

Ma devise est Même si le boeuf est lent la terre est patiente.

Bonne soirée!

Anna
 
A

Anna

Guest
C'est encore moi Anna,

Cher monsieur Jean-Marie auriez vous l'obligeance de ne point tenir compte de mon dernier message svp!

Votre formule est parfaite c'est moi qui ne l'est pas. J'ai trouvé mon erreur et tout est maintenant ok!

Désolée,

Anna
 
J

Jean-Marie

Guest
Bonsoir Anna

Anna arrête avec le monsieur, et tutoie moi STP, le tutoiement n'est pas une marque d'impolitesse ou de non respect...

Je te souhaite une bonne fin de dimanche, et à la prochaine sur un autre fil.

@+Jean-Marie
 

Discussions similaires

Réponses
3
Affichages
297

Statistiques des forums

Discussions
312 435
Messages
2 088 386
Membres
103 838
dernier inscrit
noureddine