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 avec Variable [XL-2016]


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Secrétaire
    Inscrit en
    Avril 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 57
    Par défaut Fonction Index Equiv avec Variable
    Bonjour,

    Voici par formule qui fonctionne :
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(Feuil1!B$2:B$35;EQUIV("x";Feuil1!Z2:Z34;0))

    et maintenant j'aimerai savoir si il y a possibilité de remplacer Feuil1!Z2:Z34 par une variable.

    Concrètement dans la feuil1 il y a un tableau avec des nom en colonne B des numéro de semaine de la ligne C à BH nommées S1, S2, S3...

    J'aimerai lorsque dans la cellule A1 de la feuil2 je tape S1, il recherche la ligne ou il y a un "x" dans la colonne C pour que je sache qui travail en semaine S1 et l'affiche en B1

    J'ai cette formule qui me donne le numéro de colonne de S1 =EQUIV(A1;Feuil1!A1:BH1;0) mais je n'arrive pas à l'intégrer dans ma fonction INDEX pour que si je tape S3 en A1 j'ai le nom de la personne qui travaille en semaine S3.

    Je pourrai le faire en VBA mais mon format doit rester du .xlsx

    Merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 575
    Par défaut
    Bonsoir

    Je ne suis pas certain d'avoir tout compris dans les références des cellules de l'énoncé.

    Je suis donc parti sur les hypothèses suivantes pour la Feuil1 :
    Les noms de semaine (S1, S2, ..., S24) inscrits de C1 à Z1 => 24 semaines
    Les noms des salariés inscrits de B2 à B11 => 10 salariés
    De C2 à Z11 des x (un seul par semaine) qui indiquent quelle est la personne qui travaille pour chaque semaine.

    Dans la Feuil2 :
    En cellule A1 : une seule valeur (S1 ou S2 ou ... ou S24) qui indique quelle est la semaine recherchée.
    En cellule B1 : afficher la personne qui travaille cette semaine-là.

    La formule que je propose est la suivante :
    =INDEX(Feuil1!B2:B11;EQUIV("x";DECALER(Feuil1!B1;1;EQUIV(A1;Feuil1!C1:Z1;0);10;1);0))

    En partant de "l'intérieur" de la formule
    EQUIV(A1;Feuil1!C1:Z1;0) : permet de trouver le rang de la semaine désirée parmi les numéros de semaine (la "combientième")
    DECALER(Feuil1!B1;1;EQUIV(...);10;1) : permet de trouver la plage qui contiendra le x pour la semaine désirée
    EQUIV("x";DECALER(...);0) : permet de trouver le rang du x dans la plage concernée
    INDEX(Feuil1!B2:B11;EQUIV(...)) : permet d'afficher le nom de la personne correspondant au rang

    En espérant avoir été clair et que cela aide.

    Bonne soirée

    Pierre Dumas

  3. #3
    Membre confirmé
    Homme Profil pro
    Secrétaire
    Inscrit en
    Avril 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 57
    Par défaut
    Merci cela fonctionne très bien

  4. #4
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 291
    Par défaut
    Bonjour

    Je me permets de préciser que la fonction DECALER est "volatile" , cela peut poser problème dans certains fichiers.

    Dans votre cas, on peut facilement la remplacer par un INDEX(plage de x;0;EQUIV(n° semaine;plage semaine;0)
    le 0 en second argument permet de prendre toutes les lignes de la plage et le EQUIV uniquement la colonne voulue

    pour reprendre l'exemple de Pierre, cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(Feuil1!B2:B11;EQUIV("x";INDEX(Feuil1!C2:Z11;0;EQUIV(A1;Feuil1!C1:Z1;0));0))
    Stéphane

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/08/2020, 16h54
  2. [XL-2007] INDEX/EQUIV avec fonction GAUCHE et format de nombre
    Par Accessifiante dans le forum Excel
    Réponses: 16
    Dernier message: 30/04/2020, 12h03
  3. [XL-2013] Formule index(;equiv();) avec une plage de recherche variable
    Par ddpoel dans le forum Excel
    Réponses: 0
    Dernier message: 14/09/2016, 14h05
  4. [XL-2010] Probleme de repetition de ligne avec une fonction INDEX+EQUIV
    Par ZHNEE dans le forum Excel
    Réponses: 2
    Dernier message: 29/07/2014, 13h27
  5. Fonctions Index+Equiv avec classeur fermé
    Par templeoflove777 dans le forum Excel
    Réponses: 5
    Dernier message: 12/03/2012, 12h39

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