Staple1600
XLDnaute Barbatruc
Bonjour le fil
Situation de départ
Il y a N fichiers PDF(*) dans un dossier SharePoint
Depuis Sharepoint, j'ai fait Exporter vers Excel et j'obtiens un fichier owssvr.iqy
(voir explications ici sur ce qu'est ce fichier)
j'ouvre alors ce fichier *.iqy dans Excel et j'obtiens le contenu du dossier Sharepoint dans un tableau structuré
(*) le nom des fichiers PDF est normalisé: ils sont tous nommés sur le schéma suivant
NOM PRENOM_1234_Libellé_JJ.MM.AA_JJ.MM.AA_500E25.pdf
J'ai inclu un petit exemple avec la fonction
Pour ma gouverne et par curiosité, j'aimerai étudier vos propositions de code M pour arriver au même résultat (avec moins d'étapes ou avec un code M épuré)
Merci d'avance aux PQristes qui passeront dans ce fil.
Situation de départ
Il y a N fichiers PDF(*) dans un dossier SharePoint
Depuis Sharepoint, j'ai fait Exporter vers Excel et j'obtiens un fichier owssvr.iqy
(voir explications ici sur ce qu'est ce fichier)
j'ouvre alors ce fichier *.iqy dans Excel et j'obtiens le contenu du dossier Sharepoint dans un tableau structuré
(*) le nom des fichiers PDF est normalisé: ils sont tous nommés sur le schéma suivant
NOM PRENOM_1234_Libellé_JJ.MM.AA_JJ.MM.AA_500E25.pdf
Ci-dessous code M actuel généré par l'assistant de PQ
PowerQuery:
let
Source =Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bdJNa8QgEAbgv1Jy3oT5cNTx7q3dlmJP20Uo3UJhD730/1cXJXUTkOQ9PbwzejpNx+enh5fXWH6Yj2/l8/j9cble338BLooZ/FIOmYy2B/HRyfLz+TUdJgIyM9BMklCCkQAwnQ//VaoqDSpl0IYxtkAk8d60CVxg3ppcTR5MzggLuFtB1wIpbUyXwAfc6WmqaQazUL0eml5YdGP6BBrIbk2ppgymZKQ+cl+CIRvJ3auakALuTG+ragfVZuTb0JzJtGCUI/Oq8gzlYL2nvfldVd2gunVs6rcvFqLA0LXWrereBnxV/aD68oJaRdQWLLl435QT+l1Tq6mDqevzJG7BqoneDE2LalJZadvq+Q8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [NOM = _t, Modifié le = _t]),
#"Type modifié" = Table.TransformColumnTypes(Source,{{"Modifié le", type datetime}}),
#"Lignes filtrées" = Table.SelectRows(#"Type modifié", each Date.IsInCurrentYear([Modifié le])),
#"Lignes filtrées1" = Table.SelectRows(#"Lignes filtrées", each Text.EndsWith([NOM], ".pdf")),
#"Fractionner la colonne par délimiteur" = Table.SplitColumn(#"Lignes filtrées1", "NOM", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv), {"NOM.1", "NOM.2", "NOM.3", "NOM.4", "NOM.5", "NOM.6"}),
#"Colonnes renommées" = Table.RenameColumns(#"Fractionner la colonne par délimiteur",{{"NOM.1", "IDENTITE"}, {"NOM.2", "NUMERO"}, {"NOM.3", "LIBELLE"}, {"NOM.4", "Début"}, {"NOM.5", "Fin"}, {"NOM.6", "Montant"}}),
#"Type modifié1" = Table.TransformColumnTypes(#"Colonnes renommées",{{"Début", type date}, {"Fin", type date}}),
#"Personnalisée ajoutée" = Table.AddColumn(#"Type modifié1", "NB JOURS", each (Duration.Days([Fin]-[Début])+1)),
#"Valeur remplacée" = Table.ReplaceValue(#"Personnalisée ajoutée",".pdf","",Replacer.ReplaceText,{"Montant"}),
#"Valeur remplacée1" = Table.ReplaceValue(#"Valeur remplacée","E",",",Replacer.ReplaceText,{"Montant"}),
#"Type modifié2" = Table.TransformColumnTypes(#"Valeur remplacée1",{{"Montant", type number}}),
#"Colonnes supprimées" = Table.RemoveColumns(#"Type modifié2",{"Modifié le"})
in
#"Colonnes supprimées"
EncodeSourceTable
de @mromainPour ma gouverne et par curiosité, j'aimerai étudier vos propositions de code M pour arriver au même résultat (avec moins d'étapes ou avec un code M épuré)
Merci d'avance aux PQristes qui passeront dans ce fil.