Code:let Source = (NomTable as text) => let Source = Excel.CurrentWorkbook(){[Name=NomTable]}[Content], // Empiler les colonnes par 2 Personnalisé1 = Table.Combine( List.Transform( List.Split(Table.ColumnNames(Source),2), each Table.Skip(Table.DemoteHeaders( Table.SelectColumns(Source,_)),1))), #"Colonnes renommées" = Table.RenameColumns(Personnalisé1,{{"Column1", "Achats"}, {"Column2", "Ventes"}}), #"Personnalisée ajoutée" = Table.AddColumn(#"Colonnes renommées", "Semaine", each if [Ventes]=null then [Achats] else null), #"Rempli vers le bas" = Table.FillDown(#"Personnalisée ajoutée",{"Semaine"}), #"Lignes filtrées" = Table.SelectRows(#"Rempli vers le bas", each ([Ventes] <> null) and ([Ventes]<>"Ventes")) in #"Lignes filtrées" in Source
(NomTable) => let
Source = Excel.CurrentWorkbook(){[Name=NomTable]}[Content],
// Empiler les colonnes par 2
Personnalisé1 = Table.Combine( List.Transform( List.Split(Table.ColumnNames(Source),2), each Table.Skip(Table.DemoteHeaders( Table.SelectColumns(Source,_)),1))),
#"Colonnes renommées" = Table.RenameColumns(Personnalisé1,{{"Column1", "Achats"}, {"Column2", "Ventes"}}),
#"Personnalisée ajoutée" = Table.AddColumn(#"Colonnes renommées", "Semaine", each if [Ventes]=null then [Achats] else null),
#"Rempli vers le bas" = Table.FillDown(#"Personnalisée ajoutée",{"Semaine"}),
#"Lignes filtrées" = Table.SelectRows(#"Rempli vers le bas", each ([Ventes] <> null) and ([Ventes]<>"Ventes"))
in
#"Lignes filtrées"
Et pour l'utilisation des paramètres :Utilisation de fonctions personnalisées dans Power Query - Power Query
Article sur la création de fonctions personnalisées dans Power Querydocs.microsoft.com
Paramètres - Power Query
Article sur l’utilisation de paramètres dans Power Querydocs.microsoft.com
let
Source = () => let
Source = Json.Document(Web.Contents(" https://MONAPI.com/reports/lg8QMJR9aqJa_thQ")),
#"Converti en table" = Record.ToTable(Source),
#"Value développé" = Table.ExpandRecordColumn(#"Converti en table", "Value", {"date", "overview"}, {"Value.date", "Value.overview"}),
#"Value.overview développé" = Table.ExpandRecordColumn(#"Value développé", "Value.overview", {"count", "opens", "openers", "shared", "os", "device", "read", "actives", "hasLinks", "clicks", "clickers"}, {"Value.overview.count", "Value.overview.opens", "Value.overview.openers", "Value.overview.shared", "Value.overview.os", "Value.overview.device", "Value.overview.read", "Value.overview.actives", "Value.overview.hasLinks", "Value.overview.clicks", "Value.overview.clickers"}),
#"Value.overview.read développé" = Table.ExpandRecordColumn(#"Value.overview développé", "Value.overview.read", {"interest"}, {"Value.overview.read.interest"}),
#"Value.overview.device développé" = Table.ExpandRecordColumn(#"Value.overview.read développé", "Value.overview.device", {"desktop"}, {"Value.overview.device.desktop"}),
#"Value.overview.os développé" = Table.ExpandRecordColumn(#"Value.overview.device développé", "Value.overview.os", {"values"}, {"Value.overview.os.values"}),
#"Value.overview.os.values développé" = Table.ExpandRecordColumn(#"Value.overview.os développé", "Value.overview.os.values", {"Windows"}, {"Value.overview.os.values.Windows"}),
#"Colonnes supprimées" = Table.RemoveColumns(#"Value.overview.os.values développé",{"Value.overview.shared"})
in
#"Colonnes supprimées"
in
Source
(IdentifiantDocument as text ) =>
let
Source = Json.Document(Web.Contents(" https://MONAPI.com/reports/" & IdentifiantDocument ) ),
#"Converti en table" = Record.ToTable(Source),
#"Value développé" = Table.ExpandRecordColumn(#"Converti en table", "Value", {"date", "overview"}, {"Value.date", "Value.overview"}),
#"Value.overview développé" = Table.ExpandRecordColumn(#"Value développé", "Value.overview", {"count", "opens", "openers", "shared", "os", "device", "read", "actives", "hasLinks", "clicks", "clickers"}, {"Value.overview.count", "Value.overview.opens", "Value.overview.openers", "Value.overview.shared", "Value.overview.os", "Value.overview.device", "Value.overview.read", "Value.overview.actives", "Value.overview.hasLinks", "Value.overview.clicks", "Value.overview.clickers"}),
#"Value.overview.read développé" = Table.ExpandRecordColumn(#"Value.overview développé", "Value.overview.read", {"interest"}, {"Value.overview.read.interest"}),
#"Value.overview.device développé" = Table.ExpandRecordColumn(#"Value.overview.read développé", "Value.overview.device", {"desktop"}, {"Value.overview.device.desktop"}),
#"Value.overview.os développé" = Table.ExpandRecordColumn(#"Value.overview.device développé", "Value.overview.os", {"values"}, {"Value.overview.os.values"}),
#"Value.overview.os.values développé" = Table.ExpandRecordColumn(#"Value.overview.os développé", "Value.overview.os.values", {"Windows"}, {"Value.overview.os.values.Windows"}),
#"Colonnes supprimées" = Table.RemoveColumns(#"Value.overview.os.values développé",{"Value.overview.shared"})
in
#"Colonnes supprimées"
(Identifiant as text ) =>
let
Source = () => let
Source = Json.Document(Web.Contents("https://monapi.com/reports/" & Identifiant)),
#"Converti en table" = Record.ToTable(Source),
#"Value développé" = Table.ExpandRecordColumn(#"Converti en table", "Value", {"date", "overview"}, {"Value.date", "Value.overview"}),
#"Value.overview développé" = Table.ExpandRecordColumn(#"Value développé", "Value.overview", {"count", "opens", "openers", "shared", "os", "device", "read", "actives", "hasLinks", "clicks", "clickers"}, {"Value.overview.count", "Value.overview.opens", "Value.overview.openers", "Value.overview.shared", "Value.overview.os", "Value.overview.device", "Value.overview.read", "Value.overview.actives", "Value.overview.hasLinks", "Value.overview.clicks", "Value.overview.clickers"}),
#"Value.overview.read développé" = Table.ExpandRecordColumn(#"Value.overview développé", "Value.overview.read", {"interest"}, {"Value.overview.read.interest"}),
#"Value.overview.device développé" = Table.ExpandRecordColumn(#"Value.overview.read développé", "Value.overview.device", {"desktop"}, {"Value.overview.device.desktop"}),
#"Value.overview.os développé" = Table.ExpandRecordColumn(#"Value.overview.device développé", "Value.overview.os", {"values"}, {"Value.overview.os.values"}),
#"Value.overview.os.values développé" = Table.ExpandRecordColumn(#"Value.overview.os développé", "Value.overview.os.values", {"Windows"}, {"Value.overview.os.values.Windows"}),
#"Colonnes supprimées" = Table.RemoveColumns(#"Value.overview.os.values développé",{"Value.overview.shared"})
in
#"Colonnes supprimées"
in
Source
(Identifiant as text ) =>
let
Source = Json.Document(Web.Contents("https://monapi.com/reports/" & Identifiant)),
#"Converti en table" = Record.ToTable(Source),
#"Value développé" = Table.ExpandRecordColumn(#"Converti en table", "Value", {"date", "overview"}, {"Value.date", "Value.overview"}),
#"Value.overview développé" = Table.ExpandRecordColumn(#"Value développé", "Value.overview", {"count", "opens", "openers", "shared", "os", "device", "read", "actives", "hasLinks", "clicks", "clickers"}, {"Value.overview.count", "Value.overview.opens", "Value.overview.openers", "Value.overview.shared", "Value.overview.os", "Value.overview.device", "Value.overview.read", "Value.overview.actives", "Value.overview.hasLinks", "Value.overview.clicks", "Value.overview.clickers"}),
#"Value.overview.read développé" = Table.ExpandRecordColumn(#"Value.overview développé", "Value.overview.read", {"interest"}, {"Value.overview.read.interest"}),
#"Value.overview.device développé" = Table.ExpandRecordColumn(#"Value.overview.read développé", "Value.overview.device", {"desktop"}, {"Value.overview.device.desktop"}),
#"Value.overview.os développé" = Table.ExpandRecordColumn(#"Value.overview.device développé", "Value.overview.os", {"values"}, {"Value.overview.os.values"}),
#"Value.overview.os.values développé" = Table.ExpandRecordColumn(#"Value.overview.os développé", "Value.overview.os.values", {"Windows"}, {"Value.overview.os.values.Windows"}),
#"Colonnes supprimées" = Table.RemoveColumns(#"Value.overview.os.values développé",{"Value.overview.shared"})
in
#"Colonnes supprimées"