Toutes mes réponses sur les forums

15 sujets de 76 à 90 (sur un total de 121)
  • Auteur
    Messages
  • en réponse à : Affichage des données d’une table #122283
    Daniel
    Participant

    Bonjour Magali, le Forum,

    Est-ce que tu veux dire qu’après avoir cliquer sur un segment géographique, cela met longtemps voir très longtemps pour afficher les données ou est-ce au contraire très rapide et n’affiche rien ?
    Les segments géographiques de la page proviennent-ils de cette table ou d’autres tables ?
    J’ai déjà eu des tables avec plus d’un million de lignes sur plus de colonnes que toi et les données étaient toujours présentes dans les matrices utilisées sous Power BI.
    Cordialement
    Daniel

    en réponse à : Remplir vers le bas dans certains cas #122282
    Daniel
    Participant

    Bonjour k.musseleck, le Forum,

    En première approche, j’utiliserais le tri des données comme suit :
    1 – Sélectionner la colonne Prod order no et trier en ordre croissant
    2 – Sélectionner la colonne Line type et trier en ordre décroissant (cela placera Ecriture Production en 1er et Ecriture capacité à la suite)
    Ensuite, on va dans l’onglet Transformer, on sélectionne la colonne NomClient et avec l’option Remplir vers le bas, cela devrait faire le job.
    Cordialement
    Daniel

    en réponse à : FILTRE AVEC MESURE #108192
    Daniel
    Participant

    Bonjour pierro1234, le Forum,
    A essayé, l’axe des X change et la valeur des Y aussi mais je trouve perturbant d’avoir afficher le mois de février avec les données de janvier. Peut-être ai-je mal compris ce que tu voulais représenter. Merci à Curbal pour cette astuce (http://www.curbal.com). J’étais parti dans cette direction (création d’une table déconnectée sans aboutir à un résultat probant).
    1 – Changement de la mesure QTTEVENDUE comme suit : QTTEVENDUE = IF(SELECTEDVALUE(‘Périodes'[Périodes]) = “Current”, SUM(TableProduit[QUANTITE]),calculate( SUM(TableProduit[QUANTITE]),PREVIOUSMONTH(‘1Datum'[Date])))

    2 – Modifier le choix mesure en incluant 4 nouveaux items (pour le previous month, sachant que l’on en a déjà 4 pour le current).
    3 – Création d’une table déconnectée, menu Accueil, Entrer les données, on y entre le nom de la colonne et ses valeurs (Current et Previous month), puis une colonne ID avec les numéros de la table “choix mesure” (0 à 7 dans ce cas)
    4 – Création d’une liaison entre la table “choix mesure” (3ème colonne) et la table déconnectée
    colonne ID
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplacement des valeurs d’une colonne (nombre important) #108187
    Daniel
    Participant

    Bonjour Magali, Le Forum,

    Autre possibilité, mais pas tester sur grande quantité de données (juste le jeu fourni), donc à tester en grandeur nature.
    Cela permet de ne pas passer par une colonne intermédiaire puis de la supprimer.
    Désolé du temps de réponse, mais j’ai un peu galéré.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplacement des valeurs d’une colonne (nombre important) #108164
    Daniel
    Participant

    Bonjour Magali, Le Forum,
    Je ne suis pas arrivé à faire la modification dans la colonne d’origine, mais en supprimant la colonne d’origine et renommer la nouvelle colonne avec le nom de la colonne d’origine, cela fonctionne aussi, c’est bien sur quelques étapes supplémentaires mais à mon avis le temps d’exécution ne sera pas impacté.
    Je regarde ce soir si une autre possibilité est faisable.
    Cordialement
    Daniel

    en réponse à : Remplacement des valeurs d’une colonne (nombre important) #108140
    Daniel
    Participant

    Bonjour Magali, Laurent, Le Forum,

    Autre possibilité en utilisant la fonction List.Accumulate
    J’ai ajouté à la fin du fichier d’origine deux villes sans erreurs et je retrouve leurs noms corrects, ça permet de corriger sur une liste de villes contenant des erreurs ou non.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : FILTRE AVEC MESURE #108040
    Daniel
    Participant

    Bonjour pierrot1234, Le Forum,
    Pour obtenir les données du mois précédent, j’aurais utilisé la fonction PREVIOUSMONTH comme suit :

    QTTEVENDUE_PM = CALCULATE(SUM(TableProduit[QUANTITE]),PREVIOUSMONTH(‘1Datum'[Date]))
    D’autres fonctions de Time Intelligence comme SAMEPERIODLASTYEAR, PREVIOUSYEAR, TOTALMTD existent pour répondre à d’autres besoins.
    Un outil externe existe pour créer des calculation group afin de limiter le nombre de mesures à créer sous Power BI (https://kpi-consulting.fr/optimiser-le-nombre-de-mesures-grace-aux-calculation-group/).
    Ci-joint un exemple de calculation group
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : FILTRE AVEC MESURE #108005
    Daniel
    Participant

    Bonjour Pierrot1234, Eric, Le Forum,

    Je pense qu’en utilisant la nouvelle fonctionnalité Fields Parameter, pour ce faire aller dans Modélisation, puis Nouveau paramètre, Champs.
    1 – donner un nom au paramètre
    2 – Choisir les champs/mesures que l’on veut mettre dans le slicer qui va être créer.
    3 – Aller dans le visuel, et dans ton cas, choisir le nom précédemment crée et le faire glisser dans l’axe des Y.
    4 – il suffit maintenant de choisir la mesure dans le slicer pour l’afficher dans le visuel.
    Cela équivaut à la solution proposée par Eric, mais cela peut aussi être utilisé pour affichier des champs différents dans un visuel (exemple : Produit, catégories, customers, régions pour afficher les quantités vendues)
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : charger des donné pwq en fonction d’un Critère #107941
    Daniel
    Participant

    Bonjour Deltacta, Le Forum,

    Autre possibilité (si faisable avec données d’origine), regrouper toutes les requêtes journalières en une seule avec une colonne contenant la journée (LUNDI, MARDI,etc…), pré-requis les entêtes doivent être identiques (TOURNEE FRAIS et TOURNEE F) ne seront pas mis à la suite mais sur des colonnes différentes. Chaque requête devra avoir le nom du jour dans une colonne.

    Ensuite créer une nouvelle requête en prenant comme source la liste déroulante des jours de tournée, une fois chargée faire un clic droit et Drill Down, tu devrais avoir le nom du jour avec le symbole ABC sur la gauche. Donner un nom à cette requête (exemple : ChoixDuJour)

    Retour sur la requête contenant toutes les données et filtrer sur la colonne contenant les différents jours, choisir n’importe quel jour, ensuite modifier le jour (exemple : “MARDI” par ChoixDuJour) dans la barre de formule.
    L’utilisateur peut changer le jour dans la liste déroulante et en actualisant la requête les données apparaîtront.
    Cordialement
    Daniel

    en réponse à : Faire calcul conditionnel selon 2 tables #107919
    Daniel
    Participant

    Bonjour keveen, Eric, Le Forum,

    Content de voir que cela fonctionne, merci pour le retour.

    Afin de te permettre de comprendre la formule utilisée, j’ai joint quelques explications dans le document ci-joint
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : charger des donné pwq en fonction d’un Critère #107297
    Daniel
    Participant

    Bonjour Deltacta, Le Forum,

    Et sans macro, si cela peut t’intéresser, en utilisant les fonctions Excel Index et Indirect (voir pièce jointe).

    Exemple :
    =SIERREUR(INDEX(INDIRECT(SUBSTITUE($B$1;”&”;”_”));LIGNE()-LIGNE(B$3);EQUIV(B$3;LUNDI[#En-têtes];0));””)

    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Faire calcul conditionnel selon 2 tables #107280
    Daniel
    Participant

    Bonjour keveen, Le Forum,

    Peux-tu me dire à quoi sert la dernière étape #”Montant en USD” = AjoutColMontantUSD{0}[Net Sales USD], en faisant le test avant de poster ma 1ère réponse cela n’en faisait pas partie et j’obtenais le montant converti dans la devise USD ?
    S’il t’était possible de fournir un exemple de données anonymisées de tes deux tables, je pourrais regarder, car comme cela je ne vois pas d’où cela vient.
    En pièce jointe, mon essai par rapport à ta description initiale.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Faire calcul conditionnel selon 2 tables #107205
    Daniel
    Participant

    Bonjour keeveen, Le Forum,

    Plusieurs étapes seront nécessaires.
    1 – Chargement de la 1ère table (Invoiced Sales)
    2 – Chargement de la seconde table (Rate fx)
    3 – Ajout d’une colonne personnalisée (Montant en USD), elle correspond à l’étape ‘AjoutColMontantUSD’ de la requête ci-dessous, pour chaque ligne de ta table Invoiced Sales, on va regarder quelles lignes de la table Rate fx correspondent à l’année et à la devise et on va récupérer le taux de change qui sera multiplié par le montant commande
    Quelques explications :
    Table.SelectRows(tabExchangeRate,
    (varCalc) => varCalc[Devise code]=[Devise code]
    and varCalc[Année]=Date.Year([Date de commande] )) permet de sélectionner les lignes de la table “Rate Fx” que j’ai appelé tabExchangeRate si on lui ajoute [Taux de change] on récupère une liste d’une ligne correspondant au taux de change de la devise et de l’année de la table “Invoiced Sales”, et en lui ajoutant {0} on récupère le taux de change, il suffit de multiplier le montant de commande par ce taux pour obtenir le montant en USD

    Début de la requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
    ModificationType = Table.TransformColumnTypes(Source,{{“Montant commande”, type number}, {“Date de commande”, type date}}),
    AjoutColMontantUSD = Table.AddColumn(ModificationType, “Montant en USD”, each [Montant commande] * Table.SelectRows(tabExchangeRate,
    (varCalc) => varCalc[Devise code]=[Devise code]
    and varCalc[Année]=Date.Year([Date de commande] ))[Taux de change]{0}, type number)
    in
    AjoutColMontantUSD
    Fin de la requête

    En espérant avoir pu t’aider à résoudre ton problème
    Cordialement
    Daniel

    en réponse à : Colonne calculée avec des valeurs type date de deux tables différentes #107112
    Daniel
    Participant

    Bonjour konanothnielr, Manon, Le Forum,

    Et en essayant ce qui suit, cela devrait faire le job en ayant préalablement établi les relations entre les tables.

    Nb_Jours = datediff(SELECTEDVALUE(‘Création'[Date_création]),SELECTEDVALUE(Reception[date_reception]),day)
    On met la date de reception et la date de création dans un visuel ‘Table’ et on ajoute la mesure ci-dessus, cela affichera le nombre de jours compris entre ces deux dates.
    Cordialement
    Daniel
    Cependant, je souscris pleinement à la remarque de Manon, une table de dates (calendrier) est effectivement utile pour toutes les fonctions de TimeIntelligence que l’on souhaiterais utiliser.

    en réponse à : Heure UTC – Heure d’été / Heure d’hiver #107109
    Daniel
    Participant

    Bonjour CopyCat, Le Forum,

    En espérant avoir bien compris, dans l’exemple j’ai deux colonnes une pour les dates et l’autre pour les heures, que je rassemble après (une colonne en entrée devrait suffire).
    – Création d’une colonne Année
    – Grouper sur cette colonne en sélectionnant Toutes les lignes
    – Heure d’été : dernier dimanche du mois de Mars, je suis parti du 01/03/ année de la ligne de donnée, puis je prends le dernier jour du mois de cette date et calcul du dernier dimanche (7-6+jour de la semaine du dernier jour du mois). A cette date, je rajoute le temps soit 2 heures du matin.
    – Heure hiver : même principe que pour Heure été mais en partant du 01/10
    Cette partie peut être simplifiée en partant directement du dernier jour du mois de Mars et d’Octobre

    Début Requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau2″]}[Content],
    ModificationTypeDonnées = Table.TransformColumnTypes(Source,{{“Date de relevé”, type date}, {“Heure UTC (0)”, type time}}),
    DateHeureReleve = Table.AddColumn(ModificationTypeDonnées, “DateHeureRelevé”, each #datetime(Date.Year([Date de relevé]),Date.Month([Date de relevé]),Date.Day([Date de relevé]),Time.Hour([#”Heure UTC (0)”]),Time.Minute([#”Heure UTC (0)”]),Time.Second([#”Heure UTC (0)”]))),
    AjoutColonneAnnee = Table.AddColumn(DateHeureReleve, “Année”, each Date.Year([Date de relevé]), Int64.Type),
    GroupByAnnee = Table.Group(AjoutColonneAnnee , {“Année”}, {{“AnnéeCalendaire”, each _, type table [Date de relevé=nullable date, #”Heure UTC (0)”=nullable time, Année=number]}}),
    DateDébutEte = Table.AddColumn(GroupByAnnee, “DébutEté”, each Table.AddColumn([AnnéeCalendaire],”DateDébutEté”,each Date.AddDays(Date.EndOfMonth(Date.FromText(“01/03/”&Text.From([Année]))), -(7-6+Date.DayOfWeek(Date.EndOfMonth(Date.FromText(“01/03/”&Text.From([Année])))))))),
    DateFinEte = Table.AddColumn(DateDébutEte, “FinEté”, each Table.AddColumn([DébutEté],”DateFinEté”,each Date.AddDays(Date.EndOfMonth(Date.FromText(“01/10/”&Text.From([Année]))), -(7-6+Date.DayOfWeek(Date.EndOfMonth(Date.FromText(“01/10/”&Text.From([Année])))))),type date)),
    DateTimeDebutEte= Table.AddColumn(DateFinEte, “DateHeureEté”, each Table.AddColumn([FinEté], “DateHeureDebutEte”, each #datetime(Date.Year([DateDébutEté]),Date.Month([DateDébutEté]),Date.Day([DateDébutEté]),Time.Hour(Time.FromText(“02:00:00am”)),Time.Minute(Time.FromText(“02:00:00am”)),Time.Second(Time.FromText(“02:00:00am”))), type datetime)),
    DateTimeFinEte = Table.AddColumn(DateTimeDebutEte, “DateHeureFinEté”, each Table.AddColumn([DateHeureEté], “DateHeureFinEte”, each #datetime(Date.Year([DateFinEté]),Date.Month([DateFinEté]),Date.Day([DateFinEté]),Time.Hour(Time.FromText(“03:00:00am”)),Time.Minute(Time.FromText(“03:00:00am”)),Time.Second(Time.FromText(“03:00:00am”))), type datetime)),
    SuppressionColonnes = Table.SelectColumns(DateTimeFinEte,{“DateHeureFinEté”}),
    DevelopperTableData = Table.ExpandTableColumn(SuppressionColonnes, “DateHeureFinEté”, {“DateHeureRelevé”, “DateHeureDebutEte”, “DateHeureFinEte”}, {“DateHeureRelevé”, “DateHeureDebutEte”, “DateHeureFinEte”}),
    CalculHeuresUTC = Table.AddColumn(DevelopperTableData, “DateHeureRelevé UTC”, each if [DateHeureRelevé] >= [DateHeureDebutEte] and [DateHeureRelevé] <= [DateHeureFinEte] then [DateHeureRelevé]+#duration(0,2,0,0) else [DateHeureRelevé] + #duration(0,1,0,0)),
    SuppressionAutresColonnes = Table.SelectColumns(CalculHeuresUTC,{“DateHeureRelevé UTC”, “DateHeureRelevé”}),
    PermutationColonnes = Table.ReorderColumns(SuppressionAutresColonnes,{“DateHeureRelevé”, “DateHeureRelevé UTC”})
    /*
    Fin du mois Mars = Date.EndOfMonth(Date.FromText(“01/03/”&Text.From([Année])))
    Jour de fin du mois Mars = Date.DayOfWeek(Date.EndOfMonth(Date.FromText(“01/03/”&Text.From([Année]))))
    Calcul du dernier Dimanche = Date.AddDays(Date.EndOfMonth(Date.FromText(“01/03/”&Text.From([Année]))), -(7-6+Date.DayOfWeek(Date.EndOfMonth(Date.FromText(“01/03/”&Text.From([Année]))))))
    7 : pour 7 jours dans la semaine
    6 : chiffre correspond à dimanche
    Date.DayOfWeek(Date.EndOfMonth(Date.FromText(“01/03/”&Text.From([Année])))) : Jour de la semaine du dernier jour du mois
    HeureChgHeureEte = Time.FromText(“02:00:00am”)
    DateTimeDebutEte= Table.AddColumn(DateDébutEté, “Début Date été”, each #datetime(Date.Year([DateDébutEté]),Date.Month([DateDébutEté]),Date.Day([DateDébutEté]),Time.Hour(Time.FromText(“02:00:00am”)),Time.Minute(Time.FromText(“02:00:00am”)),Time.Second(Time.FromText(“02:00:00am”))), type datetime)
    */
    in
    PermutationColonnes

    Fin Requête

    Cela te donnera au moins des pistes à étudier, cela reste à tester sur un grand nombre de lignes afin de voir la performance et de l’améliorer au besoin.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
15 sujets de 76 à 90 (sur un total de 121)