Microsoft 365 Résolu - Index Equiv entre 2 bases de données

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JIM92

XLDnaute Nouveau
Bonjour

Dans le prolongement de la discussion sur le post ...
... où j'ai obtenu une réponse 🙂, je n'arrive pas à reproduire cette fois-ci cette formule entre 2 bases de données distinctes (2 fichiers xlsx).

J'ai fait plusieurs recherches un peu partout mais il y a plusieurs paramètres qui m'échappent dès qu'il faut ajouter le fonction Equiv (col B).

Le fichier "Forum C" est la base de travail (le livrable) dans lequel certaines données de "Forum P" doivent être rapatriées.

Merci de votre aide
JIM
 

Pièces jointes

Solution
Bonjour à tous,

Il faut gérer les "double".
Je te propose cette formule matricielle mais il faut ouvrir les deux fichiers.
VB:
=INDEX(INDIRECT("'[Forum (P).xlsx]FeuilleP'!$B$3:$B$27");PETITE.VALEUR(SI($A3=INDIRECT("'[Forum (P).xlsx]FeuilleP'!$a$3:$a$27");LIGNE(INDIRECT("'[Forum (P).xlsx]FeuilleP'!$a$3:$a$27"))-2);NB.SI($A$3:$A3;$A3)))

JHA
Bonsoir, je persévère en regardant des "discussions" se rapprochant de ma problématique et en testant plusieurs formules.

Par exemple, en B3 dans le fichier "Forum (C).xlsx" j'ai saisi
Code:
'=INDEX('[Forum (P).xlsx]FeuilleP'!$A$1:$B$27; EQUIV('[Forum (P).xlsx]FeuilleP'!Numéro de Dossier;Valeur; 0);2)

mais cela ne marche pas. Too bad.

Quelqu'un peut-il regarder svp ?
Merci à vous
 
Bonjour JIM92, Le Forum,

Avec cette formule, j'obtiens le résultat souhaité.
=INDEX('[Forum (P).xlsx]FeuilleP'!$A$3:$B$27;EQUIV([@[Commentaire 1]];'[Forum (P).xlsx]FeuilleP'!$A$3:$A$27;0);2)
@[Commentaire 1 ] correspond à la ligne du fichier Forum C, il serait souhaitable d'avoir aussi un tableau structuré sur le fichier Forum P car ce sont des tableaux qui peuvent s'auto-étendre en fonction des données saisies ou reçues. De plus la lecture des formules sont simplifiées car elles prennent les entêtes des colonnes concernées par la formule.
Je n'aime pas trop avoir des liaisons inter classeur, un rapatriement des données de Forum P dans le fichier Forum C (onglet Forum P par exemple) serait souhaitable, cela éviterait toutes liaisons externes au fichier. C'est juste un avis personnel.
Avec Office 365, on pourrait aussi utiliser Power Query qui réaliserait cette tâche dans un nouveau classeur ou une autre feuille d'un des deux fichiers, il suffirait alors d'actualiser les données.
Espérant vous avoir aider.
Cordialement
DanixDB
 
Bonjour JIM92, Le Forum,

Avec cette formule, j'obtiens le résultat souhaité.
=INDEX('[Forum (P).xlsx]FeuilleP'!$A$3:$B$27;EQUIV([@[Commentaire 1]];'[Forum (P).xlsx]FeuilleP'!$A$3:$A$27;0);2)
@[Commentaire 1 ] correspond à la ligne du fichier Forum C, il serait souhaitable d'avoir aussi un tableau structuré sur le fichier Forum P car ce sont des tableaux qui peuvent s'auto-étendre en fonction des données saisies ou reçues. De plus la lecture des formules sont simplifiées car elles prennent les entêtes des colonnes concernées par la formule.
Je n'aime pas trop avoir des liaisons inter classeur, un rapatriement des données de Forum P dans le fichier Forum C (onglet Forum P par exemple) serait souhaitable, cela éviterait toutes liaisons externes au fichier. C'est juste un avis personnel.
Avec Office 365, on pourrait aussi utiliser Power Query qui réaliserait cette tâche dans un nouveau classeur ou une autre feuille d'un des deux fichiers, il suffirait alors d'actualiser les données.
Espérant vous avoir aider.
Cordialement
DanixDB
Merci ! Je regarde toutes ces pistes et je vous tiens au courant. Bonne journée.
 
Bonjour à tous,

Il faut gérer les "double".
Je te propose cette formule matricielle mais il faut ouvrir les deux fichiers.
VB:
=INDEX(INDIRECT("'[Forum (P).xlsx]FeuilleP'!$B$3:$B$27");PETITE.VALEUR(SI($A3=INDIRECT("'[Forum (P).xlsx]FeuilleP'!$a$3:$a$27");LIGNE(INDIRECT("'[Forum (P).xlsx]FeuilleP'!$a$3:$a$27"))-2);NB.SI($A$3:$A3;$A3)))

JHA
 

Pièces jointes

Bonjour à tous,

Il faut gérer les "double".
Je te propose cette formule matricielle mais il faut ouvrir les deux fichiers.
VB:
=INDEX(INDIRECT("'[Forum (P).xlsx]FeuilleP'!$B$3:$B$27");PETITE.VALEUR(SI($A3=INDIRECT("'[Forum (P).xlsx]FeuilleP'!$a$3:$a$27");LIGNE(INDIRECT("'[Forum (P).xlsx]FeuilleP'!$a$3:$a$27"))-2);NB.SI($A$3:$A3;$A3)))

JHA
J'ai testé, c'est vraiment parfait. Cela va me faire gagner beaucoup de temps. Merci beaucoup !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
411
Retour