Toutes mes réponses sur les forums

15 sujets de 46 à 60 (sur un total de 283)
  • Auteur
    Messages
  • en réponse à : recuperer le mois #106967
    Stéphane Lorin
    Participant

    Bonjour

    Voici les étapes que j’essaierai (non testé, pas Excel sous la main)

    List.Transform(Text.Split([Dates_tournées],”,”), Date.Month) pour obtenir la liste des n° de mois

    ensuite
    List.MatchesAny(Etape_précédente, each _ <= 4)
    List.MatchesAny(Etape_précédente, each _ >= 5 and _ <=8)
    List.MatchesAny(Etape_précédente, each _ >= 9)

    autre possibilité
    List.ContainsAny(Etape_précédente,{1, 2, 3, 4})
    List.ContainsAny(Etape_précédente,{5, 6, 7, 8})
    List.ContainsAny(Etape_précédente,{9, 10, 11, 12})

    Stéphane

    en réponse à : Caractères avec points d’interrogation à modifier #106844
    Stéphane Lorin
    Participant

    Bonjour
    En ouvrant votre fichier Excel avec un lecteur zip on peut voir le code source (un fichier xlsx est un fichier zip).
    Les chaînes de caractères sont stockées dans sharedStrings.xml
    En ouvrant ce fichier sous un éditeur de texte vous verrez les caractères �
    Ainsi je pense que le fichier lui-même ne contient pas les lettres spécifiques à l’alphabet tchèque.
    Il faudrait revoir la source du fichier

    Stéphane

    en réponse à : Caractères avec points d’interrogation à modifier #106763
    Stéphane Lorin
    Participant

    Bonjour

    On peut peut-être s’en sortir avec une combinaison de Text.FromBinary et Text.ToBinary.
    le second paramètre de ces fonctions permet de préciser le type d’encodage
    voir
    https://docs.microsoft.com/fr-fr/powerquery-m/textencoding-type
    https://docs.microsoft.com/fr-fr/powerquery-m/text-frombinary
    https://docs.microsoft.com/fr-fr/powerquery-m/text-tobinary

    Pourriez vous joindre un fichier Excel avec quelques noms de cette liste pour faire des tests ?

    Stéphane

    en réponse à : Fusion de lignes – concaténations #106700
    Stéphane Lorin
    Participant

    Bonjour

    Vous “regroupez par” la ou les colonnes et vous faites “Somme” de votre colonne que vous voulez concaténer.
    Evidemment vous aurez un message d’erreur car List.Sum de texte n’est pas possible
    Vous remplacez alors List.Sum par Text.Combine et vous pourrez spécifier le caractère de séparation “,” ou “-” ou “#(cr)” pour un retour à la ligne
    votre code ressemblera à
    …each Text.Combine([Test],”-“), type text…

    Stéphane

    en réponse à : Récupération de donnée de doublons colonnes #106524
    Stéphane Lorin
    Participant

    Bonjour
    Il manque une , à la fin de la ligne 5 et en ligne 6 un = entre le nom de l’étape et le Table.Group

    il faut aussi un “in” + nom de la dernière étape à la fin de la requête

    Stéphane

    en réponse à : Récupération de donnée de doublons colonnes #106510
    Stéphane Lorin
    Participant

    Bonjour

    c’est possible dans Power Query avec le regroupement

    Table.Group(étape_précédente, {“transporteur_id”}, {{“Département_id”, each Text.Combine([Département_id],”,”)}})

    attention, votre champ Département_id doit être typé “text”

    cette possibilité avec Text.Combine n’est pas proposée par défaut dans la boîte de dialogue du regroupement, il faut demander la somme par exemple puis modifier le code à la main

    Stéphane

    en réponse à : erreur fonction condition langage M #106499
    Stéphane Lorin
    Participant

    Bonjour

    Voici une proposition de code M

    let
    Source = Excel.CurrentWorkbook(){[Name=”gareorigine”]}[Content],
    Type_text = Table.TransformColumnTypes(Source,{{“Emplacement”, type text}}),
    Condition = Table.AddColumn(Type_text, “gareN”, each
    if Text.StartsWith([Emplacement],”sol”) then “SOL” else
    if Text.StartsWith([Emplacement],”PAP”) then “PAP” else
    if Text.Length([Emplacement]) > 0 then “GARE” else null)
    in
    Condition

    Stéphane

    en réponse à : erreur fonction condition langage M #106497
    Stéphane Lorin
    Participant

    Bonjour
    Je n’ai pas Excel sous la main, je n’ai donc pas ouvert la pièce jointe
    Quelques remarques cependant à la lecture du code

    Je ne vois pas l’intérêt d’une fonction

    Ensuite Power Query est sensible à la casse donc SOL est différent de sol

    Avez vous typé votre colonne en texte ? Si “any” le 9 sera aligné à droite et vous aurez une erreur avec Text.Lenght

    Pourquoi pas un enchaînement de trois if then else ?

    Stéphane

    en réponse à : Mettre les Mesures (Valeurs) en lignes #105058
    Stéphane Lorin
    Participant

    Bonjour
    Dans votre TCD : mettre le champ mois en colonnes, ajouter les Codes et les Noms en lignes
    enfin, les 4 ratios en valeur et déplacer ces valeurs en lignes et non en colonnes par défaut

    répéter les étiquettes d’éléments, retirer les totaux

    vous obtiendrez le résultat attendu

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Filtre sur mois en cours #104707
    Stéphane Lorin
    Participant

    Bonjour
    oui, il faut aller dans le filtre du champ date, puis filtre chronologique, Mois, En cours

    La formule devrait ressembler à
    Table.SelectRows(#”Etape_précédente”, each Date.IsInCurrentMonth([Champ Date]))

    il faut que votre champ “Mois” soit au format “date” ou “datetime” pas du texte “juin” ou “2022_06”

    Stéphane

    en réponse à : affichage du nom d’onglet #104704
    Stéphane Lorin
    Participant

    Bonjour

    A ma connaissance il n’y a aucune option pour modifier la taille de l’affichage des onglets.
    Je ne vois pas non plus de possibilité par macro.

    Pour naviguer facilement dans les onglets vous pouvez faire un clic droit sur les flèches de navigation en bas à gauche, vous aurez la liste de tous les onglets visibles.

    Stéphane

    en réponse à : Promouvoir ligne en en-tête autre que la ligne 1 et + #103830
    Stéphane Lorin
    Participant

    Bonjour
    pour “fusionner” les 2 premières lignes dans une seule , une autre approche consiste à ne transposer, à recopier vers le bas, à combiner les colonnes et à re-transposer que ces 2 premières lignes
    puis à combiner avec la table de base (j’ai manuellement indiqué “source” comme 2eme argument de la liste).

    voici le code

    let
    Source = Excel.CurrentWorkbook(){[Name=”Campus”]}[Content],
    #”Conserver les premières lignes” = Table.FirstN(Source,2),
    #”Table transposée” = Table.Transpose(#”Conserver les premières lignes”),
    #”Rempli vers le bas” = Table.FillDown(#”Table transposée”,{“Column1″}),
    #”Colonnes fusionnées” = Table.CombineColumns(#”Rempli vers le bas”,{“Column1”, “Column2″},Combiner.CombineTextByDelimiter(” “, QuoteStyle.None),”Titre”),
    #”Table transposée1″ = Table.Transpose(#”Colonnes fusionnées”),
    #”Requête ajoutée” = Table.Combine({#”Table transposée1″, Source}),
    #”En-têtes promus” = Table.PromoteHeaders(#”Requête ajoutée”, [PromoteAllScalars=true]),
    #”Premières lignes supprimées” = Table.Skip(#”En-têtes promus”,2)
    in
    #”Premières lignes supprimées”

    Stéphane

    Stéphane Lorin
    Participant

    Bonjour

    Lors de l’actualisation d’une requête, différents appels à la fonction DateTime.FixedLocalNow renverront toujours la même heure
    Alors que DateTime.LocalNow renverra des heures différentes lors des différents appels à la fonction.
    Mais si on actualise plusieurs fois la requête on aura à chaque fois une heure différente.

    Stéphane

    en réponse à : Date dynamique(nom colonne) dans une fusion #103711
    Stéphane Lorin
    Participant

    Bonjour

    pour générer une liste de dates il faut utiliser la fonction List.Dates
    pour transformer cette liste suivant le format demandé vous pouvez utiliser List.Transform et Date.ToText
    Cela donnera quelque chose du style :

    = List.Transform(
    List.Dates(
    Date.From(DateTime.LocalNow()),
    14,
    #duration(1,0,0,0)),
    each Date.ToText(_,[Format=”yyyy-MM-dd”]))

    il suffira ensuite d’intégrer cette liste dans votre requête

    = Table.ExpandTableColumn(#”Requêtes fusionnées6″, “DimTravail.1”, Liste_Dates, Liste_Dates)

    Stéphane

    en réponse à : Coup de main sur Power query #103253
    Stéphane Lorin
    Participant

    Bonjour
    vous fractionnez votre colonne Segment suivant les “-” en ligne
    vous supprimez les doublons
    enfin, vous regroupez suivant les N°DC et vous combinez les segments avec Text.Combine(…,”-“)

    Stéphane

    exemple de code

    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
    #”Fractionner la colonne par délimiteur” = Table.ExpandListColumn(Table.TransformColumns(Source, {{“Segment”, Splitter.SplitTextByDelimiter(“-“, QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), “Segment”),
    #”Doublons supprimés” = Table.Distinct(#”Fractionner la colonne par délimiteur”),
    #”Lignes groupées” = Table.Group(#”Doublons supprimés”, {“N° DC”}, {{“Liste”, each Text.Combine(_[Segment],”-“), type text}})
    in
    #”Lignes groupées”

15 sujets de 46 à 60 (sur un total de 283)