Gallery
Support formation Rapports Power BI
Share
Explore
Support formation Rapports Power BI
Langage M

icon picker
3 | Accès et combinaison des données

100 fonctions standard de récupération de données
350 fonctions de données en tenant compte de ces extensions offrent la possibilité d'écrire des extensions pour récupérer des données à partir de sources supplémentaires
Puissantes fonctionnalités de fusion et d’ajout

Accès aux fichiers et dossiers

Fonctions M pour différents formats de fichiers
Format de fichier
Fonctions M
1
Azure Storage
AzureStorage.BlobContents, AzureStorage.
Blobs, AzureStorage.DataLake, AzureStorage.
DataLakeContents, AzureStorage.Tables
2
Binary
File.Contents
3
Excel
Excel.Workbook, Excel.CurrentWorkbook
4
Folder
Folder.Contents, Folder.Files
5
HDFS
Hdfs.Contents, Hdfs.Files
6
HDInsight
HdInsights.Containers, HdInsight.Contents,
HdInsight.Files
7
JSON
Json.Document
8
PDF
Pdf.Tables
9
RData
RData.FromBinary
10
Text/CSV
Csv.Document
11
XML
Xml.Document, Xml.Tables
There are no rows in this table

File.Contents

Renvoi le contenu (binaire) du fichier. Utilisée avec Csv.Document, Excel.Workbook, Json.Document, Xml.Document et Xml.Tables.
Saisir let Source = File.Contents in Source pour afficher :
image(1).png

Une fonction sans argument renvoi l’aide et les paramètres nécessaires, parfois mal documentés.

Text/CSV (Csv.Document)

4 arguments:
Une version binaire du fichier CSV, via la fonction File.Contents(chemin)
Un 2e argument optionnel, qui peut être :
Vide,
un type de table, un nombre de colonnes, une liste ou un enregistrement de paramètres.
Un 3e argument: délimiteur, comme #(tab) ou #(2605).
Un 4e argument: extraValues, qui détermine la façon de gérer les paramètres supplémentaires :
Nom convivial
Valeur
Commentaires
extraValues.List
0
Renvoie des colonnes supplémentaires sous forme de liste
extraValues.Error
1
Lève une erreur
extraValues.Ignore
2
Ignore les colonnes supplémentaires, par défaut
There are no rows in this table
Un 5e argument : l’énumération TextEncoding.Type :
Nom convivial
Valeur
Commentaires
TextEncoding.Utf16, TextEncoding.Unicode
1200
Forme binaire Little Endian (UTF16)
TextEncoding.Unicode
1200
Forme binaire Little Endian (UTF16)
TextEncoding.BigEndianUnicode
1201
Forme binaire Big Endian (UTF16)
1252
Forme binaire Windows
TextEncoding.Ascii
20127
Forme binaire ASCII
TextEncoding.Utf8
65001
Forme binaire UTF8
There are no rows in this table
Dans le cas d’un enregistrement de paramètres en 2e argument (les 3 autres arguments doivent être vides) :
Delimiter: Spécifie que les colonnes des données sont séparées par une virgule (,) ou autre.
Columns : Spécifie qu'il y a X colonnes dans les données.
Encodage : spécifie la page de codes 1252 (encodage de caractères Windows). Une page de codes est simplement une spécification de la façon dont les caractères imprimables et les caractères non imprimables (tels que les caractères de contrôle tels que le retour chariot et le saut de ligne) sont associés à des numéros uniques.
CsvStyle : détermine si les guillemets d'un champ sont uniquement significatifs immédiatement après le délimiteur ou s'ils sont toujours significatifs.
Nom convivial
Valeur
Commentaires
CsvStyle.QuoteAfterDelimiter
0
Les guillemets n'ont de sens que s'ils sont immédiatement précédés d'un délimiteur. Il s'agit de l'option par défaut.
CsvStyle.QuoteToujours
1
Les citations sont toujours importantes.
There are no rows in this table
QuoteStyle : spécifie que les sauts de ligne sont traités comme la fin de la ligne actuelle, que le saut de ligne se produise ou non dans une valeur entre guillemets.
Nom convivial
Valeur
Commentaires
QuoteStyle.Aucun
0
Les guillemets sont ignorés. Il s'agit de l'option par défaut.
QuoteStyle.Csv
1
Les guillemets sont le début d'une chaîne entre guillemets. Deux guillemets représentent des guillemets imbriqués.
There are no rows in this table

Excel (Excel.Workbook)

3 arguments :
Une version binaire du fichier Excel, via la fonction File.Contents(chemin)
2e argument : useHeaders. null, true ou false. Prend en compte la première ligne en tant qu’en-tête. Peut être remplacé par Promouvoir les en-têtes.
3e argument : delayTypes, null, true ou false. Analyse automatiquement les types. Meilleure pratique des analystes de données : manuellement (false).
Le 2e argument peut être un enregistrement (le 3e devra être vide) :
UseHeaders
DelayTypes
InferSheetDimensions : null, true ou false (par défaut). Que si format de fichier Open XLM (moderne). Si la valeur true est spécifiée, la fonction Excel.Workbook ignore les métadonnées de dimensions incluses dans le fichier Excel et déduit la zone d'une feuille de calcul en lisant la feuille de calcul.

Dossiers

Autres connecteurs

PDF
XML
Xml.Tables
Xml.Document
Azure
AzureStorage.Blobs
AzureStorage.Tables
AzureStorage.BlobContents
AzureStorage.DataLake
AzureStorage.DataLakeContents

Récupération de contenu Web (Web.BrowserContents)

Utiliser le connecteur Web, indiquer une URL, puis choisir un contenu de la page :
image.png
Choisir Code HTML ou Texte affiché pour voir la différence de code.
Web.BrowserContents(url) : retourne toute la page Web brute.
let
#"HTML Code" = Web.BrowserContents("https://www.google.com/
search")
in
#"HTML Code"
Html.Table : retourne le texte visible d’un élément, par exemple BODY :
let
Source = Web.BrowserContents("https://www.google.com/"),
#"Extracted Table From Html" = Html.Table(Source, {{"Column1", "BODY"}}),
Column1 = #"Extracted Table From Html"[Column1]{0}
in
Column1
Web.Page : retourne une table qui permet de naviguer dans le DOM de la page (cliquer sur Table dans la colonne Data puis sur Table dans la colonne Children), comme Xml.Document.
let
Source =
Web.Page(
Web.BrowserContents("https://www.google.com/)
Chapter 3
75
),
Data = Source{0}[Data],
Children = Data{0}[Children]
in
Children
Web.Contents : retourne le contenu en binaire d’une page, comme avec File.Contents.
let
Source =
Web.Contents(
"https://subscription.packtpub.com",
[
RelativePath = "search",
Query = [ query = "power+bi",
products = "Book"
],
Timeout = #duration(0,0,0,30)
]
)
in
Source
Web.Headers
WebAction.Request

Investigation des fonctions binaires

40 fonctions, principalement utilisées dans le mode Entrée les données.
Saisir ces données dans ce mode :
Column1
Column2
One
1
Two
2
Three
3
There are no rows in this table
et voir le code généré :

let
Source =
Table.FromRows(
Json.Document(
Binary.Decompress(
Binary.FromText(
"i45W8s9LVdJRMlSK1YlWCinPB7KNIOyMolSQjLFSbCwA",
BinaryEncoding.Base64
),
Compression.Deflate
)
),
let _t = ((type nullable text) meta [Serialized.Text = true]) in
type table [Column1 = _t, Column2 = _t]
),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column2", Int64.
Type}})
in
#"Changed Type"

Accès aux bases de données et aux cubes

Les fonctions M pour accéder aux bases de données et aux cubes
System
System 2
Description
M Functions
1
Microsoft SQL Server
Microsoft SQL Server
Microsoft’s relational database system.
Sql.Database Sql.Databases
2
Microsoft Analysis Services
Microsoft Analysis Services
Refers to SQL Server Analysis Services (SSAS) and Azure Analysis Services (AAS). Supports both
tabular and multidimensional cubes. Tabular
cubes use Data Analysis Expressions (DAX) for queries and calculations while Multidimensional cubes use Multidimensional Expressions (MDX) for the same.
AnalysisServices. Database AnalysisServices. Databases
3
Microsoft Access
Microsoft Access
The relational Access Database Engine (ACE), formerly the Jet database engine.
Access.Database
4
Adobe Analytics cubes
Adobe Analytics cubes
Adobe Experience Cloud’s cube analytics service, a leading system for web analytics. Adobe Experience Cloud was formerly known as Adobe Marketing Cloud. Adobe Systems acquired the analytics components of Adobe Experience Cloud from Omniture.
AdobeAnalytics.Cubes
5
IBM DB2
IBM DB2
A relational database system developed by IBM.
DB2.Database
6
IBM Informix
IBM Informix
A relational database system originally developed by Informix, which was acquired by IBM in 2001.
Informix.Database
7
Oracle Essbase
Oracle Essbase
A multidimensional cube system originally developed by Arbor Software Corporation, which merged with Hyperion Software in 1998. Oracle later acquired Hyperion Solutions Corporation and originally marketed Essbase as DB2 OLAP Server.
Essbase.Cubes
8
Oracle MySQL
Oracle MySQL
MySQL is a free and open-source relational database released under the GNU General Public License in 1995. Originally owned and sponsored by the company MySQL AB, which was acquired by Sun Microsystems, which was itself acquired by Oracle in 2010.
MySQL.Database
9
Oracle Database
Oracle Database
Commonly referred to as simply Oracle, Oracle Database is a relational database that supports OLTP and data warehouse workloads.
Oracle.Database
10
PostgreSQL
PostgreSQL
Also simply known as Postgres, PostgresSQL is a free and open-source relational database originally released in 1996.
PostgreSQL.Database
11
SAP HANA
SAP HANA
A column-oriented, in-memory, relational database system developed by SAP.
SapHana.Database
12
SAP Business Warehouse
SAP Business Warehouse
Originally a relational database, SAP’s Business Warehouse later evolved to leverage the SAP HANA in-memory database and provide advanced OLAP functionality.
SapBusinessWarehouse. Cubes
13
SAP Sybase
SAP Sybase
A relational database system originally created by Sybase and then later acquired by SAP.
Sybase.Database
14
Teradata
Teradata
Teradata’s relational database system.
Teradata.Database
There are no rows in this table

Travailler avec des protocoles de données standard


Adressage de connecteurs supplémentaires


Combiner et assembler des données

Table.Combine
let
Source = Table.Combine( {Table1, Table2})
in
Source
Table.NestedJoin
Accueil > Fusionner des requêtes
let
Source = Table.NestedJoin(Table1, {"ID"}, Table2, {"ID"}, "NouvelleColonne", JoinKind.LeftOuter)
in
Source

Table.Join
Table.Join(
Table.FromRecords({
[CustomerID = 1, Name = "Bob", Phone = "123-4567"],
[CustomerID = 2, Name = "Jim", Phone = "987-6543"],
[CustomerID = 3, Name = "Paul", Phone = "543-7890"],
[CustomerID = 4, Name = "Ringo", Phone = "232-1550"]
}),
"CustomerID",
Table.FromRecords({
[OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0],
[OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0],
[OrderID = 3, CustomerID = 2, Item = "Fishing net", Price = 25.0],
[OrderID = 4, CustomerID = 3, Item = "Fish tazer", Price = 200.0],
[OrderID = 5, CustomerID = 3, Item = "Bandaids", Price = 2.0],
[OrderID = 6, CustomerID = 1, Item = "Tackle box", Price = 20.0],
[OrderID = 7, CustomerID = 5, Item = "Bait", Price = 3.25]
}),
"CustomerID"
)
Table.FuzzyNestedJoin et Table.FuzzyJoin
Correspondance floue
image.png

Share
 
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.