Recherche valeur sur 2 critères / Résolu

mateo37

XLDnaute Nouveau
Bonjour ! Je cherche à inscrire dans une cellule la valeur d'une cellule issue d'un autre classeur. Jusqu'ici tout va bien, j'utilise une formule index equiv.
Là où ça se complique, c'est que la recherche de la valeur de la cellule à copier doit se faire sur 2 critères, à savoir : "afficher la date d'écriture du chapitre 2 du livre A", sachant que dans le même fichier j'ai des livres A, B, C etc. et des chapitres identiques pour chacun de ces livres.
Les 2 critères à utiliser dans la formule (index equiv ?) pour afficher la "date" sont donc à mon avis "chapitre" et "livre", mais je ne sais pas comment formuler tout ça... Je joins 2 classeurs pour exemple. Quelqu'un a une idée ?
 

Pièces jointes

  • chapitres.xlsx
    8.9 KB · Affichages: 18
  • livres.xlsx
    8.8 KB · Affichages: 17

Spinzi

XLDnaute Impliqué
Bonjour,

un essaie avec la formule index equiv :
Code:
=INDEX(chapitres.xlsx!Tableau1[date d''écriture];EQUIV([@chapitre]&[@nom];chapitres.xlsx!Tableau1[chapitre]&chapitres.xlsx!Tableau1[nom livre];))

A copier en cellule C2 du fichier "livres" et à valider en appuyant simultanément CTRL+MAJ+ENTREE (validation matricielle) puis à tirer vers le bas

Spinzi
 

mateo37

XLDnaute Nouveau
Merci à vous 2.. vos deux solutions fonctionnent sur mon fichier de test, mais pas sur le fichier sur lequel je travaille.. j'obtiens soit du #NA pour l'index equiv, soit du #VALEUR! sur le SOMMEPROD :(

Ce qui ne va pas c'est le nommage de mes 2 critères en rouge dans ma formule : =INDEX('[table actions indexequiv.xlsx]Extraction_actions_20170724_141'!$I$272:$I$1184;EQUIV(A56:A241&R56:R216;'[table actions indexequiv.xlsx]Extraction_actions_20170724_141'!$K$272:$K$1184&'[table actions indexequiv.xlsx]Extraction_actions_20170724_141'!$Z$272:$Z$1184;))

Si je laisse comme inscrit ici, ça fonctionne, mais mon tableau fait plusieurs milliers de lignes et je voudrais pouvoir nommer en [nom colonne], ou [@nom colonne], ou encore A:A & R:R. Mais si je fais ça ça me met en erreur... pourquoi ?
 
Dernière édition:

Spinzi

XLDnaute Impliqué
Le plus simple et d'envoyer le fichier d'origine (pour avoir la véritable structure) en remplaçant les données sensibles.
Une fois ce fichier ajouté il sera plus simple d'écrire une fonction adaptée à votre besoin.

Spinzi
 

mateo37

XLDnaute Nouveau
Je pense que ça s'impose, effectivement : j'y ai passé la matinée pour essayer de comprendre mais mon niveau est limité... voici, en PJ, dans une version allégée.
je souhaite faire apparaître en colonne B du classeur nommé book la date correspondant à l'action liée dans le classeur chapters, en respectant donc les critères références et les raisons dernière action. Le fichier étant très fourni, je suis séduit par une formule matricielle, mais je ne sais pas si c'est réalisable : il peut y avoir un nombre variable d'actions par référence... Merci encore pour votre aide.
 

Pièces jointes

  • book.xlsx
    97.3 KB · Affichages: 17
  • chapters.xlsx
    604.7 KB · Affichages: 16

Spinzi

XLDnaute Impliqué
Au regard du fichier fourni j'ai l'impression que la formule matricielle fonctionne correctement.
Cependant, comme vous le soulignez, et au même titre qu'une formule sommeprod, ces formules sont gourmandes en ressources et peuvent considérablement ralentir les temps de traitement de vos fichiers (la fonction sommeprod et une fonction matricielle mais qui ne nécessite pas de validation spécifique comme pour l'index equiv).

A vous relire si vous avez d'autres questions,

Spinzi
 

Spinzi

XLDnaute Impliqué
A coller dans la cellule adéquate :
Code:
=INDEX(chapters.xlsx!actions[Creation_Date];EQUIV([@Référence]&[@[Raison dernière action]];chapters.xlsx!actions[Référence]&chapters.xlsx!actions[Raison action];))
et à valider par CTRL + MAJ + ENTREE
 

Pièces jointes

  • Copie de book IP.xlsx
    119.2 KB · Affichages: 21

Discussions similaires