[Résolu] Index Equiv à trois conditions

aa4a1

XLDnaute Nouveau
Bonjour,

Dans le fichier joint, je cherche à classer les valeurs de 1 à 12 suivant les conditions : valeur, temps et x ou y.
Je n'ai pas eu de problème pour le cas x en utilisant la fonction index equiv avec trois conditions, par contre je n'arrive pas à appliquer cette fonction dans le cas de la colonne y.

A noter que ce fichier est juste un exemple, l'application se fera sur un plus grande nombre de données (en ligne et colonne) et sur une feuille différente des données stockées.

Auriez-vous une idée ?

Merci d'avance.
 

Pièces jointes

  • Classeur1.xlsx
    9.7 KB · Affichages: 49
Dernière édition:

Hieu

XLDnaute Impliqué
Salut aa4a1, Jocelyn,

Rappel pour la fonction Index :
Lorsque tu recherches dans un vecteur, il te suffit de 2 parametres : Index(vecteur, position)
Lorsque tu recherches dans une matrice, il te faut 3 parametres : Index(matrice, ligne, colonne)
Lorsque tu recherches dans plusieurs matrices, il te faut de 4 parametres : Index((mat1, mat2, mat3), ligne, colonne, n° matrice)

Dans ton fichier tu insères 4 parametres, alors qu'en fait, tu travailles dans une matrice.

Une idée en index equiv :
 

Pièces jointes

  • Classeur1_v0.xlsx
    10.4 KB · Affichages: 47

aa4a1

XLDnaute Nouveau
Bonjour Hieu,
Merci pour tes réponses. Ta deuxième solution fonctionne très bien pour mon problème. Peux-tu m'expliquer son fonctionnement ? Si je ne me trompe pas, on sélectionne une matrice dans laquelle on va chercher une intersection ligne colonne, d'ou l'obligation, pour mon problème, d'utiliser la fonction + afin d'imposer deux conditions sur la colonne. Est-ce bien ça ?
Que signifie le -1 en fin de la fonction index ?

Merci d'avance
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Un essai avec sommeprod()
pour les "x"
Code:
=SOMMEPROD(($C$6:$G$6=L$5)*($B$8:$B$9=$K7)*($C$8:$G$9))

pour les "y"
Code:
=SOMMEPROD(($C$6:$G$6=L$5)*($B$8:$B$9=$K7)*($D$8:$H$9))

A copier vers le bas et la droite

JHA
 

Hieu

XLDnaute Impliqué
Slt JHA !

Ta deuxième solution fonctionne très bien pour mon problème.
Mes deux formules fonctionnent correctemet ^^

@aa4a1 : Mettons nous dans la cellule m7. On travaille en matrice : index(matrice, ligne, colonne)

matrice : ok
ligne : ok

colonne : on a besoin de connaitre la position de B. Ce qu'il faut savoir, c'est que lorsque les cellules sont fusionnées, les valeurs sont dans la 1ere cellule. Du coup:
EQUIV(M$6;$C$5:$H$5;0) =3 (pour la position de B)
x arrive à la meme colonne (+0) et y en +1
en recherchant la position de x : EQUIV($J$5;$C$7:$H$7;0) donne 1. D'où le "-1".

En conclusion:
Code:
colonne = EQUIV(M$6;$C$5:$H$5;0) + EQUIV($J$5;$C$7:$H$7;0) -1
 

aa4a1

XLDnaute Nouveau
Bonjour Hieu,

@Hieu Oui pour tes deux solutions, je voulais dire que la deuxième était celle que je cherchais :)

Pour la recherche dans la colonne x, vu que c'est elle qui est considéré de base lorsque les cellules sont fusionnées, la fonction suivante fonctionne :
=INDEX($C$8:$H$9;
EQUIV($K7;$B$8:$B$9;0);
EQUIV(L$6;$C$5:$H$5;0);EQUIV($J$5;$C$7:$H$7;0))


Par contre, si je veux la colonne y, je suis obligé d'imposer une sorte de décalage via la fonction suivante :
=INDEX($C$8:$H$9;
EQUIV($K7;$B$8:$B$9;0);
EQUIV(L$6;$C$5:$H$5;0)+EQUIV($J$10$C$7:$H$7;0)-1)

equiv sur x donne 1, et 2 sur y (sais-tu pourquoi ??). Si je comprends bien, les colonnes dans la fonction index sont 0 et 1 pour chaque cellule fusionnée, d'où l'utilisation du -1 afin de sélectionner la colonne 0 ou la colonne 1. C'est bien ça ?

Merci d'avance
 

Hieu

XLDnaute Impliqué
La fonction equiv te donne la position de la valeur cherchée dans un vecteur :
equiv(valeur cherchee, vecteur, 0) (0 étant pour la valeur exacte)

Cette fonction te renvoie une valeure entière positive, strictement

Techniquement, à la place de :
Code:
EQUIV($J$10$C$7:$H$7;0)
J'aurai pu écrire :
Code:
EQUIV($J$10$C$7:$D$7;0)
Car il trouve x (ou y ) soit à la première ou à la deuxième position (et ne voit donc pas les suivants).
J'ai choisi le vecteur c7:h7 pour être homogène.

Je t'invite à regarder l'aide des fonctions index et equiv via F1 sur excel.
 

Pièces jointes

  • Classeur1_v1.1.xlsx
    10.6 KB · Affichages: 44

Discussions similaires

Réponses
6
Affichages
513

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG