Toutes mes réponses sur les forums

15 sujets de 1 à 15 (sur un total de 121)
  • Auteur
    Messages
  • en réponse à : Diviser une cellule sur Power Query #151388
    Daniel
    Participant

    Bonjour princessefiona_57, le Forum,

    Voici une proposition qui je l’espère vous donnera le résultat attendu ou vous donnera des pistes d’investigation pour résoudre votre problème.
    Suis parti du tableau_Test comme base de travail à adapter dans le code si pas la bonne source.

    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau_Test”]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“N° d’expé”, type text}, {“Date d’expé”, type date}, {“N° BL”, type text}, {“Expéditeur”, type text}, {“Destinataire”, type text}, {“CP”, type any}, {“Localité”, type text}, {“Pays”, type text}, {“UM”, Int64.Type}, {“Poids “, Int64.Type}, {“Date livraison”, type date}}),
    FractionnerColBL7PremiersCaracteres = Table.SplitColumn(ModificationTypeDonnees, “N° BL”, Splitter.SplitTextByPositions({0, 7}, false), {“N° BL.1”, “N° BL.2”}),
    ModificationTypeDonnesColBL = Table.TransformColumnTypes(FractionnerColBL7PremiersCaracteres,{{“N° BL.1”, type text}, {“N° BL.2”, type text}}),
    FractionnerColBLParDelimiteur = Table.ExpandListColumn(Table.TransformColumns(ModificationTypeDonnesColBL, {{“N° BL.2”, Splitter.SplitTextByDelimiter(“/”, QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), “N° BL.2″),
    #”AjoutColonne NoBL” = Table.AddColumn(FractionnerColBLParDelimiteur, “No BL”, each if Text.Length([#”N° BL.2″]) < 3 then [#”N° BL.1″] &Text.PadStart(“0″,3-Text.Length([#”N° BL.2″])) & [#”N° BL.2″] else [#”N° BL.1″] & [#”N° BL.2″]),
    PermutationColNoBL = Table.ReorderColumns(#”AjoutColonne NoBL”,{“N° d’expé”, “Date d’expé”, “N° BL.1”, “N° BL.2”, “No BL”, “Expéditeur”, “Destinataire”, “CP”, “Localité”, “Pays”, “UM”, “Poids “, “Date livraison”}),
    SuppressionColsInutiles = Table.RemoveColumns(PermutationColNoBL,{“N° BL.1”, “N° BL.2”})
    in
    SuppressionColsInutiles

    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : formule LIREDONNEESTABCROISDYNAMIQUE PowerPivot #151026
    Daniel
    Participant

    Bonjour Cyrielle, le Forum,

    Pour la formule, je l’écrierais comme suit :
    formule originelle
    =+LIREDONNEESTABCROISDYNAMIQUE(“[Measures].[Somme de MONTANT COMPTABILISE PAPO PLURIANNUEL]”;’COMPTABILISE PL’!$Z$11;”[PAPO_Producteur_Export_prod].[CODE PRESTATION]”;”[PAPO_Producteur_Export_prod].[CODE PRESTATION].&[A4]”)

    formule corrigée
    =+LIREDONNEESTABCROISDYNAMIQUE(“[Measures].[Somme de MONTANT COMPTABILISE PAPO PLURIANNUEL]”;’COMPTABILISE PL’!$Z$11;”[PAPO_Producteur_Export_prod].[CODE PRESTATION]”;”[PAPO_Producteur_Export_prod].[CODE PRESTATION].&[” & A4 & “]”)
    la cellule A4 doit juste contenir le code prestation

    En espérant avoir pu vous aider
    Cordialement
    Daniel

    en réponse à : Calcul d’une somme sur filtre dans power qwery #148710
    Daniel
    Participant

    Bonjour corentin.solignac2, le Forum,

    Je pense que la requête suivante devrait répondre à votre attente, sauf qu’elle part de la 1ère ligne de vos données et le cumul se reporte pas à la semaine en cours .
    Je n’ai pas su voir comment vous déterminer la semaine en cours donc voici ma proposition, qui j’espère vous mettra sur des pistes de solutions.
    D’autres méthodes sont possibles, comme Liste.Accumulate mais je ne maîtrise pas encore bien cette fonction avec des conditions comme la semaine active.

    Requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“semaine”, Int64.Type}, {“charge “, Int64.Type}, {“heures d’ouverture “, Int64.Type}}),
    RenommerColonnes = Table.RenameColumns(ModificationTypeDonnees,{{“charge “, “charge”}, {“heures d’ouverture “, “heures d’ouverture”}}),
    DiffCol = Table.AddColumn( RenommerColonnes,”Diff”, each [charge]-[#”heures d’ouverture”]),
    Index = Table.AddIndexColumn(DiffCol, “Index”, 1, 1, Int64.Type),
    AddListOfDiff = Table.AddColumn(Index,”ListOfDiff”, each DiffCol[Diff]),
    AjoutCumul = Table.AddColumn(AddListOfDiff,”Cumul”, each List.Sum(List.Range([ListOfDiff],0,[Index]))),
    SuppressionColonnes = Table.RemoveColumns(AjoutCumul,{“Diff”, “Index”, “ListOfDiff”})
    in SuppressionColonnes

    Fin de la requête
    Cordialement
    Daniel

    en réponse à : Suppression incomplète des doublons #148670
    Daniel
    Participant

    Bonjour aline.clozel, le Forum,

    La requête ci-dessous liste toutes les lignes en doublons
    let
    Source = Csv.Document(File.Contents(“E:\Téléchargements\doublons_nemarchepas.csv”),[Delimiter=”;”, Columns=3, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    Modif_TypeDonnees = Table.TransformColumnTypes(Source,{{“Column1”, type text}, {“Column2”, type text}, {“Column3″, type text}}),
    PromotionEntete = Table.PromoteHeaders(Modif_TypeDonnees, [PromoteAllScalars=true]),
    RemplacerLesValeurs = Table.ReplaceValue(PromotionEntete,”’”,”‘”,Replacer.ReplaceText,{“nom_programme”}),
    GrouperSurNomEtForme = Table.Group(RemplacerLesValeurs, {“nom_programme”, “forme_urbaine”}, {{“Nombre”, each Table.RowCount(_), Int64.Type}}),
    FiltrerLignesSupà1 = Table.SelectRows(GrouperSurNomEtForme, each ([Nombre] <> 1))
    in
    FiltrerLignesSupà1

    Dans une des lignes du fichier CLOS DU CARDINAL il y a une ligne commençant par L’ et les trois autres par L’ (légère différence d’où l’écriture de la ligne RemplacerLesValeurs = Table.ReplaceValue(PromotionEntete,”’”,”‘”,Replacer.ReplaceText,{“nom_programme”})

    Dans cette deuxième requête, nous supprimons les doublons
    let
    Source = Csv.Document(File.Contents(“E:\Téléchargements\doublons_nemarchepas.csv”),[Delimiter=”;”, Columns=3, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    Modif_TypeDonnees = Table.TransformColumnTypes(Source,{{“Column1”, type text}, {“Column2”, type text}, {“Column3″, type text}}),
    PromotionEntete = Table.PromoteHeaders(Modif_TypeDonnees, [PromoteAllScalars=true]),
    RemplacerLesValeurs = Table.ReplaceValue(PromotionEntete,”’”,”‘”,Replacer.ReplaceText,{“nom_programme”}),
    SupprimerLesDoublons = Table.Distinct(RemplacerLesValeurs, {“nom_programme”, “forme_urbaine”})
    in
    SupprimerLesDoublons

    En espérant avoir répondu à vos questions
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Suppression incomplète des doublons #148663
    Daniel
    Participant

    Bonjour aline.clozel, le Forum,

    Pour répondre à ta demande, la requête suivante supprime les doublons

    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
    Modif_TypeDonnees = Table.TransformColumnTypes(Source,{{“nom_programme”, type any}, {“forme_urbaine”, type text}, {“millesime”, type any}}),
    Supp_DoublonsNomEtForme = Table.Distinct(Modif_TypeDonnees, {“nom_programme”})
    in
    Supp_DoublonsNomEtForme

    Mais pas contre dans l’exemple donne L’ECRIN DU CARDINAL, il subsiste encore deux lignes après cette requête
    L’ECRIN DU CARDINAL et L’ECRIN DU CARDINAL
    C’est comme ça que c’est écrit dans le fichier transmi, l’apostrophe ne me paraît pas être pareil.
    Je n’ai pas regardé les autres cas éventuels, mais j’espère que cela vous donnera des pistes de reflexion.
    Cordialement
    Daniel

    en réponse à : Power Query – Si #148596
    Daniel
    Participant

    Bonjour adrienblanc1,
    J’ai essayé de répondre à votre demande, en espérant avoir compris la problématique, la réponse se trouve dans le fichier joint et je met la requête PowerQuery ci-dessous.
    Je suis parti de deux tableaux (1 contenant les données et l’autre les dates de Bornes), la requête sera à adapter selon votre modèle de données.

    Requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabBornes”]}[Content],
    ModificationTypeBornes = Table.TransformColumnTypes(Source,{{“Bornes”, type date}}),
    Borne2 = ModificationTypeBornes{0}[Bornes],
    Borne3 = ModificationTypeBornes{1}[Bornes],
    tabBornes = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    ModificatonTypeData = Table.TransformColumnTypes(tabBornes,{{“Participation”, type text}, {“Date”, type date}}),
    Resultat = Table.AddColumn(ModificatonTypeData, “Personnalisé”, each if [Participation]=”Present” and [Date] < Borne2 then Source[Value]{0} else if [Participation]=”Present” and [Date] < Borne3 then Source[Value]{1} else null)
    in
    Resultat
    Fin requête

    En espérant avoir pu vous aider
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Power Query – Si #148588
    Daniel
    Participant

    Bonjour adrienblanc1,

    Pourriez-vous donner plus de précisions sur les différentes valeurs des bornes 2 et 3?
    Si cela peut être possible, un extrait du fichier serait le bienvenu afin d’être certain de répondre le plus précisément possible.
    Cordialement
    Daniel

    en réponse à : Supprimer dernière ligne #148051
    Daniel
    Participant

    Bonjour Eric, le Forum,
    En espérant avoir bien compris la demande, je propose la solution suivante.
    let
    Source = Excel.CurrentWorkbook(){[Name=”Jour_Exploitation”]}[Content],
    GrouperLesSalles = Table.Group(Source, {“Salles”}, {{“AllRows”, each _, type table [Salles=nullable text, Dates=nullable datetime, Exploitation Début=nullable number, Exploitation Fin=nullable number]}}),
    AjoutColResultat = Table.AddColumn(GrouperLesSalles, “Resultat”, each if List.Count([AllRows][Salles]) > 1 then Table.Skip([AllRows],1) else [AllRows]),
    DevelopperResultat = Table.ExpandTableColumn(AjoutColResultat, “Resultat”, {“Dates”, “Exploitation Début”, “Exploitation Fin”}, {“Dates”, “Exploitation Début”, “Exploitation Fin”}),
    SuppressionColonnes = Table.RemoveColumns(DevelopperResultat,{“AllRows”}),
    ModificationTypeDonnees = Table.TransformColumnTypes(SuppressionColonnes,{{“Dates”, type date}, {“Exploitation Début”, type time}, {“Exploitation Fin”, type time}})
    in
    ModificationTypeDonnees

    Si cela ne répond pas à ce que vous attendez, serait-il possible de donner un exemple de résultat attendu ?
    Cordialement
    Daniel

    en réponse à : Création d’une colonne calculée #147361
    Daniel
    Participant

    Bonjour Anne-Marie, le Forum,

    En essayant la syntaxe suivante :
    Statut = SWITCH(
    TRUE,
    NOT(ISBLANK([Date Achévement])), “Terminée”,
    NOT(ISBLANK([Date Inscription])) && ISBLANK([Date Début]), “Inscrit non débuté”,
    NOT(ISBLANK([Date Inscription])) && ISBLANK([Date Achévement]), “En cours”,
    BLANK()
    )
    cela me donne le résultat suivant (voir fichier joint 20241016_AnneMarie.jpg) :

    Sinon on peut aussi créer la colonne dans Power query par deux façons de procéder (vérifier le temps d’exécution) comme suit :

    1 – Simulation de la fonction Switch
    let
    Source = Excel.Workbook(File.Contents(“C:\Users\Daniel\OneDrive\Documents\Forums\CFO Masqué\AnneMarie_20241016.xlsx”), null, true),
    tabData_Table = Source{[Item=”tabData”,Kind=”Table”]}[Data],
    ModificationTypeDonnees = Table.TransformColumnTypes(tabData_Table,{{“Date Inscription”, type date}, {“Date Achévement”, type date}, {“Date Début”, type date}}),
    StatutSwitch = Table.AddColumn(ModificationTypeDonnees, “Statut power Query”, each
    let
    Conditions = {
    [Date Achévement] <> null,
    [Date Inscription] <> null and [Date Début] = null,
    [Date Inscription] <> null and [Date Achévement] = null},
    Resultat = {“Terminée”,”Inscrit non débuté”,”En cours”}
    in
    Resultat{List.PositionOf(Conditions,true)}),
    in
    Statut_Switch

    2 – En créant une colonne conditionnelle
    let
    Source = Excel.Workbook(File.Contents(“C:\Users\Daniel\OneDrive\Documents\Forums\CFO Masqué\AnneMarie_20241016.xlsx”), null, true),
    tabData_Table = Source{[Item=”tabData”,Kind=”Table”]}[Data],
    ModificationTypeDonnees = Table.TransformColumnTypes(tabData_Table,{{“Date Inscription”, type date}, {“Date Achévement”, type date}, {“Date Début”, type date}}),
    Statut_ColCond = Table.AddColumn(ModificationTypeDonnees, “Statut col conditionnelle”, each if [Date Achévement] <> null then “Terminée” else if [Date Inscription] <> null and [Date Début] = null then “Inscrit non débuté” else if [Date Inscription] <> null and [Date Achévement] = null then “En cours” else “Cas non prévu”)
    in
    Statut_ColCond

    En espérant avoir pu vous aider.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Regroupement de colonnes du type TCD dans PowerBI #146808
    Daniel
    Participant

    Bonjour cricri, le Forum,
    Si ce n’est pas pour obtenir un rapport Power BI, alors en établissant ta requête dans EXCEL via Power Query (Menu Données, le choix entre diverses sources de données est possible fichier Excel, CSV, base SQL) ensuite en chargeant tes données obtenues après transformation éventuelle dans le modèle de données et en activant POWER PIVOT, il sera alors possible de créer un tableau croisé dynamique mais en gardant la possibilité de créer des mesures (notamment de temps avec une table de Dates).
    Cordialement
    Daniel

    en réponse à : Résultat de la période précédente #146128
    Daniel
    Participant

    Bonjour Jblan, le Forum,

    Peut-être que la fonction DAX PREVIOUS pourrait répondre à votre besoin.

    https://learn.microsoft.com/fr-fr/dax/previous-function-dax

    Cordialement
    Daniel

    en réponse à : Création de plusieurs colonnes personnalisées en une fois #145203
    Daniel
    Participant

    Bonjour Arnaud, le Forum,
    Désolé du temps de réponse mais voici quelques explications ainsi que différentes requêtes permettant d’obtenir le résultat escompté, bien entendu tout est surement améliorable.

    Fichier Excel avec les requêtes
    Fichier Word avec les différentes explications

    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Création de plusieurs colonnes personnalisées en une fois #145164
    Daniel
    Participant

    Bonjour Arnaud, le Forum,
    Merci de vos précisions et du fichier fourni.
    J’ai adapté la requête afin d’être conforme au résultat souhaité. Je trouve une différence car par exemple pour le 01 juillet 2024, vous partez de la donnée de la ligne 26 auquel vous enlevez la donnée de la ligne 2. Pour moi, le 01 juillet 2024 commence à 00:00 et se termine à 23:59.
    En espérant vous avoir aidé, et ce malgré cette légère différence de calcul, ne voyant pas de solution immédiate, je vais continuer à chercher.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Création de plusieurs colonnes personnalisées en une fois #145072
    Daniel
    Participant

    Bonjour Arnaud, le Forum,

    En espérant avoir bien compris la demande, je propose de regrouper les données
    – par compteurs (toutes date confondues) et de calculer la différence entre la valeur mini du compteur et la valeur maxi du compteur
    – par date (tous compteurs confondus) et là aussi calculer la valeur mini de la date et la valeur maxi de la date
    Si cela ne répond pas à la demande, serait-il possible d’avoir un exemple de résultat souhaité, mais peut-être que cela pourra t’aider à trouver la réponse. Voir le fichier joint.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : INDEX/EQUIV -Valeur Max #142768
    Daniel
    Participant

    Bonjour MLagrange, Le Forum,

    En espérant t’aider avec ces deux formules
    Heure minimale en fonction de la date de ton tableau TABLEAU
    =INDEX(Tableau1[Temps];EQUIV(1;(Tableau1[Date]=G6)*(Tableau1[Temps]=MIN.SI.ENS(Tableau1[Temps];Tableau1[Date];G6));0))
    Heure maximale en fonction de la date de ton tableau TABLEAU
    =INDEX(Tableau1[Temps];EQUIV(1;(Tableau1[Date]=G6)*(Tableau1[Temps]=MAX.SI.ENS(Tableau1[Temps];Tableau1[Date];G6));0))
    Il faut que les dates de tes données soient reportées dans la Partie TABLEAU, on pourrait peut-être utilisé les fonctions UNIQUE et FILTRE pour autant que votre version Excel soit compatible avec ces deux formules. Si c’est le cas, alors la formule serait :
    =UNIQUE(FILTRE(Tableau1[Date];Tableau1[Date];”Pas de valeurs”))

    On peut aussi obtenir le même résultat en utilisant Power Query avec la requête suivante :
    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“Date”, type date}, {“Temps”, type time}}),
    // On groupe sur les dates et on utilise deux regroupement afin d’avoir les valeurs MIN et MAX de la colonne TEMPS
    GrouperSurLesDates = Table.Group(ModificationTypeDonnees, {“Date”}, {{“De”, each List.Min([Temps]), type nullable time}, {“A”, each List.Max([Temps]), type nullable time}})
    in
    GrouperSurLesDates

    Cordialement
    Daniel

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