Bonjour à tous,
Après m'être arraché les cheveux je me décide finalement à vous demander de l'aide. Supposons le tableau de la capture suivante stocké dans une plage nommée (baptisée "tableau" pour l'occasion)

Ce que je cherche à faire, c'est créer une plage nommée (baptisée "tri") qui me filtre ce tableau sur un critère de la colonne A. Par exemple, si mon critère vaut "A", je veux que ma plage nommée tri contienne 4 lignes et les 3 colonnes suivantes :

Même si je connais le concept des formules matricielles, je n'arrive pas à les appréhender correctement. J'ai avancé dans mon problème sans pouvoir franchir la dernière étape !
Dans mon raisonnement,
1 - je parcours la colonne contenant le critère (plage nommée "col_crit", ici la colonne A de tableau) et je récupère le numéro de la ligne où se trouve le critère (plage nommée "crit")
Formule : =PETITE.VALEUR(SI(col_crit=crit;LIGNE(col_crit);"");LIGNE(INDIRECT("1:"&NB(SI(col_crit=crit;LIGNE(col_crit);"")))))
Dans le cas où crit=A, cette formule renvoie donc {1;6;7;10}
2 - en utilisant index je créée une nouvelle matrice composée de n lignes (n = occurences de crit dans col_crit) et du nombre de colonnes de tableau, et dans chaque ligne de cette matrice je renvoie les valeurs des cellules situées aux numéros de lignes de tableau récupérés par ma formule précédente.
Concrètement, dans le cas où crit=A, voici ce que je veux reproduire en formule matricielle :

avec en formule : =INDEX(tableau;$E22;F$21) pour la première cellule. J'ai donc la matrice avec les numéros de ligne, et celle avec les numéros de colonne peut se générer via un =ligne(indirect(1:3))
Ce sur quoi je bloque c'est la formule finale !
Pour moi le plus logique ce serait : =index(tableau;{1;6;7;10};{1;2;3}) mais ça ne genère pas de matrice comme je l'espérais...
Est ce que quelqu'un pourrait m'aider ?
Après, peut être que je n'aboutis pas car je suis parti dans la mauvaise direction, donc toute aide sera la bienvenue 🙂
J'ai mis en pièce jointe le fichier sur lequel j'ai fait les captures ci-dessus.
Merci beaucoup pour votre aide !
Stakov
Après m'être arraché les cheveux je me décide finalement à vous demander de l'aide. Supposons le tableau de la capture suivante stocké dans une plage nommée (baptisée "tableau" pour l'occasion)

Ce que je cherche à faire, c'est créer une plage nommée (baptisée "tri") qui me filtre ce tableau sur un critère de la colonne A. Par exemple, si mon critère vaut "A", je veux que ma plage nommée tri contienne 4 lignes et les 3 colonnes suivantes :

Même si je connais le concept des formules matricielles, je n'arrive pas à les appréhender correctement. J'ai avancé dans mon problème sans pouvoir franchir la dernière étape !
Dans mon raisonnement,
1 - je parcours la colonne contenant le critère (plage nommée "col_crit", ici la colonne A de tableau) et je récupère le numéro de la ligne où se trouve le critère (plage nommée "crit")
Formule : =PETITE.VALEUR(SI(col_crit=crit;LIGNE(col_crit);"");LIGNE(INDIRECT("1:"&NB(SI(col_crit=crit;LIGNE(col_crit);"")))))
Dans le cas où crit=A, cette formule renvoie donc {1;6;7;10}
2 - en utilisant index je créée une nouvelle matrice composée de n lignes (n = occurences de crit dans col_crit) et du nombre de colonnes de tableau, et dans chaque ligne de cette matrice je renvoie les valeurs des cellules situées aux numéros de lignes de tableau récupérés par ma formule précédente.
Concrètement, dans le cas où crit=A, voici ce que je veux reproduire en formule matricielle :

avec en formule : =INDEX(tableau;$E22;F$21) pour la première cellule. J'ai donc la matrice avec les numéros de ligne, et celle avec les numéros de colonne peut se générer via un =ligne(indirect(1:3))
Ce sur quoi je bloque c'est la formule finale !
Pour moi le plus logique ce serait : =index(tableau;{1;6;7;10};{1;2;3}) mais ça ne genère pas de matrice comme je l'espérais...
Est ce que quelqu'un pourrait m'aider ?
Après, peut être que je n'aboutis pas car je suis parti dans la mauvaise direction, donc toute aide sera la bienvenue 🙂
J'ai mis en pièce jointe le fichier sur lequel j'ai fait les captures ci-dessus.
Merci beaucoup pour votre aide !
Stakov
Pièces jointes
-
excel1.PNG5 KB · Affichages: 110
-
excel1.PNG5 KB · Affichages: 117
-
excel2.PNG1.6 KB · Affichages: 84
-
excel2.PNG1.6 KB · Affichages: 81
-
Classeur1.xlsx12.3 KB · Affichages: 71
-
Classeur1.xlsx12.3 KB · Affichages: 68
-
Classeur1.xlsx12.3 KB · Affichages: 72
-
excel3.png2.7 KB · Affichages: 92
-
excel3.png2.7 KB · Affichages: 90
Dernière édition: