Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le modèle d’évaluation du langage de formule Power Query M est modélisé après le modèle d’évaluation couramment trouvé dans les feuilles de calcul, où l’ordre des calculs peut être déterminé en fonction des dépendances entre les formules des cellules.
Si vous avez écrit des formules dans une feuille de calcul telle qu’Excel, vous pouvez reconnaître que les formules à gauche entraînent les valeurs à droite lorsqu’elles sont calculées :
Dans M, une expression peut référencer des expressions précédentes par nom, et le processus d’évaluation détermine automatiquement l’ordre dans lequel les expressions référencées sont calculées.
Utilisons un enregistrement pour produire une expression équivalente à l’exemple de feuille de calcul ci-dessus. Lors de l’initialisation de la valeur d’un champ, vous faites référence à d’autres champs dans l’enregistrement par le nom du champ, comme suit :
[
A1 = A2 * 2,
A2 = A3 + 1,
A3 = 1
]
L’expression ci-dessus correspond à l’enregistrement suivant :
[
A1 = 4,
A2 = 2,
A3 = 1
]
Les enregistrements peuvent être contenus dans ou imbriqués dans d’autres enregistrements. Vous pouvez utiliser l’opérateur de recherche ([ ]) pour accéder aux champs d’un enregistrement par nom. Par exemple, l’enregistrement suivant contient un champ Sales contenant un enregistrement et un champ nommé Total qui accède aux champs FirstHalf et SecondHalf de l’enregistrement Sales :
[
Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
Total = Sales[FirstHalf] + Sales[SecondHalf]
]
L’expression ci-dessus correspond à l’enregistrement suivant :
[
Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
Total = 2100
]
Vous utilisez l’opérateur d’index positionnel ({ }) pour accéder à un élément d’une liste par son index numérique. Les valeurs d’une liste sont référencées à l’aide d’un index de base zéro à partir du début de la liste. Par exemple, les index 0 et 1 sont utilisés pour référencer les premiers et deuxième éléments de la liste ci-dessous :
[
Sales =
{
[
Year = 2007,
FirstHalf = 1000,
SecondHalf = 1100,
Total = FirstHalf + SecondHalf // equals 2100
],
[
Year = 2008,
FirstHalf = 1200,
SecondHalf = 1300,
Total = FirstHalf + SecondHalf // equals 2500
]
},
#"Total Sales" = Sales{0}[Total] + Sales{1}[Total] // equals 4600
]
Évaluation différée et impatiente
Les expressions membres de liste, d’enregistrement et de table, ainsi que les expressions let (Atteindre les expressions, les valeurs et l’expression let), sont évaluées à l’aide d’une évaluation différée. C’est-à-dire qu’elles sont évaluées si nécessaire. Toutes les autres expressions sont évaluées à l’aide d’une évaluation impatiente. Autrement dit, ils sont évalués immédiatement lorsqu’ils sont rencontrés pendant le processus d’évaluation. Une bonne façon de réfléchir à cela consiste à se rappeler que l’évaluation d’une expression de liste ou d’enregistrement retourne une valeur de liste ou d’enregistrement qui sait comment ses éléments de liste ou ses champs d’enregistrement doivent être calculés, lorsqu’ils sont demandés (par des opérateurs de recherche ou d’index).