Afficher une liste répondant à des conditions

Bonjour à tous,

Serait-ce possible de sortir une liste qui affiche le nom de tous les appartements répondant à chaque type d'appartements? et sans effectuer plein de filtres bien sur !

Par exemple, sortir la liste de tous les noms d'appartement du type 1 ? et non compter le nombre d'appartements répondant à la condition.

Merci beaucoup

exemple excel

Bonsoir,

Pas sûr de bien comprendre la question (tout comme un garagiste devant une photo de voiture en panne....)

Un filtre sur la colonne "N°1", en sélectionnant "1", te donne le résultat, non?

Mais comme dit plus haut, pas sûr du tout....

Bonne soirée

proposition

serie bdd

Cousinhub, oui bien sur c'est facile avec un filtre sauf qu'il faut refaire le filtre pour chaque appartement, chose que je ne veux pas. j'aimerais que ça me retranscrive automativement dans un tableau la liste des appartements de type 1, 2,...etc

Steelson, serait-ce possible que tu m'écrives ta formule directement sur un fichier excel car j'ai du mal à m'y retrouver

Merci pour votre aide

Pas de soucis guimo89

comme tu as posé ta question avec image je pensais que tu voulais la réponse au format image.

Mets nous un petit extrait sous excel, je te renvoie la formule sous excel.

Voici mon fichier, il y a des sous totaux, j'espère que ça ne compliquera pas trop la chose!

merci beaucoup!

64liste-appart.xlsx (40.09 Ko)

C'est bien pour cela qu'il fallait un extrait du fichier, en effet les sous-totaux sont mal venus !

En règle générale, je n'aime pas trop, je préfère faire un TCD pour les sous-totaux.

=SI(LIGNE($A1)>NB.SI(INDIRECT("TabAppart["&$B$1&"]");B$2);"";INDEX(TabAppart[Numéro appart];-1+PETITE.VALEUR(SI(INDIRECT("TabAppart["&$B$1&"]")=B$2;LIGNE(TabAppart[Numéro appart])+1-LIGNE(TabAppart[[#En-têtes];[Numéro appart]]);"");LIGNE($A1))))
144liste-appart.xlsx (42.86 Ko)

wahou super merci beaucoup!!!

une idée de comment supprimer l'affichage du sous total dans la liste?

Bon maintenant faut que je réfléchisse sur l'utilisation de tes fonctions pour arriver à les réutiliser dans d'autres cas

Un grand merci Steelson!

je tente moi-même de compléter cette fonction et supprimer sous total, mais je n'y suis pas encore arrivé sans modifier le tableau de données

Voici la solution : tu remplaces les "1" par des "x" et le sous.total type 9 par un type 3 équivalent à NBVAL

74liste-appart.xlsx (45.11 Ko)

Que dire si ce n'est mille merci!

Steelson, ça donnerait quoi en formule si je ne veux pas d'une liste déroulante, mais plutôt indiquer le type d'appartements dans chaque colonne sur la ligne 1 ?

Merci

Pour moi, cela donne ceci :

50liste-appart.xlsx (51.57 Ko)

Bonjour Steelson,

pourrais-tu expliquer pas à pas ta formule stp? J'aimerais pouvoir arriver à refaire cela dans d'autres cas.

Merci

=SI(LIGNE($A1)>NB.SI(INDIRECT("TabAppart["&B$1&"]");B$2);"";INDEX(TabAppart[Numéro appart];-1+PETITE.VALEUR(SI(INDIRECT("TabAppart["&B$1&"]")=B$2;LIGNE(TabAppart[Numéro appart])+1-LIGNE(TabAppart[[#En-têtes];[Numéro appart]]);"");LIGNE($A1))))

allons-y pas par pas ...

la capsule :

=SI(LIGNE($A1)>NB.SI(INDIRECT("TabAppart["&B$1&"]");B$2);"";________________))

INDIRECTest ici pour faire en sorte de remplacer l'en-tête du tableau TabAppart"n°1" par exemple par le contenu de la cellule B$1; Au passage il n'y a pas de $ devant B pour pouvoir tirer la formule à droite

LIGNE($A1) ou A1 du reste (sans $ devant le 1) est le numéro de la ligne

NB.SI compte le nombre de fois où il y a une croix (case B$2)

... tout ceci pour mettre "" passé le nombre d'occurences

le corps :

INDEX(
    TabAppart[Numéro appart];
    -1+PETITE.VALEUR(
        SI(
            INDIRECT("TabAppart["&B$1&"]")=B$2;
            LIGNE(TabAppart[Numéro appart])+1-LIGNE(TabAppart[[#En-têtes];[Numéro appart]]);
            ""
        );
    LIGNE($A1)
)

... la suite du feuilleton ce soir !

simplifions pour la suite ...

=SI(LIGNE(A1)>NB.SI(TabAppart[n°1];"x");"";INDEX(TabAppart[Numéro appart];-1+PETITE.VALEUR(SI(TabAppart[n°1]="x";LIGNE(TabAppart[Numéro appart])+1-LIGNE(TabAppart[[#En-têtes];[Numéro appart]]);"");LIGNE(A1))))

le corps :

INDEX(
    TabAppart[Numéro appart];
    -1+PETITE.VALEUR(
        SI(
            TabAppart[n°1]="x";
            LIGNE(TabAppart[Numéro appart])+1-LIGNE(TabAppart[[#En-têtes];[Numéro appart]]);
            "");
        LIGNE(A1))
)

INDEXva aller chercher dans la colonne Numéro appart

la plus petite valeur* (rang 1, puis 2, puis 3 etc. représenté par LIGNE(A1), puis LIGNE(A2), puis A3 etc

d'une série de données conditionnée par SI et la condition "x", si cette condition n'est pas respectée, ce sera "", si elle est respectée ce sera la ligne en relatif par rapport à l'en-tête du tableau qui peut comme ici ne pas être positionnée à la ligne 1 et donc 1-LIGNE(TabAppart[[#En-têtes];[Numéro appart]]) n'est pas forcément nul

* -1 car TabAppart[Numéro appart] ne prend pas en compte l'en-tête du tableau

Si tu as suivi c'est bien ! sinon refais pas à pas sur un cas plus simple !

Rechercher des sujets similaires à "afficher liste repondant conditions"