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 :

Explication d'une formule Excel pour trier des doublons


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Explication d'une formule Excel pour trier des doublons
    Bonjour,

    Je suis nouveau sur Excel, ci-joint un fichier (trouvé sur internet) montrant comment trier des valeurs Excel sans doublon pour faire de graphs dynamiques, Dans la feuille "graph" puis la colonne "Pays" je n'arrive pas à comprendre la logique de la formule =INDEX(pays;EQUIV(MIN(SI(NB.SI(A$1:A1;pays)=0;SI(pays<>"";NB.SI(pays;"<"&pays);"")));SI(NB.SI(A$1:A1;pays)=0;SI(pays<>"";NB.SI(pays;"<"&pays);""));0))

    Je comprends le début INDEX(pays;EQUIV mais après la logique MIN(SI(NB.SI(A$1:A1;pays)=0;SI(pays<>"";NB.SI(pays;"<"&pays);"")));SI(NB.SI(A$1:A1;pays)=0;SI(pays<>"";NB.SI(pays;"<"&pays);""));0)) j'ai beaucoup de mal.


    Un grand merci d'avance si quelqu'un peut m'expliquer étape par étape.

    Max
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 74
    Points : 139
    Points
    139
    Par défaut Tentative de déchiffrage
    Bonjour,
    Franchement, je n'aurais jamais inventé ça !

    Il faut déjà bien voir au départ que :
    • C'est une formule matricielle qui est répétée sur chaque ligne du tableau de synthèse
    • Elle s'appuye sur un nom pays qui est calculé :
      =DECALER(Database!$A$2;;;NBVAL(Database!$A:$A)-1) : en partant de A2 avec autant de lignes que de valeurs non vides dans A (-1 pour le titre)


    En lisant, voilà ce que je comprends et comment je l'expliquerais :

    1. NB.SI(pays;"<"&pays) : Pour chaque ligne de la Database, je compte combien d'autres lignes ont un nom de pays qui arrive avant
    2. SI(NB.SI(A$1:A1;pays)=0 : j'ignore les lignes dont j'ai déjà le nom dans mon tableau
    3. MIN() : Je prends le plus petit de ces nombres
    4. EQUIV() : Je cherche sa position dans la liste des pays
    5. INDEX() : J'ai son nom dans la liste des pays
    6. Et j'itère, sachant qu'au step 2, je vais exclure aux itérations suivantes toutes les lignes du pays que je viens d'obtenir


    J'ai fait un tableau Excel qui découpe un peu plus clairement les arguments et les formules matricielles utilisées : Dédoublonner et trier avec des formules.xlsx

    J'espère que ça devient clair.

    Pour aller plus loin, 2 remarques :
    • Pour le calcul des ventes =SI(ESTERREUR(SOMMEPROD((pays=A2)*vente));"";SOMMEPROD((pays=A2)*vente)) se simplifie en =SIERREUR(SOMMEPROD((pays=A2)*vente);"") depuis Excel 2007 (respect si ça a été fait avant !)
    • Le test SI(pays<>"" me semble inutile car si il y a une ligne vide (ou plus) au milieu des pays, alors le nom pays ne tient pas compte de la dernière ligne (ou plus) de la Database et donc de toutes façons le total sera faux (incomplet).
      Pour contourner ce problème, si il peut y avoir des lignes vides, il faudrait remplacer la définition de pays par :
      =DECALER(Database!$A$2;;;MAX(NON(ESTVIDE(Database!$A:$A))*LIGNE(Database!$A:$A))-1)
      Si on est sûr de ne pas avoir de lignes vides, alors :
      • on peut remplacer SI(pays<>"";NB.SI(pays;"<"&pays);"") par NB.SI(pays;"<"&pays)
      • on peut garder la définition initiale de pays

  3. #3
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour votre aide,

    Ca devient bien plus clair,

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

Discussions similaires

  1. Besoin d'aide pour une formule excel.
    Par passio dans le forum Excel
    Réponses: 9
    Dernier message: 31/01/2012, 01h35
  2. [XL-2003] Formule Excel pour calculer une date (jour de la semaine)
    Par Myaka dans le forum Excel
    Réponses: 4
    Dernier message: 19/10/2011, 14h22
  3. [Toutes versions] Condition sur 2 champs d'une même table pour éviter des doublons
    Par btks59 dans le forum Modélisation
    Réponses: 6
    Dernier message: 23/05/2011, 08h48
  4. Macro pour activer une formule excel
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 19/03/2010, 09h42
  5. [Formule]Macro pour masquer des formules dans une cellule
    Par Hellx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2007, 08h21

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