IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Fonction INDEX EQUIV multi-colonnes [XL-2013]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chef de projets Broadcast
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projets Broadcast
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut Fonction INDEX EQUIV multi-colonnes
    Bonjour,

    Je viens vers vous car je sèche sur la fonction INDEX / EQUIV, que j'ai l'habitude d'utiliser (simplement), mais qui me pose soucis sur ce problème précis un peu plus ardu:

    Sur une feuille (Feuil1) j'ai la présentation suivante:

    Nom : Feuille1INDEX.JPG
Affichages : 5372
Taille : 39,7 Ko

    Dans lesquels j'ai divers objets caractérisés par un ID unique (colonnes B, E, H), leur position (X,Y) caractérisée par deux nombres par ID (colonnes A, D, G), et diverses données (colonnes C, F et I)

    Je souhaite retourner dans une Feuil2 (ma base de donnée) la position X et Y de tous mes IDs, et là je sèche... :

    Nom : Feuille2INDEX.JPG
Affichages : 5415
Taille : 32,4 Ko

    Chaque objet pourrait être à n'importe quel endroit, donc son ID suivra, et les coordonnées changeront. Le soucis est que je dois "scanner" ma présentation sur plusieurs colonnes (B, E, H) pour retourner des valeurs dans ma base de donnée, et autant j'y arrive pour une colonne et pour la valeur "y", autant pour le reste c'est plus compliqué.

    Ci joint le fichier excel.

    Merci d'avance pour votre aide.
    Nicolas
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Il faudrait faire 3 EQUIV() enchainés par des SIERREUR().
    En gros, un premier EQUIV() sur la colonne B.
    Si la recherche est infructueuse, le SIERREUR() l'intercepte et enchaine sur un EQUIV() colonne E et ainsi de suite.

    Pour avoir la bonne colonne, tu peux utiliser une formule du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(ESTERREUR(EQUIV(B));0;3)+SI(ESTERREUR(EQUIV(E));0;6)+SI(ESTERREUR(EQUIV(H));0;9)
    En remplaçant les fonctions EQUIV(X) par celle qui va bien.

    Bien sûr, il y aurait une solution beaucoup plus simple : transformer tes 3 ensembles en une seule liste de 3 colonnes, au mieux avec deux copier/coller, au pire avec une fonction DECALER().

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Un exemple qui ressemble (Il suffit de placer la colonne position après la colonne code ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(A2;DECALER(code;;(EQUIV(VRAI;NB.SI(DECALER(code;;{0.1.2.3}*3);A2)>0;0)-1)*3;;3);2;0)
    Boisgontier
    Fichiers attachés Fichiers attachés

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chef de projets Broadcast
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projets Broadcast
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut
    Bonjour,

    Merci pour vos réponses, j'ai adopté la méthode de boigontierjacques et je récupère mes positions Y des objets, j'ai du mal par contre pour récupérer la position X, je pense en adaptant une fonction DECALER en plus. Je vais fouiller.

    En tout cas c'est bigrement instructif. Merci pour vos retours !

    Nicolas

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    cf PJ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =INDEX(DECALER(code;;(EQUIV(VRAI;NB.SI(DECALER(code;;{0.1.2.3}*3);A2)>0;0)-1)*3+2;;1);
    EQUIV(A2;DECALER(code;;(EQUIV(VRAI;NB.SI(DECALER(code;;{0.1.2.3}*3);A2)>0;0)-1)*3;;1);0)+1)
    ps: il serait + simple d'avoir une colonne position x et une colonne position y


    Boisgontier
    Fichiers attachés Fichiers attachés

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Chef de projets Broadcast
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projets Broadcast
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut
    Citation Envoyé par boisgontierjacques Voir le message
    Bonjour,

    cf PJ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(DECALER(code;;(EQUIV(VRAI;NB.SI(DECALER(code;;{0.1.2.3}*3);A2)>0;0)-1)*3+2;;1);EQUIV(A2;DECALER(code;;(EQUIV(VRAI;NB.SI(DECALER(code;;{0.1.2.3}*3);A2)>0;0)-1)*3;;1);0)+1)
    ps: il serait + simple d'avoir une colonne position x et une colonne position y


    Boisgontier
    Je n'avais pas pensé à une colonne en plus... Merci bien, je pars sur cette solution +simple et pratique.

    Résolu donc.

    Merci à tous et surtout à Boisgontier.
    Bonne soirée,
    Nicolas

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Chef de projets Broadcast
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projets Broadcast
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut Changement de méthode
    Bonjour,

    Suite à cette réflexion de renvoyer la position d'un ensemble de cellules, je souhaite finalement faire l'inverse, cependant non avec des formules excel, mais à l'aide de macros en vba (via un bouton Mise à jour).

    Fonctionnellement, dans une base de donnée (dans le fichier joint onglet "BD") je rempli tous mes paramètres, dont des coordonnées. Dans l'onglet "Presentation", les colonnes de coordonnées sont déjà prêtes à être renseignées automatiquement (données issues de la Base de Donnée à l'aide de formules, la clef étant l'ID). Lorsque ma macro est activée, j'ai juste besoin que mon identifiant soit recopié dans la bonne cellule côté présentation pour que mes données prennent forme.

    Dans ma présentation, les ensembles sont présentés sous forme de tableaux côte à côte.

    Et là je sèche côté vba, je suis trop limité... Si vous pourriez svp m'indiquer une piste à prendre...

    Merci d'avance,
    Nicolas
    Fichiers attachés Fichiers attachés

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Avec des formules:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(posx;EQUIV($C3;id;0))
    Boisgontier
    Fichiers attachés Fichiers attachés

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Chef de projets Broadcast
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projets Broadcast
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut
    Bonjour,

    Merci pour la réponse, et désolé pour le retard dans ma réaction.

    La formule de Boisgontier marche à l'envers par rapport à mon besoin, je crois que j'ai mal expliqué mon soucis:

    J'ai besoin de faire une recherche / copie matricielle, c'est à dire dans mon onglet BD, donner des coordonnées à mon identifiant. Puis, avec ces coordonnées, l'identifiant est copié dans ma présentation dans la cellule correspondant à mes coordonnées renseignées précédemment.

    Nicolas

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Chef de projets Broadcast
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projets Broadcast
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut
    Re Bonjour,

    J'ai trouvé une solution via des Index / equiv, en concaténant via des colonnes "transitoires", rien de dingue, mais ça marche.

    Ça rejoint la proposition de boisgontier.

    Merci pour vos lumières,
    Nicolas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 27
    Dernier message: 21/11/2018, 23h21
  2. [2.x] Création Index Unique multi-colonne
    Par arcandre dans le forum Symfony
    Réponses: 2
    Dernier message: 22/04/2012, 18h05
  3. Fonctions Index+Equiv avec classeur fermé
    Par templeoflove777 dans le forum Excel
    Réponses: 5
    Dernier message: 12/03/2012, 12h39
  4. Problème de fonctions index + equiv imbriqués
    Par fcsjeux dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 06/01/2012, 16h19
  5. [XL-2003] Fonction Index Equiv
    Par jm6570 dans le forum Excel
    Réponses: 3
    Dernier message: 16/02/2011, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo