[RESOLU] Double recherche dans une matrice

woalith

XLDnaute Nouveau
Bonjour,


Mon problème est le suivant:
Prérequis:
- Qu'avec des formules (sans VBA donc)
- je n'ai pas de contraintes d'inverser ou pas les colonnes par les lignes dans ma matrice

J'ai un tableau comme suit
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y


La premiere colonne est un index on va dire le reste des colones listes des possibilités pour la premiere colon

je connais la valeur K et la valeur m
je veux vérifier que m est bien sur la ligne de K

dans un premier temps je sais verifier que k est bien present dans la premiere colonne, voir je peux recuperer le numero de la ligne
ca ok

mais je ne sais pas rechercher si m est bien present dans la meme ligne que K

les fonctions de recherchent necessitent de connaitre le numero de colonne hors justement je ne sais pas si m est présent ni dans quelle colonne


des idées ?
J'ai retourner le truc dans tous les sens mais je ne vois pas
je n'ai pas trouvé de solution pour recuperer une ligne d'une matrice et faire la recherche dans cette ligne ( pas de fonctions pour recuperer une certaines lignes d'un tableau )

bref je suis bloqué
 

Pièces jointes

  • recherchedoublematrice.xlsx
    10.6 KB · Affichages: 39
Dernière édition:

woalith

XLDnaute Nouveau
Re : Double recherche dans une matrice

En fait il fauit voir 2 tables
la premiee colonne et le reste colonne A1:A5: Puis la table B1:E5
effectivement ca pourrait etre pas mal comme solution
mais il faut construire la plage pour le test de m

je ne sais pas sur quelle ligne se trouve k

dans un premier temps je cherche k, on le trouve sur la 3eme ligne ( en cherchant que sur la premiere colonne )
avec un equ(...) qui renvoi 3

dans un 2eme temps je cherche dans la 3eme ligne si m existe

pour utiliser ta formule, il faut pouvoir construire la plage de recherche de m à savoir B3:E3
le 3 etant obtenu de la recherche precedente

j'ai essayé avec des indirects et des concatenations le resultat de equ(...)
mais sans resultat
 

woalith

XLDnaute Nouveau
Re : Double recherche dans une matrice

La recherche est verticale dans un premier pour verifier que valeur 1 est present dans la premiere colonne
en deduire la ligne et chercher dans la ligne correspondante de la 2eme matrice si la valeur 2 s'y trouve :)

il faut vraiment voir 2 tableaux le premier tableau de 1 colonne et x lignes ( 5 dans le fichier joint )
et une matrice de 4x5

si je prend un exemple concrete
dans un département on a un certains nombres villes
vosges epinal neufchateau saint dié
moselle metz pont a mousson forbach
meurthe-et-moselle nancy laxou lunéville


en gros on veut valider que si on me donne une ville et un departement ca va bien ensemble

exemple
vosges / epinal => Ok on trouve bien ca dans le tableau
vosges / nancy => on trouve pas

on voit que la premiere colonne contient les departements et que le reste ce sont les villes

donc avec un equ() on est capable de chercher vosges dans la premiere colonne et donc d'en deduire le numéro de ligne
maintenant je veux verifier que dans la ligne deduite avant verifier que la ville fournie est presente

voila j'espère que c'est plus compréhensible avec un exemple concret :)
 

Habitude

XLDnaute Accro
Re : Double recherche dans une matrice

Bonjour

avec décaler et Equiv

au fait wxc et cder ne sont pas sur la même ligne, même chose pour qsd et aqwxs
Donc normal de retourner une erreur

Mettre en B11 et tirer jusqu'en B13

Code:
=SI(ESTNA(EQUIV(B9;$A$3:$A$6;0));"Erreur";SI(ESTNA(EQUIV(B10;DECALER(A3;EQUIV(B9;$A$3:$A$6;0)-1;0;1;NBVAL($3:$3));0));"Erreur";"Ok"))
 

woalith

XLDnaute Nouveau
Re : Double recherche dans une matrice

Hello,

Merci pour la dernière réponse !

A priori ça fait bien ce que j'ai demandé :)

j'avais essayé avec la fonction decaler mais je devais mal l'utiliseret je n'avais pas pensé utiliser la fonction ESTNA :)
je n'etais pas sur d'avoir compris ce que ça renvoyait comme résultat par rapport à la référence avec cette utlisation dans ton exemple je crois que je vois (reference de la premiere cellule)
c'est nickel :)

j'ai remodifié certaines choses pour mon usage personnel
notament plutot que d'avori la ligne complète d'excel j'utilise une ligne de la matrice ( NBVAL() )
de même je fais le décalage par rapport a la 2eme matrice sans la premiere colonne et ayant un nom pour la matrice ( plutot que les coordonnées )

merci beaucoup je devais pas être si loin de la solution mais là c'est parfait :)
 

Discussions similaires

Réponses
8
Affichages
445
Réponses
3
Affichages
242

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614