Extraire les valeurs non nulles dans un tableau (FONCTION excel) [Résolu]

anakin_74 35 Messages postés mercredi 9 octobre 2013Date d'inscription 13 août 2017 Dernière intervention - 17 mai 2017 à 15:34 - Dernière réponse : anakin_74 35 Messages postés mercredi 9 octobre 2013Date d'inscription 13 août 2017 Dernière intervention
- 21 mai 2017 à 09:35
Bonjour à tous,

J'ai une question car ne n'arrive pas à trouver dans les différents tutoriels.
Je vais essayé d'être simple, car mon besoin est plus compliqué, mais je pense pouvoir extrapoler

J'ai un tableau de 20 lignes sur douze colonnes

le tableau est géré par colonne (Pièce N°1: colonne C, Pièce N°2: colonne D, etc)
les lignes sont des descriptions ( Trou Haut: ligne 65, Trou bas: ligne 66, etc)

Dans chaque cellule il y a une fonction IF (désolé les fcts sont en anglais parce que mon excel est en anglais) la valeur vrai est une cellule et la fausse c'est vide

Exemple: =IF(AND(C45="X";$B$8=$B$3);P45;"") la valeur en B3 et B8 c'est pour savoir si nous sommes bien sur la pièce N°1: en conclusion nous sommes uniquement sur Pièce N°1 et pas sur pièce N°2 à 12.

j'ai trouvé une formule sur un tuto que j'ai adapté pour moi

=IFERROR(INDEX($D$65:$D$84;SMALL(IF($D$65:$D$84<>"";ROW(INDIRECT("1:"& ROWS($D$65:$D$84))));ROWS($65:65)));"")

Après Ctrl+Shift+ enter ça fonctionne, mais uniquement sur 1 colonne moi j'ai besoin sur toutes les colonnes.

La fonction ci-dessous ne fonctionne pas mais c'est ce que j'ai besoin

=IFERROR(INDEX($D$65:$N$84;SMALL(IF($D$65:$N$84<>"";ROW(INDIRECT("1:"& ROWS($D$65:$N$84))));ROWS($65:70)));"").

Pour je sais que j'aurai pu mettre un nom pour la zone de D65 à D84, mais c'est pour que cela soit plus clair.

Merci d'avance de votre aide
Afficher la suite 

5 réponses

Répondre au sujet
Patrice33740 6323 Messages postés dimanche 13 juin 2010Date d'inscription 15 décembre 2017 Dernière intervention - 17 mai 2017 à 23:44
0
Utile
4
Bonjour,

Il faut préciser la colonne de l'index.

A tout hasard, quelque chose comme :
=SIERREUR(INDEX($D$65:$N$84;MIN(SI($D$65:$N$84<>"";LIGNE(INDIRECT("1:"& LIGNES($D$65:$N$84))));LIGNES($65:65));MIN(SI($D$65:$N$84<>"";COLONNE(INDIRECT("1:"& COLONNES($D$65:$N$84))));COLONNES($N:N)));"") 
anakin_74 35 Messages postés mercredi 9 octobre 2013Date d'inscription 13 août 2017 Dernière intervention - 18 mai 2017 à 14:20
Merci de ton aide mais ça ne fonctionne pas.

J'ai fait une base Excel simplifiée, mais je ne sais pas comment faire pour qu'elle soit disponible pour que tu puisse la regarder, car je pense que c'est plus simple avec un cas concret.

Pour information : avec la formule j'ai des cases blanches. rien ne se passe
anakin_74 35 Messages postés mercredi 9 octobre 2013Date d'inscription 13 août 2017 Dernière intervention > anakin_74 35 Messages postés mercredi 9 octobre 2013Date d'inscription 13 août 2017 Dernière intervention - 19 mai 2017 à 15:51
Bonjour à tous.

J'ai trouvé pour mettre ma base excel voir le lien.

Pourriez-vous me dire ou est l'erreur?

Merci d'avance

http://www.cjoint.com/c/GEtnWcEZz4S
Patrice33740 6323 Messages postés dimanche 13 juin 2010Date d'inscription 15 décembre 2017 Dernière intervention - 19 mai 2017 à 16:47
Bonjour,

Une autre solution sans formule matricielle, avec une colonne intermédiaire :
http://www.cjoint.com/c/GEtoVkwznEk

NB : j'ai modifié les formules en C65:N84 (pour une formule unique)

Cdlt
Patrice
anakin_74 35 Messages postés mercredi 9 octobre 2013Date d'inscription 13 août 2017 Dernière intervention > Patrice33740 6323 Messages postés dimanche 13 juin 2010Date d'inscription 15 décembre 2017 Dernière intervention - 21 mai 2017 à 09:35
Merci Patrice pour ta solution.

Dommage pour les formules matricielles. Cela m'aurait été utile pour d'autres choses.

Ne soyons pas plus royaliste que le roi: ta solution fonctionne bien.

Cordialement Anakin
Commenter la réponse de Patrice33740