Pointer une matrice via le résultat de la fonction concatener

Fermé
bigben!! Messages postés 8 Date d'inscription mercredi 12 octobre 2016 Statut Membre Dernière intervention 13 octobre 2016 - Modifié par bigben!! le 12/10/2016 à 06:02
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 - 13 oct. 2016 à 17:50
Bonjour,

Je voudrais savoir si c'est possible de pointer une matrice (ou plage de données) par le résultat de la fonction concatener

Voici les info:

A2 = CROW
B2 = 1973
C2 = NON
D2 = ALM
F2 = Fine

E2 =CONCATENER(A2;B2;C2;D2)

Le résultat de la fonction est donc CROW1973NONALM

J'ai une plage S10;V:15 que j'ai nommé CROW1973NONALM

j'aimerais utiliser INDEX(E2;B2;F2) E2 serait la plage ou je fais la recherche
B2 serait trouvé via une rechercheV
F2 serait trouvé via une rechercheH


Ma préoccupation est la plage: comment associer le resultat de concatener à un tableau


J'espère avoir été assez clair :)

Merci de votre temps

7 réponses

Raymond PENTIER Messages postés 58438 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 16 mai 2024 17 109
12 oct. 2016 à 06:09
Bonjour.

Non ; pour moi ce n'est pas très clair !
Mais à tout hasard je te suggère d'utiliser la fonction INDIRECT ...
0
bigben!! Messages postés 8 Date d'inscription mercredi 12 octobre 2016 Statut Membre Dernière intervention 13 octobre 2016
12 oct. 2016 à 06:29
1ere Merci de bien vouloir m'aider.

Je vais essayer de mieux vous éclairer.

Je rentre 4 différentes données( avec liste déroulante) dans les cellule A2;B2;C2 et D2

Je dois ensuite faire une recherche selon ces 4 critères dans mes différentes plages (ex: S10;V:15) ( J'ai plus de 16 tableaux)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
12 oct. 2016 à 09:15
Bonjour
n'ayant pas votre fichier, ou un modèle similaire on nepeut qu'être très indicatif
=deux fonctions utilisable
une pour "garnir" indirect > ADRESSE
=ADRESSE(N° de ligne; N)de colonne;;;"nomde feuille")
ou sivous êtes dans la même feuille simplment:
=ADRESSE(N° de ligne;N° de colonne)
cette fonction vous dnne en texte l'adresse de la cellule identifiée et donc, s'utilise dans un champ INDIRECT:
adresse du champ:
=INDIRECT(ADRESSE(l1;C1)&":"&ADRESSE(L2;C2))

ou alors , 'est mieux mais ca dépend de vos formules, a fonction DECALER:
=DECALER(Cell départ;écart ligne, écart colonne;hauteurde champ;largeur de champ)
..qui peut s'utiliser pour définir un champ sans la fonction INDIRECT)

enfin, vous pouvez définir des limtes de champ en identifiant ligne et colonne dans une colonne de valeur cherchée:
=SOMMEPROD((Colonne recherche=valeur cherchée)*(LIGNE(A1:Aligne fin))
et idem avec les colonnes
(attention démarrer les champs sur la ligne 1 sino il faut un correcteur + ou - pour recaler le résultat
exemple chercher le N°de ligne de la valeur A dans un champ C1:X100
N° de ligne
=SOMMEPROD(($A$1:$X$100="A")*(LIGNE($A$1:$A$100)))
N° de colonne
=SOMMEPROD(($A$1:$X$100="A")*(COLONNE(($A$1:$A$1)))
pour en dire plus il faudrait un exemple de votre fichier que vous pouvez déposer sur:

https://www.cjoint.com/

en revenant ici coller le lien que vous aurez créé sur le site

A vous lire?

crdlmnt

0
bigben!! Messages postés 8 Date d'inscription mercredi 12 octobre 2016 Statut Membre Dernière intervention 13 octobre 2016
Modifié par bigben!! le 12/10/2016 à 15:03
bonjour Vaucluse

https://www.cjoint.com/c/FJmmHWUGq4b

Je vais vous donner le contexte et vous fournir le plus de détails possible.

Je collectionne les billets de banque canadien(petite coupures :) )

Dans la colonne A c'est les année, B les signatures possible pour chaque année, E préfixe du billet de banque (billet en quantité limité ou un peu plus rare...) et finalement la colonne F est le grade du billet. La colonne G est la valeur du billet.

Ce que je désire, c'est d'obtenir la valeur du billet de façon automatique.

J'aimerais faire une recherche selon 4 critères (et p-e 5 dans le futur).

POur trouver la valeur du billet de la ligne 2, je dois savoir: l'année, la signature, le préfixe et le grade. La valeur pointerait sur la cellule AJ7 (tableau des valeurs de 1973 avec la signature crow_bouey.

je suis dans le néant sur la façon d'arriver à mes fins.. est-ce via deux tableaux ou utiliser des nouvelles formules??

Il faut tenir compte que je peux avoir "plusieurs "billets avec la même année/signature/préfixe/grade.

Je me débrouille un peu mais là, ca devient difficile :)

Merci de votre temps
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
Modifié par Vaucluse le 12/10/2016 à 15:43
.. pas compris beaucoup plus avec l'ensemble des données que l'on trouve dans la feuille "Billet de un dollar"
si on revient simplement à votre formule dans votre premier message
soit:
INDEX(E2;B2;F2)
pour la remplacer en G2 sans même nommer le tableau AJ6:AR15, vous trouverez le résultat avec cette formule:
=INDEX(AJ6:AR15;EQUIV("*"&E2&"*";AI6:AI15;0);EQUIV(F2;AJ5:AR5;0))
et pour utiliser le nom en N2 si vos tableaux sont nommés correctement:
=INDEX(INDIRECT(N2);EQUIV("*"&E2&"*";AI6:AI15;0);EQUIV(F2;AJ5:AR5;0))

à condition bien sur que pour chaque tableau nommé, les valeurs cherchées débutent bien en:
  • AI6 pour la colonne de ref
  • AJ5 pour la ligne de titre
  • et que ces champs aient pour tous les tableaux les mêmes indications,soit celles de la feuille où se trouve les formules pour toutes celles qu'on peut trouver en E et F de chacune des feuilles


sinon, revenez, ce sera un peu plus compliqué selon les infos de vos données
le reste des dimensions du tableau n'a pas d'importance si la formule inclus bien les dimensions du plus grand

crdlmnt
0
bigben!! Messages postés 8 Date d'inscription mercredi 12 octobre 2016 Statut Membre Dernière intervention 13 octobre 2016
12 oct. 2016 à 16:03
merci pour votre temps... disons que je crois que ça serait plus facile si on pouvait se parler :)

je vais regarder cela
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
Modifié par eriiic le 12/10/2016 à 19:01
Bonjour,

un essai, si j'ai bien compris.
J'ai défini un nouveau nom 'Crow_Bouey1973' qui inclu les titres de la table.
=INDEX(INDIRECT(B2&A2);EQUIV(F2;INDEX(INDIRECT(B2&A2);1;);0);EQUIV("*"&E2;INDEX(INDIRECT(B2&A2);;1);0))

https://www.cjoint.com/c/FJmq4SMDlua
eric


En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
bigben!! Messages postés 8 Date d'inscription mercredi 12 octobre 2016 Statut Membre Dernière intervention 13 octobre 2016
13 oct. 2016 à 01:22
bonsoir Eric

Merci de vouloir m'aider à élucider ce problème avec moi.

Il y a un pépin, si je change le grade G pour le grade Gunc, la réponse devrait être 18 et non pas 3.

Je vais continuer à peaufiner votre formule.... je vais surement un jour y arriver lol


https://www.cjoint.com/c/FJmxrvmuEgb
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
13 oct. 2016 à 08:28
Bonjour,

Ah oui, j'avais inversé ligne/colonne :
=INDEX(INDIRECT(B2&A2);EQUIV("*"&E2;INDEX(INDIRECT(B2&A2);;1);0);EQUIV(F2;INDEX(INDIRECT(B2&A2);1;);0))

eric
0
bigben!! Messages postés 8 Date d'inscription mercredi 12 octobre 2016 Statut Membre Dernière intervention 13 octobre 2016 > eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024
13 oct. 2016 à 14:01
Bonjour Eric,

effectivement, ca fonctionne!! Ce que je ne comprends pas, c'est lorsque je tente de comprendre tes formules, c'est toujours écrit "volatile" .

est-ce que tu peux m'expliquer stp?
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
Modifié par eriiic le 13/10/2016 à 15:22
???
Tu peux mettre une capture écran ,
Faire 'répondre' et non 'commenter' pour pouvoir joindre une image.
Effectivement Indirect() est volatile mais je suis étonné qu'il l'indique quelque part...
0
bigben!! Messages postés 8 Date d'inscription mercredi 12 octobre 2016 Statut Membre Dernière intervention 13 octobre 2016
13 oct. 2016 à 17:41
voila
0
bigben!! Messages postés 8 Date d'inscription mercredi 12 octobre 2016 Statut Membre Dernière intervention 13 octobre 2016
13 oct. 2016 à 17:44


.
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
13 oct. 2016 à 17:50
Ah oui, je n'avais jamais fait attention qu'il l'indiquait ici.
Une fonction volatile est ré-évaluée à chaque fois, même si ses antécédents n'ont pas changé. Et donc il ne peut pas l'évaluer ici.
eric
0