Support formation Rapports Power BI

4 | Valeurs et expressions

Catégories

  1. Valeurs primitives : éléments de données individuels que M traite comme une unité unique à des fins de traitement et d'opérations.
  2. Valeurs structurées : peuvent contenir plusieurs valeurs. 3 types de valeurs structurées :
    1. les listes,
    2. les enregistrements,
    3. les tables.
  3. Valeurs de fonction : Le langage M comprend plus de 700 fonctions définies.
  4. Valeurs de type : méta-valeurs qui fournissent des informations sur le type de données d'une autre valeur.

Types de données

Valeurs primitivesNullnull
Valeurs primitivesLogicaltrue, false
Valeurs primitivesNumbero, 5, -5, 1.5
Valeurs primitivesTime#time(20,15,30)
Valeurs primitivesDate#date(2024,03,01)
Valeurs primitivesDateTime#datetime(2023,05,10,20,15,30)
Valeurs primitivesDateTimeZone#datetimezone(2023,05,10,20,15,30, 09,00)
Valeurs primitivesDuration#duration( 5, 2, 15, 0)
Valeurs primitivesText"hello world"
Valeurs primitivesBinary#binary(”AQUID”)
Valeurs structuréesList{1,2,3}
Valeurs structuréesRecord[A = 1, B = 2]
Valeurs structuréesTable#table({”X”,”Y”}, {{0,1},{1,0}})
Valeurs de fonctionFunction(x) => x+1
Valeurs de typeTypetype text, type table [A = any, B = text ]

Any. Typetype anyReprésente toutes les valeurs
Binary.Typetype binaryReprésente toutes les valeurs binaires
Date. Typetype dateReprésente toutes les valeurs de date
DateTime.Typetype datetimeReprésente toutes les valeurs de date et d'heure
DateTimeZone.Typetype datetimezoneReprésente toutes les valeurs de date et d'heure relatives à un fuseau horaire
Duration.Typetype durationReprésente toutes les valeurs de durée
Function. Typetype functionReprésente toutes les fonctions
List.Typetype listReprésente toutes les listes
Logical. Typetype logicalReprésente toutes les valeurs logiques
None.Typetype noneNe représente aucune valeur
Null.Typetype nullReprésente null
Byte. Typetype numberReprésente tous les octets
Currency. Typetype numberReprésente la valeur de la devise
Decimal.Typetype numberReprésente un nombre décimal à virgule fixe
Double.Typetype numberReprésente un nombre à virgule flottante en double précision
Int16.Typetype numberReprésente un entier signé de 16 bits
Int32.Typetype numberReprésente un entier signé de 32 bits
Int64.Typetype numberReprésente un entier signé de 64 bits
Int8.Typetype numberReprésente un entier signé de 8 bits
Number. Typetype numberReprésente tous les nombres
Percentage. Typetype numberReprésente la valeur en pourcentage
Single.Typetype numberReprésente un nombre à virgule flottante simple précision
Record.Typetype recordReprésente tous les enregistrements
Table. Typetype tableReprésente toutes les tables
Character. Typetype textReprésente tous les caractères
Guid.Typetype textReprésente une valeur GUID
Password.Typetype textReprésente un mot de passe texte
Text. Typetype textReprésente toutes les valeurs de texte
Uri. Typetype textReprésente une URI de texte
Time.Typetype timeReprésente toutes les valeurs temporelles
Type.Typetype typeReprésente tous les types

Fonctions spéciales

Value.TypeRetourne un type de données indiqué sour forme de texteValue.Type( sType )Learn MS
List.CountCompte le nombre d’éléments d’une listeList.Count( {1, 2, 3} )

Listes

{
"a",
{4,5,6},
[Column1 = 1, Column2 = "v"],
#table( { "ID", "Product" }, {{ 1, "Apple" }} )
}

Retourne une liste d’une chaine, d’une liste, d’un enregistrement et d’une table.

List.Sort( List.Combine( { {1, 4}, {2, 5} } ) )

Retourne {1, 2, 4, 5}.

let
  LowercaseLetters = { "a".."z" },
  Numbers = { "0".."9" },
  CombinedCharacters = LowercaseLetters & Numbers,
  SelectCharacters = Text.Select( "inv-1006-!**!-(act)", CombinedCharacters )
in
  SelectCharacters

Retourne inv1006act.

List.Numbers( 1, 5, 1 )

Retourne {1,2,3,4,5}

Tables

let
    Source = Table.FromColumns(
    {
        {123, 34, 12, "txt", null},
        {123, "txt", 34, 12, null},
        {"txt", 123, 34, 12, null},
        {123, "txt", "34", 12, null}
    }
),
ChType = Table.TransformColumnTypes( Source,
    {
        {"Column1", Int64.Type},
        {"Column2", Int64.Type},
        {"Column3", Int64.Type},
        {"Column4", Int64.Type}
    }
    )
in
    ChType

Opérateurs

image.png

Query folding

let
    Source = Sql.Database("localhost", "AdventureWorksDW2022"),
    dbo_DimCurrency = Source{[Schema="dbo",Item="DimCurrency"]}[Data],
    #"Sorted Rows" = Table.Sort(dbo_DimCurrency,{{"CurrencyAlternateKey", Order.Ascending}})
in
    #"Sorted Rows"

devient en SQL

Select [_].[CurrencyKey],
[_].[CurrencyAlternateKey],
[_].[CurrencyName]
from [dbo].[DimCurrency] as [_] 
order by [_].[CurrencyAlternateKey]