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) ou tcd ?


Sujet :

Excel

  1. #1
    Membre expérimenté
    Femme Profil pro
    Technicienne
    Inscrit en
    Avril 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicienne

    Informations forums :
    Inscription : Avril 2018
    Messages : 153
    Par défaut Fonction (index equiv) ou tcd ?
    Bonjour

    J'ai un tableau dans lequel j'inscris le statut de différents trucs à différentes dates, sans ordre. Dans la colonne Rang, une petite formule à base de MAX.SI.ENS identifie par un nombre supérieur à zéro, pour chaque truc, la ligne comportant la date la plus récente.

    Table1 :

    Date Truc Statut Rang
    20/07/23 echo marche pas 1
    12/02/23 alfa marche pas 0
    13/05/23 bravo marche bien 2
    13/05/23 charlie à expédier 0
    18/06/23 echo à tester 0
    18/02/23 alfa réparé 0
    17/05/23 charlie en utilisation 3
    19/02/23 alfa en utilisation 4


    En effet, j'ai besoin d'afficher dans un second tableau le statut le plus récent de chaque truc.
    Or, je ne sais pas ce qui m'a pris, plutôt que générer un tcd, j'ai créé un second tableau avec une formule INDEX EQUIV pour récupérer les valeurs dans Table1.

    Table2 :

    Date Truc Statut
    20/07/23 echo marche pas
    13/05/23 bravo marche bien
    17/05/23 charlie en utilisation
    19/02/23 alfa en utilisation


    La formule dans la première colonne est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =INDEX(Table1;EQUIV(LIGNE()-LIGNE(Table2[#Headers]);ColRang;0);EQUIV(Table2[[#Headers];[Date]];Table1[#Headers];0))
    où le nom ColRang fait référence à la colonne Rang du tableau Table1
    Notons que j'ai construit la formule de la première colonne de manière à pouvoir l'étendre aux deux autres colonnes sans autre forme de procès, de sorte que créer le tableau Table2 ne m'a pas coûté plus de temps ni d'efforts que mettre en forme un tcd.

    Avez-vous des arguments en faveur de ma méthode ? Parce qu'on va me demander pourquoi j'ai procédé ainsi et que j'aimerais répondre autre chose que "bah je sais pas, y avait du reggae à la radio..."

  2. #2
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour,

    tu ne dis pas quelle version tu utilises, mais en 365 je ferais plutôt un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =FILTRE(Table1[[Date]:[Statut]];Table1[Rang]<>0)

  3. #3
    Membre expérimenté
    Femme Profil pro
    Technicienne
    Inscrit en
    Avril 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicienne

    Informations forums :
    Inscription : Avril 2018
    Messages : 153
    Par défaut
    Merci

    Chez moi j'ai une vieille version pour mac, mais c'est au taf que j'ai fait ce fichier. Je ne sais plus quelle est la version En même temps les fichiers Excel ne sont (heureusement) pas mon cœur de métier. C'est une version assez récente pour comporter la fonction MAX.SI.ENS.

    Je ne connaissais pas la fonction FILTRE, je regarderai dès que j'aurai le temps. Elle répond peut-être à mon besoin de manière avantageuse par rapport à ma formule à base de DECALER + INDEX EQUIV.

    Sinon, un argument pour le calcul par rapport au tcd ? ou au contraire le calcul est indéfendable ?
    Par exemple quelqu'un sait-il si l'une ou l'autre méthode est plus gourmande en calcul ?

  4. #4
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 249
    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 249
    Par défaut
    Citation Envoyé par catapoulpe Voir le message
    Par exemple quelqu'un sait-il si l'une ou l'autre méthode est plus gourmande en calcul ?
    Perso, je préfère les TCD pour leur souplesse, parce que les segments permettent de les "piloter" facilement et d'en "lier" plusieurs entre-eux.
    en terme de calcul, si vous avez 100 ou 1000 lignes je ne pense pas que cela fasse de différence
    mais si vous avez plusieurs dizaines de milliers de lignes je pense qu'un TCD s'impose.

    Stéphane

  5. #5
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour,

    Le TCD sera généralement plus facile à mettre en place et à maintenir.
    le TCD va s'étendre tout seul si de nouveaux codes apparaissent, ce qui ne sera pas le cas des formules, sauf à utiliser des formules matricielle comme filtre.
    Les formules permettront une mise en forme plus précise et plus aboutie, sans contrainte.

    Et pourquoi pas PowerQuery ?

  6. #6
    Membre expérimenté
    Femme Profil pro
    Technicienne
    Inscrit en
    Avril 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicienne

    Informations forums :
    Inscription : Avril 2018
    Messages : 153
    Par défaut
    Merci Raccourcix et Tête de chat pour vos réponses.

    La version que j'utilise au travail est bien 365. Je découvre, à tout petits pas car je travaille peu avec Excel.

    Dans ce cas précis la formule ne me demandait pas plus de temps que le tcd, mais c'est uniquement parce qu'il s'agit d'un cas simplissime. De plus, le nombre de lignes du tableau table 1 atteindra peut-être 1000 dans 5 ans. Bref, pas de quoi faire chauffer le serveur. Sinon effectivement le tcd prend très vite l'avantage en termes de facilité et de rapidité de mise en œuvre. Loin de moi l'idée de promouvoir ma méthode ! Par contre, (sans avoir essayé), je ne pense pas que le tcd m'aurait permis de filtrer les statuts les plus récents sans faire appel à un calcul, soit dans le tableau source comme je l'ai fait, soit par un champ calculé dans le tcd. Donc pas d'économie ici.

    Comme remarqué par Tête de chat, le point faible de mon machin est l'extension du tableau, qui ne peut pas être automatique. Je contourne car les trucs dont je suis le statut sont peu nombreux, donc le tableau table 2 grandit très lentement.

    Pourquoi pas Power Query ? Eh bien parce que je ne sais pas l'utiliser. Mes plus grands exploits avec Excel, je les ai réalisés chez moi pour des motifs non professionnels. Avec ma version Mac 2011.
    Je note et à l'occasion je regarderai power query au travail. Mais ce sera plutôt par curiosité que par besoin professionnel. D'autant que je ne mets pas en avant mes quelques compétences en Excel de peur que mon supérieur s'en aperçoive. En effet je déteste travailler assise... Bref, ça n'ira pas vite.

  7. #7
    Membre expérimenté
    Femme Profil pro
    Technicienne
    Inscrit en
    Avril 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicienne

    Informations forums :
    Inscription : Avril 2018
    Messages : 153
    Par défaut
    En tout cas je note que mon calcul n'est pas complètement indéfendable !

  8. #8
    Membre chevronné Avatar de Dinytro
    Profil pro
    Inscrit en
    Août 2003
    Messages
    402
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 402
    Par défaut
    Il existe toujours plusieurs manières d'implémenter une solution. C'est vrai dans beaucoup de domaines, c'est particulièrement vrai avec Excel
    Certains sont plus à l'aise avec les TCD, d'autres préfèrent les formules à l'anciennes et on se prend maintenant facilement au jeu des nouvelles fonctions matricielles dynamiques.

    Un des points majeurs qui fera que votre solution pourra être contestée c'est la performance : si votre tableau devient très volumineux, probablement que votre solution actuelle sera mise à mal (et encore, il y a tellement de paramètres qui impactent la performance...)
    La maintenabilité est également un facteur important mais là aussi, tout est question d'expérience et d'affinité : certains trouveront vos formules trop complexes (parce qu'ils ne les connaissent pas) et d'autres trouveront les TCD peu maintenables parce qu'ils n'ont toujours pas compris comment ça marche.

    Votre solution fonctionne, elle n'est pas sortie du chapeau, elle a ses limites (en terme de dynamisme par exemple mais ça se gère très bien différemment) et en terme de performance en cas de gros volume.
    Vous connaissez ses limites et vous saurez l'adapter quand vous les aurez atteinte donc tout va bien (et en plus ça fonctionne )

Discussions similaires

  1. Fonctions Index, Equiv et cellules vides
    Par arnaud_d1 dans le forum Excel
    Réponses: 5
    Dernier message: 07/11/2013, 15h29
  2. Fonction Index(Equiv et nombre trop importants de fonction
    Par sanderlucius dans le forum Excel
    Réponses: 4
    Dernier message: 07/06/2013, 11h32
  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