Calcul dans deux colonnes sous la forme Σ(ri*li) au lieu de (Σri)*(Σli)

Bonjour,

Dans un but de traitement de données, je souhaiterais effectuer un calcul sous cette forme (tout se passe dans l'onglet RB flore) :

Σ(ri*Ii)/Σri

Avec : "ri" recouvrement de l'espèce i (colonne D) et "Ii" coefficient d'humidité de l'espèce i (colonne G).

Le calcul des coefficients d'humidité est découpé selon si l'espèce est xéro / méso / Hygro /... phile, par exemple pour les espèces xérophiles (dont le coefficient est < 5) , le calcul effectué actuellement est :

"=SOMME.SI(G4:G152;"<5";G4:G152)*SOMME.SI(G4:G152;"<5";D4:D152)/SOMME(D4:D152)"

Sauf que du coup cela me fait le calcul suivant :

((Σri)*(Σli))/Σri

Ce qui ne donne pas du tout le même résultat. Comment modifier le calcul de manière à ce que cela se fasse de la bonne manière avec chaque recouvrement multiplié individuellement par le coefficient associé et non pas l'ensemble des recouvrements multipliés par l'ensemble des coefficients ?

Ci-joint une version simplifiée du fichier.

Merci d'avance.

11aide-calcul.xlsx (269.41 Ko)

Bonjour à tous !

Pas certain d'avoir compris, je tente néanmoins ceci :

=SOMME(SI(G4:G152<5;G4:G152*D4:D152;0))/SOMME(D4:D152)

C'est exactement ça qu'il me fallait, merci.

Comment faire par contre pour l'appliquer à une valeur comprise entre deux nombres.

Par exemple là vous avez transformé :

=SOMME.SI(G4:G152;"<5";G4:G152)*SOMME.SI(G4:G152;"<5";D4:D152)/SOMME(D4:D152)

En :

=SOMME(SI(G4:G152<5;G4:G152*D4:D152;0))/SOMME(D4:D152)

Ce qui fonctionne car les valeurs à prendre en compte sont seulement celles inférieures à 5. Mais comment faire pour cette formule là par exemple, où les valeurs à prendre en compte doivent être comprises entre 4 et 7 :

=SOMME.SI.ENS(G4:G152;G4:G152;">4";G4:G152;"<7")*SOMME.SI.ENS(D4:D152;G4:G152;">4";G4:G152;"<7")/SOMME(D4:D152)

J'ai essayé avec "ET" mais cela ne fonctionne pas :

=SOMME(SI(ET(G4:G152>4;G4:G152<7);G4:G152*D4:D152;0))/SOMME(D4:D152)

J'obtiens 0 quoi qu'il arrive. Comment procéder dans ce cas ?
Merci

Bonjour à tous de nouveau !

Une proposition à l'aveugle...

=SOMME(SI(G4:G152>4;G4:G152;0)*SI(G4:G152<7;G4:G152;0))/SOMME(G4:G152)

Rebonjour,

Merci pour votre essai, malheureusement cela ne fonctionne pas, je n'obtiens pas le résultat escompté.

Bonjour à tous de nouveau !

Je n'avais pas différencié les colonnes G et D !

Contribution amendée :

=SOMME((G4:G152>4)*(G4:G152<7)*G4:G152 *D4:D152)/SOMME(D4:D152)

Rebonjour,

Merci pour ce nouvel essai.

Quand je l'essaie sur une toute petite plage ça fonctionne donc à priori on est sur la bonne piste, néanmoins dans mon fichier cela me met une erreur #VALEUR! ou #N/A selon la situation. Je pense que ça vient du fait que mes listes sont générées via la fonction FILTRE et qu'il y a des trous à certains endroits (parce que les données n'existent pas pour cette espèce donc la case est simplement vide), du coup avec la formule telle quelle ça ne passe pas (quand j'essaie sur une plage sans trous ça passe tout seul). Y a-t-il moyen de corriger ça dans la formule ? Je ne sais pas si ce que je dis est clair mais si vous regardez dans le fichier je pense que vous comprendrez ce que je veux dire :)
Merci pour votre patience en tout cas.

Bonjour à tous de nouveau !

Travaillez-vous dans un environnement Microsoft 365 ? (Merci de le préciser dans votre profil. 2303 est le numéro de révision de la version Excel)

Re,

Oui, je suis bien dans un environnement Microsoft 365.

Bonjour à tous de nouveau !

Merci de cette précision et mise à jour !

A tester..... :

=LET(
mg;G4#;md;D4#;
t;ASSEMB.H(md;mg);
f;FILTRE(t;(mg>4)*(mg<7));
SOMME(PRENDRE(f;;1)*PRENDRE(f;;-1))/SOMME(PRENDRE(f;;1)
))

Re,

Merci pour l'essai, ça ne fonctionne toujours pas, j'obtiens 5 alors que si je refais le calcul "à la main" j'obtiens 1,67, ce qui devrait être le résultat. Néanmoins je vais creuser un peu car il y a plein de fonctions que je ne connais pas dans cette formule donc ça pourra me servir de comprendre un peu tout ce qui s'y passe.

Bref, j'ai finalement réussi à contourner le problème en remplaçant tous les "vides" par des zéro dans la liste entière de plantes, ce qui me permet de faire fonctionner la formule précédente. Merci pour l'aide du coup : )

Bonjour à tous de nouveau !

Au temps pour moi..... erreur sur le dénominateur.

Correction :

=LET(
mg;G4#;md;D4#;
t;ASSEMB.H(md;mg);
f;FILTRE(t;(mg>4)*(mg<7));
SOMME(PRENDRE(f;;1)*PRENDRE(f;;-1))/SOMME(md)
)

Cette mise à jour retourne bien 1,67.

Super, merci beaucoup pour cette dernière correction ! : )

Bonjour à tous !

Bien....

Je vous remercie de ce retour.

Rechercher des sujets similaires à "calcul deux colonnes forme lieu"