IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

informer

Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip

Noter ce billet
par , 13/04/2025 à 00h49 (780 Affichages)
Objectif
Modifier dynamiquement les valeurs en erreur dans les colonnes passées en paramètre

Source
Fichier Excel DataTest.xlsx

Solution
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let
    Source = Excel.Workbook(File.Contents("C:\_Paul\PowerBI\Goodly\DataTest.xlsx"), null, true),
    Data_Table = Source{[Item="Data",Kind="Table"]}[Data],
    #"Changed Type" = Table.TransformColumnTypes(Data_Table,{{"Id", type text}, {"Col1", type text}, {"Col2", type any}, {"Col3", type any}, {"Valeur", type text},  {"Commentaire", type text}}),
    #"Remove list col" = 
        let listCol = Table.ColumnNames( #"Changed Type"),
            tblColName = Table.FromList(listCol,null),
            tblColNameSelection = Table.SelectRows(tblColName, each [Column1] = "Id" or Text.StartsWith([Column1], "Col")),
            lstColNameSelection = tblColNameSelection[Column1],
            tblFinal = Table.SelectColumns(#"Changed Type",lstColNameSelection)
        in #"tblFinal",
#"Remove Error" = let
        listCol = Table.ColumnNames( #"Remove list col")
        //,tblRemoveErr = List.Accumulate(listCol, #"Remove list col", (anyOutFirst, anyListCurr) => Table.ReplaceErrorValues (anyOutFirst, {{anyListCurr, null}}))     
        ,tblRemoveErr = Table.ReplaceErrorValues(#"Remove list col",List.Zip({listCol,{null}}))
        in tblRemoveErr
in
    #"Remove Error"

Analyse


  • #"Remove Error" = // Objet Conteneur du résultat du traitement de l'étape qui donne son libellé à l'étape
  • let // Obligatoire si traitement sur plusieurs commandes
    • listCol = Table.ColumnNames( #"Remove list col") // Création d'un objet liste avec les nom de colonne de la Table source #"Remove list col"
    • /* ------------------------------------------------------------------------------------------
      Choisir une des 2 solutions ci-dessous
      Solution 1 => List.Accumulate
      Solution 2 => List.Zip
    • --------------------------------------------------------------------------------------------- */
    • ,tblRemoveErr = List.Accumulate(listCol, #"Remove list col", (anyOutFirst, anyListCurr) => Table.ReplaceErrorValues (anyOutFirst, {{anyListCurr, null}})) // Solution avec List.Accumulate
    • ,tblRemoveErr = Table.ReplaceErrorValues(#"Remove list col",List.Zip({listCol,{null}})) // Solution avec List.Zip
      ASTUCE : List.Zip créée une liste composée de sous listes correspondant à la concaténation du tuple d'items de même indice dans les listes passées en paramètres
      ExempleList.Zip( {1,2}, {"a", "b"}) => {{1, "a"}, {2,"b"}}
    • in tblRemoveErr // Obligatoire avec Let

  • in #"Remove Error" // Pour affichage du traitement


Remerciements
  • mapeh : Membre de la communauté Developpez



C'est maintenant Votre Minute M

Envoyer le billet « Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip » dans le blog Viadeo Envoyer le billet « Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip » dans le blog Twitter Envoyer le billet « Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip » dans le blog Google Envoyer le billet « Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip » dans le blog Facebook Envoyer le billet « Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip » dans le blog Digg Envoyer le billet « Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip » dans le blog Delicious Envoyer le billet « Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip » dans le blog MySpace Envoyer le billet « Ma Minute M - Modification dynamique des valeurs en erreurs par null List.Accumulate vs List.Zip » dans le blog Yahoo

Mis à jour 15/04/2025 à 07h45 par informer

Catégories
Power Query , langage M , Ma Minute M

Commentaires

  1. Avatar de arnkto
    • |
    • permalink
    Merci