grande.valeur sous plusieurs conditions

bricorico83

XLDnaute Nouveau
Bonjour à tous,

Malgré de longue recherche sur les forums, impossible de trouver la solution à mon problème alors merci à vous tous :
un tableau avec de multiples criteres
A : Pays / B : Département / C : Ville / D : Nbre d'habitants

Objectif : faire la somme des habitants des 10 plus grandes villes d'un même département et d'un même pays.
Ne pas se focaliser sur le sens des critères qui ne sont que des exemples.

J'ai tenté en matricielle :
{=SOMMEPROD(GRANDE.VALEUR(SI(ET(A2:A65000="FRANCE";B2:B65000="VAR");D2:D65000);LIGNE(1:10)))}
mais le "ET" n'est pas compris (une seule condition fonctionne)

A+
 

Dugenou

XLDnaute Barbatruc
Re : grande.valeur sous plusieurs conditions

Bonjour,
Concernant le ET, tu peux remplacer par (A2:A65000 ="France")*(B2:B65000="Var") mais je doute que le grande.valeur(...;ligne(1:10) fonctionne
D'autre part le sommeprod sur 650000 *65000*65000 va être un peu long à calculer : tu ne peux pas réduire un peu ?
Pourrais-tu joindre un fichier réduit pour des tests ?
Cordialement
 

thombzh

XLDnaute Junior
Re : grande.valeur sous plusieurs conditions

Dans cette formule j'obtiens bien la somme des habitants des 10 plus grande villes, reste à trouver pour les conditions...

=SOMME(SI($D$2:$D$65000+LIGNE($D$2:$D$65000)/10^12>=GRANDE.VALEUR($D$2:$D$65000+LIGNE($D$2:$D$65000)/ 10^12;10);$D$2:$D$65000;0))
 

thombzh

XLDnaute Junior
Re : grande.valeur sous plusieurs conditions

Dans cette formule j'obtiens bien la somme des habitants des 10 plus grande villes, reste à trouver pour les conditions...

{=SOMME(SI($D$2:$D$65000+LIGNE($D$2:$D$65000)/10^12>=GRANDE.VALEUR($D$2:$D$65000+LIGNE($D$2:$D$65000)/ 10^12;10);$D$2:$D$65000;0))}
 

bricorico83

XLDnaute Nouveau
Re : grande.valeur sous plusieurs conditions

Merci à vous,

Après essai, je confirme que (A2:A65000 ="France")*(B2:B65000="Var") fonctionne et en profite pour confirmer que grande.valeur(...;ligne(1:10) fonctionne également.

plus compliqué :
le nombre de ligne à comptabiliser est variable. Il est donc nécessaire de passer une variable à la fonction "ligne(1:10)" par "ligne(1:variable)"
la variable est contenue dans une autre cellule et bien évidement la fonction "ligne(1:$A$1)" ne fonctionne pas.

help
A+
 

Dugenou

XLDnaute Barbatruc
Re : grande.valeur sous plusieurs conditions

Ah Ah, trop facile !!

ligne(indirect("1:"&$a$1))

Cordialement

PS
1) j'ai trouvé très sioux le si( ... >=grande.valeur(...;10);...
2) le /10^12 c'est pour éviter les ex aequo ?
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : grande.valeur sous plusieurs conditions

Salut,
au temps !
selon mes sources (qui ne sont pas absolument sûres) : expression empruntée au langage militaire quand c'est le caporal chef qui se trompe sur le han deuy, han deuy et qu'il se remet au temps.
Cordialement
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 836
Messages
2 092 653
Membres
105 479
dernier inscrit
chaussadas.renaud