[RESOLU] Ramener le nom de la n-ieme plus grande valeur, avec criteres multiples

glubobo

XLDnaute Nouveau
Bonjour a tous,

Voila j'ai un petit probleme,

Je souhaite sortir une liste automatique de mes N plus grandes valeures (surfaces en m2), mais cette liste doit me donner le nom du locataire et non la surface en question.

De plus, ces locataires doivent répondre a un ensemble de criteres pour faire partie de la liste (par exemple, la surface en question doit etre occupée et non vacante, ou encore le fait que la surface proviennent d'un centre commercial en particulier en excluant les autres).

Il y a pas mal d'exemples de liste avec multiple criteres, mais qui renvoient la valeur (m2), ou encore des listes donnant le nom du n-ieme plus large, mais se basant cette fois sur un seul critere. Je n'ai pas réussi a trouver un exemple qui réponde a mon probleme, ni a bidouiller moi meme...

Un exemple en piece jointe,

Merci beaucoup d'avance a tous,
 

Pièces jointes

  • exemple Excel Download.xlsx
    10.8 KB · Affichages: 39

glubobo

XLDnaute Nouveau
Bonjour Jocelyn,

Merci pour ton retour, en effet ca fonctionne tres bien!

J'espérais m'en sortir sans fonction matricielle mais je pense qu'il va falloir que je m'y mette un moment :)

Par contre j'ai qques questions :

- pourquoi la partie "Index" doit démarrer obligatoirement a partir de la premiere ligne ? Si je le démarre en ligne 3 ou 4 il me donne un mauvais résultat (H&M au lieu de Celio)
- Instinctivement, j'aurais ecrit {=INDEX(D1:d15;SUMPRODUCT((LARGE(IF(($C$4:$C$15="Lille")*($E$4:$E$15="occupé");F4:F15);2))))}
Quel est le sens de la seconde partie de la formule ?
{=INDEX(D1:d15;SUMPRODUCT((LARGE(IF(($C$4:$C$15="Lille")*$E$4:$E$15="occupé");F4:F15);2)=IF(C4:C15="lille";F4:F15;0))*ROW(F4:F15)))}
- Il est impossible de le faire sans formule matricielle n'est-ce pas ?

Merci beaucoup !!
 

Jocelyn

XLDnaute Barbatruc
re,
ici la 2 eme il
La partie sommeprod donne le numéro d'index (ici le numéro de ligne Puisse que ROW(F4:F15) c'est pour cela que l'index démarre ligne 1 . de la on recherche la xième grande valeur egale aux valeur de F4:F15 il se peux que la valeur que tu cherches soit présente plusieurs fois et appliquée a des ville différente dans ce cas si l'on ne met pas le = IF(C4:C15="lille";F4:F15;0) l'addition des numéro de ligne se fera sur toutes les lignes et le résultat sera érroné dans cette partie on dit de ne tenir compte des valeur de F4:F5 que si en C4 C15 il y a le nom de la ville recherchée

Voila j'espère avoir été clair

Cordialement
 

glubobo

XLDnaute Nouveau
re,
ici la 2 eme il
La partie sommeprod donne le numéro d'index (ici le numéro de ligne Puisse que ROW(F4:F15) c'est pour cela que l'index démarre ligne 1 . de la on recherche la xième grande valeur egale aux valeur de F4:F15 il se peux que la valeur que tu cherches soit présente plusieurs fois et appliquée a des ville différente dans ce cas si l'on ne met pas le = IF(C4:C15="lille";F4:F15;0) l'addition des numéro de ligne se fera sur toutes les lignes et le résultat sera érroné dans cette partie on dit de ne tenir compte des valeur de F4:F5 que si en C4 C15 il y a le nom de la ville recherchée

Voila j'espère avoir été clair

Cordialement

Oui merci tres clair,
Le fait de ne pas marquer la condition "occupée" en deuxieme partie de formule m'a un peu desorienté je pense :)

Je viens de me rajouter qques autres conditions et ca fonctionne !

Merci encore
 
Haut Bas