Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Rechercher la valeur d'une cellule dans un tableau

  • Initiateur de la discussion Chantelanuit
  • Date de début
C

Chantelanuit

Guest
Bonjour,

Tout d'abord, merci pour ce superbe site où j'ai appris plein de trucs qui me simplifient la vie avec Excel !

Actuellement, je recherche une solution au problème suivant, mais je suis bloqué :

Je travaille avec Excel 2003 et je recherche si une valeur qui apparaît dans une rangée (qui contient des numéros de cartes de 1 à 75) se retrouve dans un 'array' (TABLEAU 2). Cet 'array' correspond à la façon dont les cartes ont été triées par des personnes.

Par exemple, voici le tableau que je souhaite compléter :

voir TABLEAU 1 attaché (tableaux.jpg)

Le but est de mettre deux numéros identiques dans la ligne qui correspond à un participant, lorsque certaines cartes ont été mises dans la même pile. Dans cet exemple, les cartes no 1, 3 et 5 proviennent de la pile 1, les cartes 2 et 4 proviennent de la pile 3, et les cartes 6 et 7 de la pile 2 (pour la participant no 1).

Je possède une matrice qui comporte le numéro des cartes qui proviennent de chaque pile pour chaque participant (imaginons qu'il n'y a qu'un participant pour simplifier les choses, soit une seule ligne du TABLEAU 1 à compléter):

voir TABLEAU 2 attaché (tableaux.jpg)

En me référant à cet array ci-dessus (no_cartes), je souhaiterais compléter le tableau du haut (TABLEAU 1). La logique que je souhaitais employer pour compléter chaque ligne du TABLEAU 1 était la suivante :

'Si le nombre qui apparaît dans la ligne de titre du TABLEAU 1 (no de carte entre 1 et 75) se retrouve dans l'array 'no_cartes' du TABLEAU 2, alors insérer la valeur à gauche de l'array 'no_carte' qui se trouve à la même ligne, mais dans la colonne 'no_pile'.

J'ai essayé avec la fonction RECHERCHE, RECHERCHEH ou encore RECHERCHEV, sans succès. Est-ce que vous suggéreriez une autre fonction ?

J'espère que c'est compréhensible... Merci d'avance pour toute suggestion

Mic
 

Chantelanuit

XLDnaute Nouveau
Re:Rechercher la valeur d'une cellule dans un tabl

Oups, le fichier joint n'est pas passé. Je réessaie: [file name=tableaux.zip size=16905]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/tableaux.zip[/file]
 

Pièces jointes

  • tableaux.zip
    11 KB · Affichages: 22
  • tableaux.zip
    11 KB · Affichages: 21
  • tableaux.zip
    11 KB · Affichages: 26

Chantelanuit

XLDnaute Nouveau
Re:Rechercher la valeur d'une cellule dans un tabl

bonjour,

je me rends compte que ma formulation du problème n'est pas très claire. En fait, la recherche doit retourner dans quelle pile se trouve une carte qui provient d'un tableau.

Le tableau contient en en-tête de rangée le numéro de pile et dans chaque colonne le numéro des cartes qui appartient à chaque pile. Le but de l'opération est de dresser un tableau où l'en-tête des colonnes est le numéro de carte, sous lequel le numéro de pile doit apparaître.

Par exemple, si les cartes 2, 3, 7 et 74 appartiennent à la pile 1 (tel qu'indiqué dans le tableau du haut), il faut que le numéro 1 se retrouve sous les numéros 2, 3, 7 et 74 du tableau du bas (soit celui que je dois compléter). Une carte n'appartient qu'à une seule pile à la fois.

J'ai mis en annexe une copie de la feuille excel, cela sera plus facile à visualiser.

Y a-t-il une bonne âme qui aurait une idée ?



[file name=recherche_tableau.zip size=2193]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/recherche_tableau.zip[/file]
 

Pièces jointes

  • recherche_tableau.zip
    2.1 KB · Affichages: 20

Monique

Nous a quitté
Repose en paix
Re:Rechercher la valeur d'une cellule dans un tabl

Bonjour,

à mettre en B18 :
=DECALER($A$2;SOMMEPROD(($B$2:$L$8=B$17)*LIGNE($B$2:$L$8))-LIGNE($A$2);0)
Au conditionnel :
=SI(OU(B$17='';SOMMEPROD(($B$2:$L$8=B$17)*LIGNE($B$2:$B$8))=0);'';DECALER($A$2;SOMMEPROD(($B$2:$L$8=B$17)*LIGNE($B$2:$L$8))-LIGNE($A$2);0))

S'il y a plusieurs joueurs, est-ce qu'ils ont des n° de piles différents ?
Si oui, c'est bon, si non, c'est pas bon
Si non, comment et où sont-ils rangés ?
 

Chantelanuit

XLDnaute Nouveau
Re:Rechercher la valeur d'une cellule dans un tabl

hmy: merci ! j'en suis baba. Mais je ne parviens pas à comprendre entièrement la formule :

cette façon d'écrire avec le égal, comment cela se lit ? cela signifie quoi ? j'ai beau regarder la fonction sommeprod dans l'aide, je ne parviens pas à comprendre

($B$2:$L$8 = B$17)

pour ce qui est des joueurs, ils sont tous sur une feuille différente pour le moment.
 

Monique

Nous a quitté
Repose en paix
Re:Rechercher la valeur d'une cellule dans un tabl

Re,

DECALER( $A$2; Nb de lignes; 0 colonne)
=DECALER($A$2;SOMMEPROD(($B$2:$L$8=B$17)*LIGNE($B$2:$L$8))-LIGNE($A$2);0)

Nb de lignes est donné par
=SOMMEPROD(($B$2:$L$8=B$17)*LIGNE($B$2:$L$8))-LIGNE($A$2)
équivaut à
=SOMMEPROD(($B$2:$L$8=B$17)*LIGNE($B$2:$L$8))-2

Le SommeProd tout seul
=SOMMEPROD(($B$2:$L$8=B$17)*LIGNE($B$2:$L$8))
te donne le n° de ligne de la feuille Excel (et non de ton tableau) où se trouve la valeur de B17

SommeProd 'raisonne' par tableaux
=($B$2:$L$8=B$17)
La formule 'se fait un tableau', ligne par ligne FAUX.FAUX.FAUX.(11 fois par ligne)
et autant de fois 11 réponses FAUX ou VRAI que tu as de lignes

=LIGNE($B$2:$L$8)
Le tableau fait par cette partie donne {2;3;4;5;6;7;8}

Et sommeProd multiplie le seul VRAI de ta plage par le n° de ligne correspondante
VRAI équivaut à 1 et FAUX à 0

Pour voir le tableau interne à la formule, tu tapes :
=($B$2:$L$8=B$17)
Dans la barre de formule, tu sélectionnes tout sauf le signe =
Tu appuies sur F9

Tu fais pareil avec =LIGNE($B$2:$L$8)

=SOMMEPROD((B24=17)*LIGNE(A2:A4))
te donne en appuyant sur F9 :
=SOMMEPROD(({FAUX.FAUX.FAUX;FAUX.VRAI.FAUX;FAUX.FAUX.FAUX})*{2;3;4})
puis :
=SOMMEPROD({0.0.0;0.3.0;0.0.0})
 

pat1545.

XLDnaute Accro
Re:Rechercher la valeur d'une cellule dans un tabl

Bonsoir Monique et les autres:
je suis positivement étonné par ta réponse Monique, bravo mais aussi étonné du fait que tu utilises des ref absolues et pas des zones nommées (ce qui estplus claire n'est ce pas ?)

Patrick
 

Discussions similaires

Réponses
20
Affichages
743
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…