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

  1. #1
    Candidat au Club
    formule pour avoir le top 3 des articles les plus vendus
    Bonsoir,

    J'ai trouver un tutoriel qui explique comment faire le top 3 des articles, mais, lorsque je fais la formule, cela me donne comme résultat : #EPARS!.

    Je vous met la formule

    Code formule :Sélectionner tout -Visualiser dans une fenêtre à part
    =si([colonne1]="Sortie";NB.SI.ENS([colonne1];"Sortie";[nombre];">"&[@nombre])+1;"")


    Une chose que je ne comprend pas. C'est comment pour chaque articles qui est sortie a des moments différents cela les additionne et donne celui qui est le plus sortie, le 2ème et le 3ème.Si cela ne prend pas en compte les différents type d'articles.

    Comme je l'ai déjà dis dans une autre discussion, je suis rouillé et novice avec excel.
    C'est un travail que je fais dans un de mes cours, car c'est un mandat de consultation pour aider une vrai compagnie à améliorer son système. Je dois présenter ses améliorations pour le 2 décembre et je n'ai trouvé nul part de solution ou une compréhension

    Merci de votre réponse et si possible d'une solution

  2. #2
    Rédacteur

    Bonjour,
    En ce qui concerne #EPARS!, cette contribution Comment éviter le message d'erreur #EPARS! vous aidera peut-être

    La syntaxe corrigée ci-dessous vous évitera le message d'erreur mais je ne peux vous garantir l'exactitude du calcul ne connaissant pas l'organisation de vos données
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =@SI([Colonne1]="Sortie";@NB.SI.ENS([Colonne1];"Sortie";[Nombre];">"&[@Nombre])+1;"")
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  3. #3
    Responsable
    Office & Excel

    Salut.

    Ta formule semble être placée dans le tableau lui-même. Est-ce ton souhait?

    Ici, j'illustre comment on peut, en XL 365!, récupérer le top 3 d'une série de valeurs selon une condition. On va forcer la plage dynamique (exclusivité 365) en bouclant sur les trois premières lignes de A. On n'utilise pas les valeurs de A1:A3, mais simplement la ligne pour induire la matricielle qui va créer la plage dynamique.

    =GRANDE.VALEUR(SI(A2:A6="sortie";B2:B6);LIGNE(A1:A3))





    On peut utiliser la même technique "hors 365", mais on ne profite plus de la plage dynamique. Il faut alors sélectionner les 3 cellules qui vont recevoir les valeurs, et valider la formule donnée plus haut en matricielle (SHIFT+CTRL+ENTER)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié la réponse? =>
    ---------------

  4. #4
    Candidat au Club
    Merci pour vos réponses rapide,

    voici une image du tableau



    comme vous voyez, j'ai des articles avec des codes différents, qui peuvent sortir a des moments différents. je veux faire un top 3 en indiquant le 1er, le 2ème et le 3ème dans la colonne ranking car dans une autre page du classeur, j'ai une formule qui me sort le nom des 3 articles les plus vendu. Si vous avez une autre solution. la solution du @ n'a pas fonctionné. je n'ai aucune valeur qui s'est affichée

    pour l'autre choix, oui il serait mieux que cela soit dans le même tableau, mais si je n'ai pas d'autre choix, je pourrais faire un tableau dynamique et le faire caché pour qu'il ne puisse être vus


    Merci

  5. #5
    Responsable
    Office & Excel

    Citation Envoyé par Oska-Kajal Voir le message
    [...]
    pour l'autre choix, oui il serait mieux que cela soit dans le même tableau, mais si je n'ai pas d'autre choix, je pourrais faire un tableau dynamique et le faire caché pour qu'il ne puisse être vus[...]
    si le but est de les récupérer dans un autre tableau (j'imagine avec 3 lignes pour le top 3), tu pourrais utiliser ma seconde solution (matricielle validée sur les trois lignes) dans ce second tableau. Ca éviterait la colonne dans le tableau de départ juste pour y avoir le ranging de trois articles.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié la réponse? =>
    ---------------

  6. #6
    Candidat au Club
    Ce n'est pas les valeurs que je recherche mais le nom des articles qui sont les plus vendue. Si avec la formule je peux avoir les nom et nom le nombre cela c'est correcte, je vass voir si je peux modifier la formule pour avoir les noms. Si vous savez comment faire je suis preneuse, car c'est le dernier point qui me reste pour le classeur.

    Merci énormément

  7. #7
    Responsable
    Office & Excel

    Solution simple par Power Query:
    • Récupérer le tableau dans Power Query;
    • filtrer sur les sorties;
    • Trier sur les valeurs par ordre décroissant;
    • Supprimer les colonnes Inutiles;
    • Via un clic droit sur l'icône de la table, conserver les 3 premières lignes;
    • Renvoyer dans Excel.


    Code Power query :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let
        Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
        #"Adapter Types" = Table.TransformColumnTypes(Source,{{"Type", type text}, {"Nom", type text}, {"Valeur", Int64.Type}}),
        #"Filtrer Lignes" = Table.SelectRows(#"Adapter Types", each ([Type] = "Sortie")),
        #"Trier Lignes" = Table.Sort(#"Filtrer Lignes",{{"Valeur", Order.Descending}}),
        #"Supprimer Colonnes" = Table.RemoveColumns(#"Trier Lignes",{"Valeur", "Type"}),
        #"Filtrer Top3" = Table.FirstN(#"Supprimer Colonnes",3)
    in
        #"Filtrer Top3"



    En Excel pur...

    • Utiliser une plage temporaire éventuellement sur une feuille masquée, dont on nomme la première cellule (par exemple Top_3);
    • Cette plage temporaire reçoit la plage dynamique créée par la formule =TRIER(FILTRE(Tableau2;Tableau2[Type]="sortie");3;-1) (sur base de mon tableau, à adapter à ta situation)
    • Grâce à DECALER, on récupère les trois premières lignes de la colonne souhaitée en utilisant Top_3# qui pointe vers la plage dynamique.







    Bien entendu, j'ai tout mis ici sur la même feuille, mais tu peux réagencer sur des feuilles différentes du classeur.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié la réponse? =>
    ---------------

  8. #8
    Candidat au Club
    Désolé je crois que je n'ai pas été assez clair. dans mon tableau les articles sont sortie a différents moments donc on peut retrouver plusieurs sortie d'un article. J'aimerais additionner toute les sorties de ses articles et avec cela déterminer mon top 3. ce n'est pas celui qui est sortis le plus en une fois mais l'addition de toute les sorties. La formule que j'i inscrite au début devait faire cette fonction au départ. sur le tuto cela marchait, mais lorsque je le fait cela me donne une erreur. donc je me demande s'il n'y a pas une voie de contournement a se problème. je ne connais pas power query et je ne suis pas sûr que cela va me donner ce que je recherche, après recherche sur ce que fait celui-ci mais je peux me tromper.

    merci encore de votre temps et aide

  9. #9
    Responsable
    Office & Excel

    Power Query permet cela et bien plus encore. Il "suffit" d'insérer le regroupement sur les articles avant de trier et d'établir le top 3



    Code Poqer Query :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let
        Source = Excel.CurrentWorkbook(){[Name="t_Mouvements"]}[Content],
        AdapterTypes = Table.TransformColumnTypes(Source,{{"Article", type text}, {"Date", type date}, {"Type", type text}, {"Qté", Int64.Type}}),
        FiltrerSorties = Table.SelectRows(AdapterTypes, each ([Type] = "Sortie")),
        RegrouperArticles = Table.Group(FiltrerSorties, {"Article"}, {{"Qtés", each List.Sum([Qté]), type nullable number}}),
        TrierTQuantités = Table.Sort(RegrouperArticles,{{"Qtés", Order.Descending}}),
        ConserverTop3 = Table.FirstN(TrierTQuantités,3)
    in
        ConserverTop3




    Tu peux t'inspirer du classeur suivant. Dans Power Query, tu peux aller sur chaque étape dans le panneau de droite pour voir le déroulé de la solution =>

    Tu pourrais faire le regroupement par année, par mois, par jour de la semaine pour voir si tu vends plus le lundi ou le samedi, Faire varier le X du Top X au départ d'Excel (Top 3, Top 5, Top 10) etc, etc... Power Query est vraiment un outil qui va permettre une analyse rapide des données (En comptant l'établissement du classeur et la rédaction de ce message, ça m'a pris 10 minutes) Power Query est un outil qui peut être découvert lorsque l'on est curieux

    Note que sans Power Query, tu peux réaliser une opération similaire avec un simple tableau croisé dynamique




    J'ai écrit un billet de blog qui détaille la façon de faire varier le X du Top X

    PS: Une explication complète de ton problème et de tes attentes aurait permis de répondre bien plus rapidement à ta question
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié la réponse? =>
    ---------------

  10. #10
    Candidat au Club
    Je vous remercie. Et oui avec plus de précision cela aurait été plus rapide.
    Je me demande s'il y a un endroit qui m'explique comment fonctionne Power query, car je ne comprend pas comment vous êtes arrivé a cela.
    Déjà que je ne connaissais pas les macro alors celui-ci c'est pire.
    Les ligne de code je les inscrit où etc....


    Désolé pour le dérangement



    Je Crois que je viens de trouver comment utilisé Power query en espérant que cela fonctionne.

    j'ai réussi à le faire, je vous remercie M. Fauconnier. Une chose que je me demande, c'est de savoir si il y a des ajouts de données dans le tableau, est ce que cela va s'ajuster automatiquement??? Si oui youppi

  11. #11
    Responsable
    Office & Excel

    Désolé. D'habitude, je mets au moins une image qui montre comment on intègre un tableau dans Power Query. Mais ce qui est chouette, c'est que tu as trouvé

    La mise à jour n'est pas automatique mais consiste uniquement en 1 clic droit sur le tableau de résultat du top 3 puis Actualiser




    Bonne continuation avec Power Query
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié la réponse? =>
    ---------------

###raw>template_hook.ano_emploi###