Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
POWER QUERY Les FONCTIONS
2
Cathy Monier Auteure du Site CathyAstuce.com Auteur des livres
Power Query et le langage M (Edition ENI) Excel 2013 & VBA (Ed. Pearson) Tableaux croisés dynamiques (Ed. Pearson – Épuisé) Maîtriser Excel 2013 (Ed. Pearson – Épuisé) Me Contacter
3
Déroulement de la Session
Récupérer Contenu d’un classeur Créer une fonction récursive RH Utilisation de #shared Aide Une fonction récursive sur une table API Meetup
4
Problématique RH En France, pour toute personne embauchée en CDD, nous devons considérer plusieurs contrats qui se suivent pour une même personne comme étant un seul contrat.
5
Suivi des contrats Les contrats se suivent et donc n’en font qu’un seul Les contrats ne se suivent pas, nous avons donc 6 contrats
6
Fonction récursive OUI NON Ligne actuel (table + Entrée)
Sortie+1 = Entrée ? debut contrat = Date entrée Ligne précédente Besoin de lire les données de la ligne précédente Utilisation d’un index Fusion de la table avec elle-même Schéma de la fonction
7
Code de la fonction fnGetDebut
(TableContrats as table, ID as number, DateEntree as date) => let LigneTest = Table.SelectRows(TableContrats , each ([Index] = ID-1)), NbLignes = Table.RowCount(LigneTest), DateDebut = if NbLignes = 0 then DateEntree else if DateEntree = (LigneTest{0}[Sortie] + #duration(1,0,0,0)) then fnGetDebut(TableContrats, ID-1,LigneTest{0}[Entree]) in DateDebut
8
Aide La méthode #shared pour récupérer la liste des fonctions
9
Aide Vous trouverez ce tableau de bord sur Un partage d’app BI
Mon site CathyAstuce
10
Code Récupérer l’ensemble des fonctions de Power Query #shared
Se limiter aux fonctions Value.Is([Value], type function) Récupérer les métadonnées de la fonction Value.Metadata(Value.Type([Value])) Il peut y avoir jusque 3 exemples, donc recupération dans 3 colonnes de chaque ligne de la liste [Documentation.Examples]{0} , [Documentation.Examples]{1} , [Documentation.Examples]{2}
11
Meetup Comment récupérer l’ensemble des membres du groupe Meetup MSDEVMTL
12
Meetup Documentation https://www.meetup.com/fr- FR/meetup_api/
page : la taille de page (nombre maximal de résultats à chaque réponse) offset : la page à retourner. Exemple, page = 10, offset =0 donne les lignes de 1-10, offset=1 de 11à 20, etc.. desc : ordre inverse, desc=true
13
Récupérer la 1ère page Construire l’URL
L’URL de connexion : Paramètres communs aux requêtes : &group_urlname= GroupUrlName &key= MeetupApiKey “ & "&group_urlname=" & GroupUrlName & "&key=" & MeetupApiKey & "&page=200" & "&offset=0" Création d’un paramètre pour chaque page : NumPage = 0 “ & "&group_urlname=" & GroupUrlName & "&key=" & MeetupApiKey & "&page=200" & "&offset=" & Text.From(NumPage) Dès que la table est récupérée, on compte le nombre de lignes afin de savoir s’il faut lire d’autres pages Table.RowCount(ConvertTable )
14
Fonction récursive NON OUI NumPage = 0 Resultat = 200 membres
Nb Membres <200 Nous sommes arrivés sur la dernière page NumPage=+1 Combiner les tables Schéma de la fonction Combiner les tables CombineResult = Table.Combine({MaTable , ConvertTable}) Code de la ligne de récursivité if NbLignes = 0 then CombineResult else fnGetPages (NumPage + 1, CombineResult )
15
Code de la fonction (NumPage as number, MaTable as table) => let Source = Json.Document(Web.Contents(" & "&group_urlname=" & GroupUrlName & "&key=" & MeetupApiKey & "&page=200" & "&offset=" & Text.From(NumPage))), Navigation = Source[results], ConvertTable = Table.FromList(Navigation , Splitter.SplitByNothing(), null, null, ExtraValues.Error), NbLignes = Table.RowCount(ConvertTable), CombineResult = Table.Combine({MaTable , ConvertTable}), Resultat = if NbLignes = 0 then CombineResult else fnGetPages (NumPage + 1, CombineResult ) in Resultat
16
Question(s) – Réponse(s)
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.