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

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

  • Forum (C).xlsx
    55.3 KB · Affichages: 10
  • Forum (P).xlsx
    54.9 KB · Affichages: 6
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

JIM92

XLDnaute Nouveau
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
 

Danixdb

XLDnaute Nouveau
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
 

JIM92

XLDnaute Nouveau
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.
 

JHA

XLDnaute Barbatruc
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

  • Forum (P).xlsx
    54.9 KB · Affichages: 5
  • Forum (C).xlsx
    56.2 KB · Affichages: 6

JIM92

XLDnaute Nouveau
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 !
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 125
Membres
112 666
dernier inscrit
Coco0505