Toutes mes réponses sur les forums

15 sujets de 91 à 105 (sur un total de 143)
  • Auteur
    Messages
  • en réponse à : Ne pas compter les doublons #127777
    Xavier Allart
    Participant

    Bonjour
    Comme vous pouvez, si il n’y a pas de données confidenciel dedans. Si non un tableau Excel avec les colonnes necessaires dossier, contrat de service, articles, … sur quelques lignes.
    Amicalement

    en réponse à : Ne pas compter les doublons #127729
    Xavier Allart
    Participant

    Bonjour
    Est il possible d’avoir un jeu de données, ce serait plus facile pour vous aider.
    Cordialement.

    en réponse à : Supprimer X caractères en début et fin de cellule #127156
    Xavier Allart
    Participant

    Bonjour

    En PowerQuery,
    Selectionner la colonne avec le chemin du fichier
    dans le menu Transformer ou Ajouter une colonne en fonction du besoin
    utiliser la commande Extraire > Texte entre les délimiteurs :
    Délimiteru du début : \
    Délimiteur de fin : .
    Options avancées
    Rechercher le délimenteur de début : à partir de la fin de l’entrée

    Cordialement

    Attachments:
    You must be logged in to view attached files.
    Xavier Allart
    Participant

    Bonjour
    Je suppose que ton calendrier utilise les numéros de semaine à la norme ISO 8601. Dont l’une des Définitions de la première semaine de l’année ISO est la semaine du premier jeudi de l’année civile : Numérotation ISO des semaines — Wikipédia (wikipedia.org)

    Je vous propose la solution suivante en me basant sur le tuto suivant Créer une semaine ISO et une année ISO dans Power Query M (ISO 8601) (gorilla.bi)
    Dont voici les étapes :
    Date du premier jour de la semaine
    Date du jeudi de la semaine en cours
    Année du jeudi en cours
    Date du 1er jeudi de l’année
    Calculer du numéro de semaine ISO
    Calculer la date du dimanche
    Filtrer sur l’année du jeudi
    Conserver les colonnes nécessaires et supprimer les autres

    Voici le code
    let
    Source = Excel.CurrentWorkbook(){[Name=”Annee2021″]}[Content],
    //Date du premier jour de la semaine
    Date.1erJour = Table.AddColumn(Source, “1erjour”, each Date.From(Date.AddDays(Date.FromText(Text.From([Année])&”-01-01″),([NumSemaine]-1)*7))),

    //Date du jeudi de la semaine en cours
    Date.Jeudi = Table.AddColumn(Date.1erJour, “Jeudi”, each Date.AddDays( [1erjour],3 – Date.DayOfWeek( [1erjour], Day.Monday))),

    //Année du jeudi en cours
    AnnéeJeudi = Table.AddColumn(Date.Jeudi, “AnnéeJeudi”, each Date.Year([Jeudi])),

    //Date du 1er jeudi de l’année
    #”1erJeudiAnnée” = Table.AddColumn(AnnéeJeudi, “1erJeudiAnnee”, each Date.AddDays(
    #date( [AnnéeJeudi],1 ,7 ),
    – Date.DayOfWeek( #date( [AnnéeJeudi],1 , 1), Day.Friday )
    )),

    //Calculer du numéro de semaine ISO
    IsoNumWeek = Table.AddColumn(#”1erJeudiAnnée”, “IsoNumWeek”, each ( Duration.Days( [Jeudi] – [1erJeudiAnnee] ) / 7 )+ 1),

    //Calculer la date du dimanche
    Date.Dimanche = Table.AddColumn(IsoNumWeek, “Dimanche”, each Date.AddDays([Jeudi],3)),

    //Filtrer sur l’année du jeudi
    #”Colonne conditionnelle ajoutée” = Table.AddColumn(Date.Dimanche, “Personnalisé”, each if [Année] = [AnnéeJeudi] then 1 else null),
    #”Lignes filtrées” = Table.SelectRows(#”Colonne conditionnelle ajoutée”, each ([Personnalisé] = 1)),

    //Conserver les colonnes nécessaires et supprimer les autres
    #”Autres colonnes supprimées” = Table.SelectColumns(#”Lignes filtrées”,{“Année”, “IsoNumWeek”, “Dimanche”})
    in
    #”Autres colonnes supprimées”

    Cordialement

    en réponse à : Ajout automatique de colonnes calculées #125692
    Xavier Allart
    Participant

    Bonjour
    Voici une proposition
    Ajouter une colonne d’index pour identifier chaque ligne
    Sélectionner la colonne « Index » et dépivoter les autres colonnes
    Dupliquer la colonne « Attibut » (Alpha, X.Alpha, Beta, …..)
    Sélectionnez la colonne « Attribut – Copier » et remplacer « x. » par rien
    Ajouter une colonne conditionnelle, pour identifier les 2 colonnes pour la soustraction à venir
    Si « Attribut » commence « x. » alors « C2 » sinon « C1 »
    Supprimer la colonne « Attribut »
    Permuter les colonnes dans l’ordre : « index » « Attribut – Copier » « Personnalisé » « Valeur »
    Sélectionner la colonne « Personnalisé » et dépivoter « Valeur »

    Cordialement,

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Soustraction avec condition #125475
    Xavier Allart
    Participant

    Bonjour
    Merci pour les données
    Pour le graphique sont utilisées les tables « Stock_Metal », « Previsonnel metal » et « Dates »
    « Stock_Metal » contient pour chaque article et par date (sur 100 jours calendaires avec ou sans consommation)
    La quantité consommée « Conso_metal.Conso (G)»
    Le stock restant en fin de journée « Total Stock Qty »
    « Previsonnel metal » contient pour chaque article et par date (1 à 4 dates par article)
    Le prévisionnel de consommation « Qté matière »
    Les 2 tables ne contiennent pas les mêmes articles, les calculs de stocks sont donc à réaliser par date seulement
    Les calendriers tiennent compte des week-ends et des jours fériés, pendant lesquels il n’y a pas de consommation. Les jours ne sont donc pas forcément consécutifs du jour au lendemain.

    Je vous propose donc la solution suivante :
    Créer une nouvelle table permettant de connaître le dernier jour de consommation, avec le stock correspondant
    Depuis la table « Stock_Metal » créer une nouvelle table par référence « X_Stock_Metal »
    Cette table permet de connaître le dernier stock
    Filtrer les lignes dont la conso > 0
    Grouper par Date avec les sommes des Stock et de la Conso
    Filtrer pour conserver la date la plus récente
    Depuis la table « Previsionnel metal » créer une nouvelle table par référence « X_ Previsionnel »
    Cette table permet d’identifier les 3 jours suivants la date dernier stock et de calcul le stock restant en fonction des besoins prévisionnels
    Grouper par Date avec les sommes « Qté matière »
    // Rechercher le dernier stock
    Fusionner avec la table « X_Stock_Metal » sur les champs Date
    Développer la colonne pour en extraire les champs « Time – Calendar day » et « Stock »
    Remplir vers le bas les 2 colonnes
    Supprimer les lignes non remplies
    Supprimer la colonne « Time – Calendar day »
    Ajouter un index
    Supprimer la ligne d’index 0
    // Calcul d’un stock temporaire
    Pour J-1 « Stock-Besoin » pour les 2 autres jours « -besoin »
    Supprimer les Stock et Index
    // Calcul du stock restant pour les 3 jours (Tuto Somme Cumulative)
    Ajouter une colonne « Lien » de valeur 1
    Fusionner la requête avec elle-même sur le champ lien
    Développer les colonnes Date et Stock
    Filtrer les dates
    Regrouper par Date et Besoin et calculer le stock

    Pour le calcul de la somme cumulative, je me suis basé sur le tuto suivant :

    Somme cumulative conditionnelle dans Power Query

    En espérant avoir répondu à votre besoin
    Cordialement,

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Soustraction avec condition #125458
    Xavier Allart
    Participant

    Bonjour
    Sans jeu d’exemple donné, j’espère avoir compris le problème et apporté une réponse satisfaisante.
    Je vous propose en PowerQuery de fusionner les 2 Tables et de calculer les stocks restants à j 0, j 1 et 1 2
    Ce que j’ai réalisé sur la table Conso
    Puis sur la table Conso (2) j’ai réorganisé la structure du tableau en dépivotant les colonnes
    Voir le pbix en pièce jointe En powerquery ouvrir l’editeur avancé pour voir le code commenté.
    Cordialement,

    let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText(“i45WMrDUNzDSNzIwMlbSUQrIL1FILzq8ohjINjEwAJIWYNIISMbqoCl2SkxWOLxAIS0ntbSoWKEgM7WoKBUobArWASFNsOvLS1bISixKycxTKElNzobbYoJbT0hRamZOTmJ6qkJuaVFiDopiiGUYWoIPr0xOLAG6Dep+GAmyKzYWAA==”, BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Articles = _t, #”J 0″ = _t, #”J 1″ = _t, #”J 2″ = _t]),
    #”Type modifié” = Table.TransformColumnTypes(Source,{{“Date”, type date}, {“Articles”, type text}, {“J 0”, Int64.Type}, {“J 1”, Int64.Type}, {“J 2″, Int64.Type}}),
    // Ajout de 3 colonnes de stock en J0, J1, J2
    // Ajouter une colonne personnalisée pour calculer la date du stock)
    #”Personnalisée ajoutée” = Table.AddColumn(#”Type modifié”, “Date stock”, each Date.AddDays([Date],-1)),
    // fusionner les 2 tables sur les champs Articles et Date
    #”Requêtes fusionnées” = Table.NestedJoin(#”Personnalisée ajoutée”, {“Articles”, “Date stock”}, Stock, {“Articles”, “Date”}, “Stock”, JoinKind.LeftOuter),
    // Développer la table pour en extraire le volume du stock
    #”Stock développé” = Table.ExpandTableColumn(#”Requêtes fusionnées”, “Stock”, {“Stock”}, {“Stock”}),
    // Ajouter 3 colonnes personnalisées pour calculer le volume de stock en J0, J1, J2
    #”Personnalisée ajoutée1″ = Table.AddColumn(#”Stock développé”, “Stock 0″, each [Stock] – [J 0]),
    #”Personnalisée ajoutée2″ = Table.AddColumn(#”Personnalisée ajoutée1”, “Stock 1″, each [Stock 0] – [J 1]),
    #”Personnalisée ajoutée3″ = Table.AddColumn(#”Personnalisée ajoutée2”, “Stock 2″, each [Stock 1] – [J 2]),
    #”Type modifié1″ = Table.TransformColumnTypes(#”Personnalisée ajoutée3”,{{“Stock 0”, Int64.Type}, {“Stock 1”, Int64.Type}, {“Stock 2″, Int64.Type}}),
    // Dépivoter le tableau
    // supprimer les colonnes inutiles
    #”Colonnes supprimées” = Table.RemoveColumns(#”Type modifié1″,{“Date stock”, “Stock”}),
    // Sélectionner les colonnes de référence “Date”, “Articles” et dépivoter les autres colonnes
    #”Supprimer le tableau croisé dynamique des autres colonnes” = Table.UnpivotOtherColumns(#”Colonnes supprimées”, {“Date”, “Articles”}, “Attribut”, “Valeur”),
    // Fractionner la colonne “Attribut” en 2 pour avoir une colonne avec Conso ou Stock et une autre avec les jours (0, 1, 2)
    #”Fractionner la colonne par délimiteur” = Table.SplitColumn(#”Supprimer le tableau croisé dynamique des autres colonnes”, “Attribut”, Splitter.SplitTextByDelimiter(” “, QuoteStyle.Csv), {“Attribut.1”, “Attribut.2″}),
    #”Type modifié2″ = Table.TransformColumnTypes(#”Fractionner la colonne par délimiteur”,{{“Attribut.1”, type text}, {“Attribut.2”, Int64.Type}}),
    // Sélectionner la colonne “Attribut.1” Pivoter la table sur la colonne “Valeur”
    #”Colonne dynamique” = Table.Pivot(#”Type modifié2″, List.Distinct(#”Type modifié2″[Attribut.1]), “Attribut.1”, “Valeur”, List.Sum),
    // Renommer les colonnes
    #”Colonnes renommées” = Table.RenameColumns(#”Colonne dynamique”,{{“J”, “Conso”}, {“Attribut.2”, “Jour”}})
    in
    #”Colonnes renommées”

    Attachments:
    You must be logged in to view attached files.
    en réponse à : calculs sur tranches #125395
    Xavier Allart
    Participant

    Bonjour

    Sans jeu de données, je ne suis pas sûr de bien comprendre et de répondre à la question.
    Je me suis donc créé un jeu d’essais sur lequel j’ai testé.
    ———-
    des mesures DAX avec la fonction TREATAS qui fonctionnent bien dans des visuels graphiques, mais pas en table ou matrice.
    Je me suis inspiré de l’article suivant au chapitre DAX Measure For Custom Bands : https://radacad.com/age-banding-in-power-bi-using-treatas-dax-function-relationship-based-on-between
    ———-
    En power query et j’obtiens une nouvelle colonne “Tranche” dans ma table à partir de laquelle je peux réaliser les visuels et calculs que je veux.
    Je me suis inspiré de l’article suivant au chapitre sur “Reproduire la fonction RECHERCHEV avec correspondance approximative dans Power Query” : https://www.lecfomasque.com/4-facons-de-reproduire-la-fonction-recherchev-dexcel-dans-power-query/
    ———-

    Voir en exemple le fichier power BI.

    En espérant avoir aidé
    cordialement,

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Tableau Power BI avec plusieurs lignes #125372
    Xavier Allart
    Participant

    Bonjour

    Sans jeu de données, je ne suis pas sur de répondre correctement à la question, mais la solution est peu être de réaliser un visuel de type matrice et dans les options de mise en forme choisir de placer les valeurs en lignes plutôt qu’en colonne. Voir la capture d’écran.

    Cordialement,

    Attachments:
    You must be logged in to view attached files.
    Xavier Allart
    Participant

    Bonjour

    Pour cette autre solution, passer en power query
    Dupliquer la colonne Rayon
    Ajouter une colonne personnalisée nommée “Nb” et ayant comme formule =1
    Sélectionner la colonne Rayon – Copie
    Dans le Ruban Transformer > Pivoter la colonne
    Colonne de valeurs : Nb

    Cordialement,

    Attachments:
    You must be logged in to view attached files.
    Xavier Allart
    Participant

    Bonjour

    Est-ce que la solution ne serait pas de réaliser selon le logiciel utilisé :
    Excel : Un tableau croisé dynamique
    Power BI : une matrice
    Avec
    en ligne : Tickets
    en colonne : Rayons
    en Valeur : Nombre de tickets

    Cordialement,

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Gérer deux filtres liés sur deux tables #125142
    Xavier Allart
    Participant

    Bonjour

    Sans un jeu d’exemple simplifié, c’est compliqué de comprendre le problème et de vous aider.
    Je vous joins un exemple
    Pouvez-vous indiquer quelle est la relation entre les 2 tables quels champs, ainsi que la cardinalité (1 à 1) (1 à *)

    Cordialement,

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ligne vertic. du jour dans un graphe TCD #124900
    Xavier Allart
    Participant

    Bonjour

    Voici un exemple avec l’ajout d’une colonne.
    J’ai choisi d’afficher la valeur max si la date est aujourd’hui.
    cordialement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplissage colonne #124858
    Xavier Allart
    Participant

    Bonjour

    Je vous propose 2 solutions

    Solution 1 necessite d’ecrire la requete en passant par l’editeur avancé
    lien vers la source d’information : https://www.exceldemy.com/excel-power-query-running-total-by-group/

    Solution 2 avec les fonctionnalités de bases de Power Query: une fusion, un filtre, un regroupement.
    lien vers la source d’information : https://www.lecfomasque.com/sujet/comment-faire-un-cumul-conditionnel-des-donnees-directement-dans-power-query/

    En piece jointe un classeur Excel avec les 2 solutions.

    Cordialement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Formule Si dans une requete #124847
    Xavier Allart
    Participant

    Bonjour

    Votre besoin est d’ajouter une colonne Z, qui si la valeur de X est égale à zéro affiche Z sinon X
    soit si on devait l’écrire avec Excel =SI(X=0;Z;X)

    En PowerQuery, il faut :
    1) Ajouter une colonne
    2) Choisir : Colonne conditionnelle
    3) Nommer la Z
    4) Sélectionner X comme nom de la colonne
    5) Sélectionner égal à comme Opérateur
    6) Saisir 0 comme Valeur
    7) et 8) sélectionner la colonne Y comme Sortie
    9) et 10) sélectionner la colonne X comme Autre

    Voir la capture d’écran en pièce jointe.

    Cordialement,

    Attachments:
    You must be logged in to view attached files.
15 sujets de 91 à 105 (sur un total de 143)