Extraire les valeurs non nulles dans un tableau (FONCTION excel)

Résolu/Fermé
anakin_74 Messages postés 41 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022 - 17 mai 2017 à 15:34
anakin_74 Messages postés 41 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022 - 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
A voir également:

1 réponse

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
17 mai 2017 à 23:44
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)));"") 
0
anakin_74 Messages postés 41 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022
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
0
anakin_74 Messages postés 41 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022 > anakin_74 Messages postés 41 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022
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

https://www.cjoint.com/c/GEtnWcEZz4S
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
19 mai 2017 à 16:47
Bonjour,

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

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

Cdlt
Patrice
0
anakin_74 Messages postés 41 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
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
0