XL 2016 Problème Petite.valeur - Si(ligne) VS Si(colonne)

dod

XLDnaute Nouveau
Bonjour, j'ai un problème avec la formule Petite.valeur.

J'ai un tableau contenant des jobs que je dois donner à des employés en mettant un "X" (Feuille 2 dans exemple). Je souhaite ensuite lister toutes les jobs de tous les employés dans un autre tableau (Feuille 1). Le problème vient du fait que l'ordre de comptage de la formule Petite.valeur ne part pas dans le même sens dans les 2 cas si dessous. Ce qui est un peu normale. Mais qui me cause problème.

=PETITE.VALEUR(SI($F$10:$I$21="X";COLONNE($F$10:$I$21);"");$L12)-COLONNE($E$8) Pour obtenir le nom de l'employé
=PETITE.VALEUR(SI($F$10:$I$21="X";LIGNE($F$10:$I$21);"");$L12)-LIGNE($E$9) Pour obtenir le Job de l'employé

Je cherche donc un moyen de contourner ce problème pour que les Jobs et le nom de l'employé corresponde dans le tableau feuille 2 au final. Et tout en ignorant les très nombreuses cellules vides.
Je possède Excel 2016.
 

Pièces jointes

  • Classeur1.xlsx
    14.9 KB · Affichages: 5

JHA

XLDnaute Barbatruc
Bonjour à tous,

Pour trouver les "jobs" par nom, peut être:
VB:
=SIERREUR(INDEX($E$10:$E$21;PETITE.VALEUR(SI(DECALER($E$10;;EQUIV($P$8;$F$8:$H$8;0);12)="X";LIGNE($E$10:$E$21)-9);LIGNES($1:1)));"")

JHA
 

Pièces jointes

  • Classeur Dod.xlsx
    13.6 KB · Affichages: 6

dod

XLDnaute Nouveau
Merci beaucoup pour ta réponse rapide. J'ai réussi à obtenir la liste que je voulais en modifiant légèrement ta formule. J'ai rajouter un étape de rang intermédiaire.

Ta formule est devenu :
=SIERREUR(INDEX($E$10:$E$21;PETITE.VALEUR(SI(DECALER($E$10;;EQUIV($N10;$F$8:$H$8;0);12)="X";LIGNE($E$10:$E$21)-9);$O10));"")
où $O10 égale =SI(N10=N9;O9+1;1)

Je crois que le topo est conclue.
 

Pièces jointes

  • Classeur1 Dod.xlsx
    13.7 KB · Affichages: 4

Discussions similaires

Réponses
4
Affichages
256

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T