Adaptation formule matricielle

Résolu/Fermé
Zebulon97 Messages postés 47 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 26 novembre 2017 - 5 juin 2015 à 11:05
Zebulon97 Messages postés 47 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 26 novembre 2017 - 5 juin 2015 à 15:03
Bonjour à tous,
J'ai récupéré, sur l'excellent site de http://boisgontierjacques.free.fr/ une formule de calcul que j'essaie d'exploiter dans un de mes classeur.
Cette formule fonctionne parfaitement quand les données sont en colonne (vertical), mais je n'arrive pas à la modifier de sorte qu'elle fonctionne quand elles sont en ligne (horizontal).
Si quelqu'un a la solution, je suis preneur.
Voici la formule :
{=INDEX($AI$5:$AI$35;PETITE.VALEUR(SI($AK5:$AK36=$X$39;LIGNE(INDIRECT("1:"&LIGNES($AK$5:$AK$36))));1))}
Merci d'avance pour vos contributions.
Cdt
A voir également:

2 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
5 juin 2015 à 11:51
Bonjour,

comme je n'ai pas envie de rechercher le contexte d'utilisation de cette formule, je te propose de simplement utiliser la fonction transpose() sur tes données.

Cdlt
0
Zebulon97 Messages postés 47 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 26 novembre 2017
5 juin 2015 à 12:24
Merci pour ta réponse JvDo, mais j'utilise cette formule sur un planning dont les données s'affichent en ligne.
Cdt
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
5 juin 2015 à 14:14
Bonjour,

Oui, j'avais compris pour le côté ligne de ton souci. D'où ma proposition avec transpose()
exemple : si tu veux garder la structure de ta formule,
=INDEX(TRANSPOSE($L$1:$AQ$1);PETITE.VALEUR(SI(TRANSPOSE($L$2:$AQ$2)=$D$7;LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE($L$2:$AQ$2)))));1))


ou si tu veux adresser tes zones sans tranposition,
=INDEX($L$1:$AQ$1;PETITE.VALEUR(SI($L$2:$AQ$2=$D$7;TRANSPOSE(LIGNE(INDIRECT("1:"&COLONNES($L$2:$AQ$2)))));1))


remarque : je doute que Jacques Boisgontier ait écrit cette formule car généralement il utilise des noms de zone qui sont plus pédagogiques et, dans le cas contraire, il aurait mis $AI$5:$AI$36 au lieu de $AI$5:$AI$35.

cordialement
0
Zebulon97 Messages postés 47 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 26 novembre 2017 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
5 juin 2015 à 15:03
A nouveau merci JvDo pour ta réponse.
Je suis désolé, je n'avais pas compris l'utilisation de la fonction transpose().

Au vu de tes exemples, j'ai modifié mon planning en conséquence. Cela fonctionne tout à fait.

Tu as raison, dans ta remarque.
J'ai adapté la formule de Jacques Boisgontier à mon tableau sans avoir nommé mes plages. Il est vrai que les zones nommées sont plus lisibles et plus faciles à exploiter dans les formules de calcul.
Je remédie à cela en même temps que je mets en place ta formule à mes tableaux.
Encore un grand merci pour cette aide. Bonne fin de journée.

Cordialement.
0