Référence DAX (Data Analysis Expressions) : Fonctions
Référence DAX (Data Analysis Expressions) : Fonctions
Référence DAX (Data Analysis Expressions) : Fonctions
Fonctions
i RÉFÉRENCE
Fonctions DAX
Instructions DAX
h NOUVEAUTÉS
Découvrir DAX
e VUE D’ENSEMBLE
q VIDEO
Vidéos
d ENTRAINEMENT
Comprendre
p CONCEPT
Glossaire DAX
Opérateurs DAX
Requêtes DAX
Syntaxe DAX
Vue d’ensemble de DAX
Article • 20/10/2023
DAX (Data Analysis Expressions) est un langage d’expression de formule utilisé dans les
applications Analysis Services, Power BI et Power Pivot dans Excel. Les formules DAX
incluent des fonctions, des opérateurs et des valeurs qui permettent d’effectuer des
requêtes et des calculs complexes sur des données de colonnes et tables associées dans
des modèles de données tabulaires.
Cet article offre une présentation générale des principaux concepts de DAX. Il décrit
DAX tel qu’il s’applique à tous les produits qui l’utilisent. Certaines de ses fonctionnalités
peuvent ne pas s’appliquer à des produits ou cas d’usage particuliers. Pour plus
d’informations sur l’implémentation de DAX de votre produit, consultez la
documentation correspondante.
Calculs
Les formules DAX s’utilisent dans les mesures, les colonnes calculées, les tables calculées
et la sécurité au niveau des lignes.
Mesures
Les mesures sont des formules de calcul dynamique dont les résultats changent selon le
contexte. Les mesures sont utilisées dans les rapports qui prennent en charge la
combinaison et le filtrage des données de modèle à l’aide de plusieurs attributs, comme
dans les rapports Power BI ou les tableaux et graphiques croisés dynamiques Excel. Les
mesures sont créées au moyen de la barre de formule DAX dans le concepteur de
modèle.
Une formule dans une mesure peut utiliser des fonctions d’agrégation standard qui sont
créées automatiquement avec une fonction de somme automatique, comme COUNT ou
SUM. Vous pouvez également définir votre propre formule à l’aide de la barre de
formule DAX. Une mesure nommée peut être passée comme argument à d’autres
mesures.
Lorsque vous définissez une formule pour une mesure dans la barre de formule, une
info-bulle affiche un aperçu rapide de ce que seront les résultats pour l'ensemble du
contexte actuel, mais autrement, aucun résultat n'est immédiatement généré. La raison
pour laquelle vous ne pouvez pas voir les résultats (filtrés) du calcul immédiatement
tient au fait que le résultat d'une mesure ne peut pas être déterminé sans contexte.
Évaluer une mesure requiert une application cliente de création de rapports qui peut
fournir le contexte nécessaire pour récupérer les données relatives à chaque cellule, puis
évaluer l'expression pour chaque cellule. Cette application cliente peut être un tableau
ou graphique croisé dynamique Excel, un rapport Power BI, ou une expression de table
dans une requête DAX dans SSMS (SQL Server Management Studio).
Quelle que soit l’application cliente utilisée, une requête distincte est exécutée pour
chaque cellule dans les résultats. Autrement dit, chaque combinaison d’en-têtes de ligne
et de colonne dans un tableau croisé dynamique, ou chaque sélection de segments et
de filtres dans un rapport Power BI, génère un sous-ensemble de données différent sur
lequel la mesure est calculée. Par exemple, c’est ce qui se produit avec cette formule de
mesure très simple :
DAX
Colonnes calculées
Une colonne calculée est une colonne que vous ajoutez à une table existante (dans le
concepteur de modèle), puis dans laquelle vous créez une formule DAX qui définit ses
valeurs. Quand une colonne calculée contient une formule DAX valide, les valeurs sont
calculées pour chaque ligne dès que la formule est entrée. Les valeurs sont ensuite
stockées dans le modèle de données en mémoire. Par exemple, dans une table Date,
lorsque la formule est entrée dans la barre de formule :
DAX
Une valeur pour chaque ligne de la table est calculée en prenant les valeurs de la
colonne Calendar Year (dans la même table Date), en ajoutant un espace et la lettre
majuscule Q, puis en ajoutant les valeurs de la colonne Calendar Quarter (toujours dans
la même table Date). Le résultat pour chaque ligne de la colonne calculée est calculé
immédiatement, puis est affiché sous cette forme : 2017 Q1. Les valeurs de la colonne
sont recalculées uniquement si la table ou une table associée est traitée (actualisée) ou
bien si le modèle est déchargé de la mémoire, puis rechargé, comme c’est le cas
notamment lors de la fermeture et de la réouverture d’un fichier Power BI Desktop.
Tables calculées
Une table calculée est un objet calculé, sur la base d’une expression de formule et d’une
partie ou de la totalité des autres tables contenues dans le même modèle. Au lieu
d’interroger et de charger les valeurs dans les colonnes de votre nouvelle table à partir
d’une source de données, c’est une formule DAX qui définit les valeurs de la table.
Les tables calculées peuvent être utiles dans une dimension de rôle actif. La table Date
en est un exemple, où OrderDate, ShipDate et DueDate dépendent de la relation de clé
étrangère. En créant explicitement une table calculée pour ShipDate, vous obtenez une
table autonome utilisable pour les requêtes et qui fonctionne comme n’importe quelle
autre table. Les tables calculées sont également utiles quand vous configurez un
ensemble de lignes filtré, ou un sous-ensemble ou sur-ensemble de colonnes issues
d’autres tables existantes. Vous pouvez ainsi conserver la table d’origine inchangée et en
créer des variantes pour les besoins de scénarios particuliers.
Les tables calculées prennent en charge les relations avec d’autres tables. Les colonnes
de votre table calculée ont des types de données et une mise en forme, et elles peuvent
appartenir à une catégorie de données. Les tables calculées peuvent être nommées et
être exposées ou masquées comme toutes les autres tables. Les tables calculées sont
recalculées si l’une des tables dont elles tirent (pull) des données sont actualisées ou
mises à jour.
Pour en savoir plus, consultez :
Tables calculées dans Power BI Desktop
Tables calculées dans Analysis Services
DAX
= Customers[Country] = "USA"
Les membres du rôle Sales peuvent uniquement voir les données des clients situés aux
États-Unis, et les agrégats, tels que SUM, sont retournés uniquement pour ces clients. La
sécurité au niveau des lignes n’est pas disponible dans Power Pivot dans Excel.
Quand vous définissez la sécurité au niveau des lignes à l’aide d’une formule DAX, vous
créez un ensemble de lignes autorisées. Cela ne signifie pas que les autres lignes ne
sont pas accessibles ; en fait, elles ne sont simplement pas retournées dans l’ensemble
de lignes autorisées. D’autres rôles peuvent autoriser l’accès aux lignes qui sont exclues
par la formule DAX. Si un utilisateur est membre d’un autre rôle et que la sécurité au
niveau des lignes de ce rôle autorise l’accès à cet ensemble de lignes particulier,
l’utilisateur peut voir les données de ces lignes.
Les formules de la sécurité au niveau des lignes s’appliquent aux lignes spécifiées ainsi
qu’aux lignes associées. Si une table possède plusieurs relations, les filtres appliquent la
sécurité de la relation qui est active. Les formules de la sécurité au niveau des lignes se
recoupent avec d’autres formules définies pour les tables associées.
Requêtes
Les requêtes DAX peuvent être créées et exécutées dans SSMS (SQL Server
Management Studio) et des outils open source comme DAX Studio (daxstudio.org). À la
différence des formules de calcul DAX, qui peuvent uniquement être créées dans des
modèles de données tabulaires, les requêtes DAX peuvent également être exécutées sur
des modèles multidimensionnels dans Analysis Services. Les requêtes DAX sont souvent
plus faciles à écrire et plus performantes que les requêtes multidimensionnelles (MDX).
Une requête DAX est une instruction comparable à une instruction SELECT dans T-SQL.
Le type de requête DAX le plus simple est une instruction d’évaluation (Evaluate). Par
exemple,
DAX
EVALUATE
( FILTER ( 'DimProduct', [SafetyStockLevel] < 200 ) )
ORDER BY [EnglishProductName] ASC
Retourne comme résultats une table qui liste uniquement les produits dont le niveau de
stock de sécurité (valeur SafetyStockLevel) est inférieur à 200, dans l’ordre croissant du
nom de produit (valeur EnglishProductName).
Vous pouvez créer des mesures à utiliser dans la requête. Ces mesures existent
seulement pour la durée de la requête. Pour en savoir plus, consultez Requêtes DAX.
Formules
Les formules DAX sont essentielles pour créer des calculs dans des colonnes calculées et
des mesures, et pour sécuriser vos données à l’aide de la sécurité au niveau des lignes.
Pour créer des formules pour des colonnes calculées et des mesures, utilisez la barre de
formule en haut de la fenêtre du concepteur de modèle ou l’éditeur DAX. Pour créer des
formules pour la sécurité au niveau des lignes, utilisez la boîte de dialogue Gestionnaire
de rôles ou Gérer les rôles. Les informations de cette section sont destinées à vous aider
à comprendre les principes de base des formules DAX.
Formule Définition
= TODAY() Insère la date du jour dans chaque ligne d’une colonne calculée.
= [Column1] + Ajoute les valeurs dans la même ligne des colonnes [Column1] et [Column2],
et insère le résultat dans la colonne calculée de la même ligne.
Formule
[Column2] Définition
Que vous souhaitiez créer une formule simple ou complexe, vous pouvez suivre les
étapes ci-dessous :
Vous pouvez aussi cliquer sur le bouton Fx pour afficher une liste de fonctions
disponibles. Pour sélectionner une fonction dans la liste déroulante, utilisez les
flèches afin de mettre en surbrillance l’élément, puis cliquez sur OK pour ajouter la
fonction à la formule.
5. Recherchez les éventuelles erreurs de syntaxe : vérifiez que toutes les parenthèses
sont fermées et que les colonnes, les tables et les valeurs sont correctement
référencées.
7 Notes
Dans une colonne calculée, dès que la formule entrée est validée, la colonne est
remplie avec des valeurs. Dans une mesure, la définition de la mesure est
enregistrée avec la table quand vous appuyez sur Entrée. Si une formule n’est pas
valide, une erreur s’affiche.
Dans cet exemple, examinons une formule dans une mesure nommée Days in Current
Quarter :
DAX
Élément de la Description
formule
DATESBETWEEN La fonction DATESBETWEEN retourne les dates entre la dernière date pour
chaque valeur de la colonne Date dans la table Date.
'Date' Spécifie la table Date. Les tables sont spécifiées entre deux guillemets
simples.
[Date] Spécifie la colonne Date dans la table Date. Les colonnes sont spécifiées
entre crochets.
Fonctions
Une fonction est une formule nommée dans une expression. La plupart des fonctions
prennent en entrée des arguments obligatoires et facultatifs, également appelés
paramètres. Lorsque la fonction est exécutée, une valeur est retournée. DAX fournit des
fonctions qui vous permettent d’effectuer des calculs avec des dates et des heures, de
créer des valeurs conditionnelles, d’utiliser des chaînes, d’effectuer des recherches
basées sur des relations et d’itérer sur une table pour faire des calculs récursifs. Si vous
connaissez les formules Excel, plusieurs de ces fonctions vous seront familières ;
toutefois, les formules DAX diffèrent à de nombreux égards. Voici quelques différences
de taille :
Une fonction DAX fait toujours référence à une table ou une colonne complète. Si
vous souhaitez utiliser certaines valeurs particulières d'une table ou colonne, vous
pouvez ajouter des filtres à la formule.
Si vous devez personnaliser des calculs en fonction de chaque ligne, DAX fournit
des fonctions qui vous permettent d'utiliser la valeur de ligne actuelle ou une
valeur associée comme genre de paramètre pour effectuer des calculs qui varient
selon le contexte. Pour comprendre le fonctionnement de ces fonctions, consultez
la section Contexte dans le présent article.
DAX inclut de nombreuses fonctions qui retournent une table, plutôt qu'une
valeur. La table n'est pas affichée dans un client de création de rapports, mais elle
est utilisée pour fournir une entrée à d'autres fonctions. Par exemple, vous pouvez
récupérer une table, puis compter les valeurs distinctes qu'elle contient, ou calculer
les sommes dynamiques entre les colonnes ou les tables filtrées.
Fonctions d’agrégation
Les fonctions d’agrégation calculent une valeur (scalaire) telle que count, sum, average,
minimum ou maximum pour toutes les lignes d’une colonne ou d’une table, comme
défini par l’expression. Pour en savoir plus, voir Fonctions d’agrégation.
Fonctions de filtrage
Les fonctions de filtrage de DAX permettent de retourner des types de données
spécifiques, de rechercher des valeurs dans les tables associées et de procéder à un
filtrage par valeurs associées. Les fonctions de recherche s'appuient sur des tables et des
relations, comme une base de données. Les fonctions de filtrage vous permettent de
manipuler le contexte de données pour créer des calculs dynamiques. Pour en savoir
plus, consultez Fonctions de filtre.
Fonctions financières
Les fonctions financières dans DAX s’utilisent dans des formules qui effectuent des
calculs financiers, par exemple, pour connaître la valeur actuelle nette et le taux de
rendement. Ces fonctions sont similaires aux fonctions financières utilisées dans
Microsoft Excel. Pour en savoir plus, consultez Fonctions financières.
Fonctions d'information
Une fonction d'information examine la cellule ou la ligne qui est fournie comme
argument et vous indique si la valeur correspond au type attendu. Par exemple, la
fonction ISERROR retourne TRUE si la valeur que vous référencez contient une erreur.
Pour en savoir plus, consultez Fonctions d’information.
Fonctions logiques
Les fonctions logiques agissent sur une expression pour retourner des informations sur
les valeurs au sein de l'expression. Par exemple, la fonction TRUE vous permet de savoir
si une expression que vous évaluez retourne une valeur TRUE. Pour en savoir plus,
consultez Fonctions logiques.
Autres fonctions
Ces fonctions effectuent des actions uniques qui n’entrent dans aucune des catégories
définissant la plupart des autres fonctions. Pour en savoir plus, consultez Autres
fonctions.
Fonctions de relation
Les fonctions de relation dans DAX vous permettent de retourner des valeurs d’une
autre table associée, de spécifier une relation particulière à utiliser dans une expression
et de définir la direction du filtrage croisé. Pour en savoir plus, consultez Fonctions de
relation.
Fonctions statistiques
Les fonctions statistiques calculent des valeurs liées aux distributions statistiques et à la
probabilité, telles que l’écart type et le nombre de permutations. Pour en savoir plus,
consultez Fonctions statistiques.
Fonctions de texte
Les fonctions de texte dans DAX sont très semblables à leurs équivalents dans Excel.
Vous pouvez retourner une partie d'une chaîne, rechercher un texte dans une chaîne ou
concaténer des valeurs de chaîne. DAX fournit également des fonctions pour le contrôle
des formats pour les dates, les heures et les nombres. Pour en savoir plus, consultez
Fonctions de texte.
Variables
Vous pouvez créer des variables dans une expression en utilisant VAR. VAR n’est pas une
fonction d’un point de vue technique : c’est un mot clé qui stocke le résultat d’une
expression sous la forme d’une variable nommée. Cette variable peut ensuite être
passée comme argument à d’autres expressions de mesure. Par exemple :
DAX
VAR
TotalQty = SUM ( Sales[Quantity] )
Return
IF (
TotalQty > 1000,
TotalQty * 0.95,
TotalQty * 1.25
)
Dans cet exemple, TotalQty peut être passé en tant que variable nommée à d’autres
expressions. Les variables peuvent être de n’importe quel type de données scalaire, y
compris des tables. L’emploi de variables dans vos formules DAX peut être extrêmement
puissant.
Types de données
Vous pouvez importer des données dans un modèle à partir de nombreuses sources de
données différentes, qui peuvent prendre en charge des types de données différents.
Lorsque vous importez des données dans un modèle, les données sont converties en un
des types de données de modèle tabulaire. Quand les données du modèle sont utilisées
dans un calcul, les données sont converties en un type de données DAX pour la durée et
le résultat du calcul. Lorsque vous créez une formule DAX, les termes utilisés dans la
formule déterminent automatiquement le type de données de valeur retournées.
Nombre entier Valeur entière de Nombres qui n'ont pas de décimales. Les entiers peuvent
64 bits (huit être des nombres positifs ou négatifs, mais doivent être
octets) 1, 2 compris entre -9 223 372 036 854 775 808 (-2^63) et 9 223
372 036 854 775 807 (2^63-1).
Nombre Nombre réel de Les nombres réels sont des nombres qui peuvent avoir des
décimal 64 bits (huit décimales. Les nombres réels couvrent une large gamme de
octets) 1, 2 valeurs :
Zéro
Les dates valides sont toutes les dates après le 1er mars
1900.
Devise Devise Le type de données devise autorise des valeurs entre -922
337 203 685 477,5808 et 922 337 203 685 477,5807 avec
quatre chiffres décimaux à précision fixe.
Bien que les types de données soient généralement définis automatiquement, il est
important de comprendre de quelle façon ils s'appliquent, notamment, aux formules
DAX. Des erreurs dans les formules ou des résultats inattendus sont notamment dus à
l'emploi d'un opérateur spécifique qui ne peut pas être utilisé avec le type de données
spécifié dans un argument. Par exemple, la formule = 1 & 2 , retourne un résultat de
chaîne de 12. Toutefois, la formule = "1" + "2" retourne un résultat entier de 3.
Context
Le contexte est un concept important qu’il faut bien comprendre quand vous créez des
formules DAX. Le contexte vous permet d'effectuer une analyse dynamique dans la
mesure où les résultats d'une formule changent pour refléter la sélection de ligne ou de
cellule actuelle, ainsi que toutes les données associées. Il est impératif de comprendre ce
qu'est un contexte et de savoir utiliser un contexte à bon escient pour créer des analyses
dynamiques performantes et pour résoudre les problèmes dans les formules.
Les formules dans les modèles tabulaires peuvent être évaluées dans un contexte
différent, en fonction d'autres éléments de conception.
Contexte de ligne
Le contexte de ligne peut être vu comme « la ligne active ». Si vous créez une formule
dans une colonne calculée, le contexte de ligne correspondant à cette formule inclut les
valeurs de toutes les colonnes dans la ligne actuelle. Si la table est associée à une autre
table, le contenu inclut également toutes les valeurs de cette autre table qui sont mises
en relation avec la ligne actuelle.
Par exemple, supposons que vous créez une colonne calculée, = [Freight] + [Tax] , qui
additionne les valeurs de deux colonnes, Freight et Tax, de la même table. Cette formule
obtient automatiquement les valeurs de la ligne actuelle uniquement dans les colonnes
spécifiées.
Le contexte de ligne suit également toutes les relations définies entre les tables,
notamment les relations définies dans une colonne calculée à l'aide de formules DAX,
afin de déterminer les lignes des tables liées qui sont associées à la ligne actuelle.
Par exemple, la formule suivante utilise la fonction RELATED pour extraire une valeur de
taxe d'une table associée, selon la région vers laquelle la commande a été expédiée. La
valeur de taxe est déterminée par l'utilisation de la valeur de la région dans la table
actuelle, la recherche de la région dans la table associée, puis l'obtention du taux
d'imposition de cette région à partir de la table associée.
DAX
= [Freight] + RELATED('Region'[TaxRate])
Cette formule obtient le taux d'imposition pour la région active de la table Region et
l'ajoute à la valeur de la colonne de Freight. Dans les formules DAX, vous n'avez pas
besoin de connaître ou spécifier la relation spécifique qui connecte les tables.
Contextes de ligne multiples
Le langage DAX (Data Analysis Expressions) inclut des fonctions qui itèrent des calculs
sur une table. Ces fonctions peuvent avoir plusieurs lignes actives, chacune avec son
propre contexte de ligne. Fondamentalement, ces fonctions vous permettent de créer
des formules qui effectuent des opérations de manière récursive sur une boucle interne
et externe.
Par exemple, supposons que votre modèle contienne une table Products et une table
Sales . Les utilisateurs peuvent vouloir parcourir la totalité de la table Sales, remplie de
transactions impliquant plusieurs produits, et rechercher la quantité maximale
commandée pour chaque produit dans l'ensemble de ces transactions.
Avec DAX, vous pouvez générer une formule unique qui retourne la valeur correcte, et
les résultats sont automatiquement mis à jour chaque fois que l'utilisateur ajoute des
données aux tables.
DAX
= MAXX(FILTER(Sales,[ProdKey] = EARLIER([ProdKey])),Sales[OrderQty])
Contexte de requête
Uncontexte de requête fait référence au sous-ensemble de données qui est implicitement
récupéré pour une formule. Par exemple, quand un utilisateur insère une mesure ou un
champ dans un rapport, le moteur examine les en-têtes de ligne et de colonne, les
segments et les filtres de rapport pour déterminer le contexte. Les requêtes nécessaires
sont ensuite exécutées sur les données de modèle pour obtenir le sous-ensemble
correct de données, effectuer les calculs définis par la formule, puis remplir les valeurs
dans le rapport.
Étant donné que le contexte change en fonction de l’endroit où vous placez la formule,
les résultats de la formule peuvent varier également. Supposons, par exemple, que vous
créez une formule qui additionne les valeurs de la colonne Profit de la table Sales : =
SUM('Sales'[Profit]) . Si vous utilisez cette formule dans une colonne calculée dans la
table Sales, les résultats de la formule seront identiques pour toute la table, car le
contexte de requête utilisé par la formule est toujours l’ensemble de données complet
de la table Sales. Les résultats indiqueront les bénéfices pour toutes les régions, tous les
produits, toutes les années, etc.
Cependant, plutôt que d’obtenir le même résultat des centaines de fois, les utilisateurs
voudront connaître le bénéfice pour une année, un pays ou un produit en particulier (ou
pour une combinaison de ces éléments), avant d’avoir un total général.
Dans un rapport, le contexte peut être changé par le filtrage, l’ajout ou la suppression
de champs et l’utilisation de segments. Cela entraîne le changement du contexte de
requête dans lequel la mesure est évaluée. Par conséquent, la même formule, utilisée
dans une mesure, est évaluée dans un contexte de requête différent pour chaque cellule.
Contexte de filtre
Lecontexte de filtre est l'ensemble de valeurs autorisé dans chaque colonne, ou dans les
valeurs récupérées d'une table associée. Des filtres peuvent être appliqués à la colonne
dans le concepteur, ou dans la couche de présentation (rapports et tableaux croisés
dynamiques). Des filtres peuvent également être définis explicitement par des
expressions de filtre dans la formule.
Un contexte de filtre est ajouté lorsque vous spécifiez des contraintes de filtre sur
l'ensemble de valeurs autorisé dans une colonne ou une table, en utilisant les arguments
d'une formule. Un contexte de filtre s'applique au-dessus des autres contextes, tels
qu'un contexte de ligne ou un contexte de requête.
Dans des modèles tabulaires, plusieurs méthodes s'offrent à vous pour créer le contexte
de filtre. Dans le contexte des clients consommateurs du modèle, comme les rapports
Power BI, les utilisateurs peuvent créer des filtres instantanément en ajoutant des
segments ou des filtres de rapport sur les en-têtes de ligne et de colonne. Vous pouvez
également spécifier des expressions de filtre directement dans la formule, pour spécifier
des valeurs associées, filtrer les tables utilisées comme entrées ou obtenir de façon
dynamique le contexte des valeurs utilisées dans les calculs. Vous pouvez également
supprimer entièrement les filtres ou les effacer de manière sélective sur des colonnes
spécifiques. C'est très utile lors de la création de formules qui calculent des totaux
généraux.
Pour en savoir plus sur la création de filtres dans les formules, consultez FILTER, fonction
(DAX).
Pour obtenir un exemple de la procédure de suppression des filtres pour créer des
totaux généraux, consultez Fonction ALL (DAX).
Pour obtenir des exemples d’application et de suppression sélective des filtres dans les
formules, consultez ALLEXCEPT.
Par exemple, si vous venez d’importer des données dans une nouvelle table et que celle-
ci n’est pas associée à d’autres tables (et que vous n’avez pas appliqué de filtres), le
contexte actuel correspond à l’ensemble entier de colonnes dans la table. Si la table est
liée par des relations à d'autres tables, le contexte actuel inclut les tables associées. Si
vous ajoutez une colonne de la table à un rapport qui contient des segments et
éventuellement certains filtres de rapport, le contexte de la formule correspond au sous-
ensemble de données dans chaque cellule du rapport.
Le contexte est un concept puissant qui peut également compliquer la résolution des
problèmes liés aux formules. Nous vous recommandons de commencer par des
formules et des relations simples pour voir comment le contexte s'exécute. La section
suivante fournit quelques exemples d'utilisation de différents types de contextes par les
formules pour un retour dynamique des résultats.
Opérateurs
Le langage DAX utilise quatre types différents d'opérateurs de calcul dans les formules :
Les formules fonctionnent uniquement avec les tables et les colonnes, et non avec
les cellules individuelles, les références de plage ou les tableaux.
Les formules peuvent utiliser des relations pour obtenir des valeurs à partir de
tables associées. Les valeurs récupérées sont toujours associées à la valeur de ligne
actuelle.
Vous ne pouvez pas avoir de données irrégulières ou « déséquilibrées », comme
vous le pouvez dans une feuille de calcul Excel. Chaque ligne d'une table doit
contenir le même nombre de colonnes. Toutefois, certaines colonnes peuvent
comporter des valeurs vides. Les tables de données Excel et les tables de données
de modèle tabulaire ne sont pas interchangeables.
Un type de données étant défini pour chaque colonne, toutes les valeurs de cette
colonne doivent être du même type.
DAX
De nombreuses fonctions DAX requièrent l'existence d'une relation entre les tables ou
entre plusieurs tables, afin de localiser les colonnes que vous avez référencées et de
retourner des résultats qui ont un sens. D'autres fonctions essaient d'identifier la relation
; toutefois, lorsque cela est possible, créez une relation pour optimiser les résultats. Les
modèles de données tabulaires prennent en charge les relations multiples entre les
tables. Pour éviter toute confusion ou des résultats incorrects, une seule relation à la fois
est désignée comme la relation active. Vous pouvez changer la relation active si
nécessaire pour parcourir les différentes relations dans les données des calculs. La
fonction USERELATIONSHIP permet de spécifier une ou plusieurs relations à utiliser dans
un calcul spécifique.
Il est important d’observer les règles de conception de formule suivantes si vous utilisez
des relations :
Quand des tables sont liées par une relation, vous devez vous assurer que les deux
colonnes utilisées comme clés ont des valeurs qui correspondent. En effet,
l’intégrité référentielle n’étant pas vérifiée ici, il est possible de créer une relation
même s’il y a des valeurs sans correspondance dans une colonne clé. Si cela se
produit, vous devez savoir que des valeurs vides ou sans correspondance peuvent
affecter les résultats des formules.
Lorsque vous liez des tables dans votre modèle à l'aide de relations, vous
agrandissez l'étendue, ou le contexte, dans laquelle vos formules sont évaluées.
Des modifications dans le contexte résultant de l'ajout de nouvelles tables, de
nouvelles relations ou de modifications de la relation active peuvent entraîner des
modifications de vos résultats qu'il n'est pas possible d'anticiper. Pour en savoir
plus, consultez Contexte dans cet article.
Traitement et actualisation
Le traitement et le recalcul sont deux opérations distinctes mais interdépendantes. Vous
devez comprendre en détail ces concepts lorsque vous concevez un modèle qui contient
des formules complexes, de grandes quantités de données ou des données obtenues de
sources de données externes.
Le traitement (actualisation) met à jour les données dans un modèle avec de nouvelles
données provenant d’une source de données externe.
Lerecalcul est le processus de mise à jour des résultats des formules afin de refléter
toutes les modifications qui leur ont été apportées, ainsi que toutes les modifications
des données sous-jacentes. Le recalcul peut affecter les performances des façons
suivantes :
Les valeurs dans une colonne calculée sont calculées et stockées dans le modèle.
Pour mettre à jour les valeurs dans la colonne calculée, vous devez traiter le
modèle à l'aide de l'une des trois commandes de traitement – Traiter entièrement,
Traiter les données ou Traiter le recalcul. Le résultat de la formule doit toujours être
recalculé, pour la colonne entière, chaque fois que vous modifiez la formule.
Les valeurs calculées par une mesure sont évaluées dynamiquement chaque fois
qu’un utilisateur ajoute la mesure à un tableau croisé dynamique ou ouvre un
rapport. Quand l’utilisateur change le contexte, les valeurs retournées par la
mesure changent également. Les résultats de la mesure reflètent toujours les
valeurs les plus récentes dans le cache en mémoire.
Le traitement et le recalcul n’ont pas d’impact sur les formules de sécurité au niveau des
lignes, sauf si le résultat d’un recalcul retourne une valeur différente, rendant la ligne
interrogeable ou non interrogeable par les membres du rôle.
Mises à jour
DAX est constamment amélioré. Les fonctions nouvelles et modifiées sont publiées avec
chaque mise à jour suivante disponible, qui est généralement mensuelle. Les mises à
jour sont appliquées aux services en premier, puis aux applications installées telles que
Power BI Desktop, Excel, SQL Server Management Studio (SSMS) et l’extension de
projets Analysis Services pour Visual Studio (SSDT). SQL Server Analysis Services est mis
à jour avec la mise à jour cumulative suivante. Les nouvelles fonctions sont d’abord
annoncées et décrites dans la documentation de référence des fonctions DAX, en même
temps que les mises à jour de Power BI Desktop.
Les fonctions ne sont pas toutes prises en charge dans les versions antérieures de SQL
Server Analysis Services et d’Excel.
Dépannage
Si vous obtenez une erreur lorsque vous définissez une formule, la formule peut
contenir une erreur syntaxique, une erreur sémantiqueou une erreur de calcul.
Les erreurs syntactiques sont les plus faciles à résoudre. Elles impliquent en général une
virgule ou une parenthèse manquante.
Dans les deux autres types d’erreurs, la syntaxe est correcte, mais la valeur ou une
colonne référencée n’a pas de sens dans le contexte de la formule. De telles erreurs
sémantiques et de calcul peuvent être provoquées par l'un des problèmes suivants :
La formule fait référence à une colonne, une table ou une fonction non existante.
La formule semble être correcte, mais lorsque le moteur de données extrait les
données, il trouve une incompatibilité de type et génère une erreur.
La formule transmet un nombre ou un type d’arguments incorrect à une fonction.
La formule fait référence à une colonne différente qui comporte une erreur, et par
conséquent, ses valeurs ne sont pas valides.
La formule fait référence à une colonne qui n'a pas été traitée, ce qui signifie
qu'elle comporte des métadonnées, mais aucune donnée à proprement parler à
utiliser pour les calculs.
Dans les quatre premiers cas, DAX signale la colonne entière qui contient la formule non
valide. Dans le dernier cas, DAX grise la colonne pour indiquer que la colonne se trouve
dans un état non traité.
Applications et outils
Power BI Desktop
Power BI Desktop est une application gratuite conçue pour la modélisation des
données et la création de rapports. Le concepteur de modèle comprend un éditeur DAX
permettant de créer des formules de calcul DAX.
Visual Studio
Visual Studio avec l’extension de projets Analysis Services (VSIX) s’utilise pour créer
des projets de modèle Analysis Services. Le concepteur de modèle tabulaire, installé
avec l’extension de projets, comprend un éditeur DAX.
SSMS (SQL Server Management Studio) est un outil essentiel pour travailler avec
Analysis Services. SSMS comprend un éditeur de requête DAX permettant d’interroger à
la fois des modèles tabulaires et des modèles multidimensionnels.
DAX Studio
DAX Studio est un outil client open source qui permet de créer et d’exécuter des
requêtes DAX sur des modèles Analysis Services, Power BI Desktop et Power Pivot dans
Excel.
Éditeur tabulaire
Éditeur tabulaire est un outil open source qui fournit une vue hiérarchique et intuitive
de chaque objet dans les métadonnées du modèle tabulaire. Éditeur tabulaire inclut un
éditeur DAX avec mise en surbrillance syntaxique, qui permet de modifier facilement des
mesures, des colonnes calculées et des expressions de table calculée.
Ressources d’apprentissage
Pendant la phase d’apprentissage de DAX, il est préférable d’utiliser l’application dont
vous vous servirez ensuite pour créer vos propres modèles de données. Que ce soit
pour Analysis Services, Power BI Desktop ou Power Pivot dans Excel, vous trouverez de
nombreux articles et tutoriels qui expliquent pas à pas comment créer des mesures, des
colonnes calculées et des filtres de lignes à l’aide du langage DAX. Voici quelques
ressources supplémentaires :
Vidéos
Definitive Guide to DAX , des auteurs Alberto Ferrari et Marco Russo (Microsoft Press).
Maintenant dans ce deuxième édition, ce guide complet est destiné aux modélisateurs
de données et aux professionnels en Business Intelligence qui débutent. Il fournit des
informations générales sur des techniques innovantes et très performantes.
Communauté
DAX a une communauté dynamique, toujours désireuse de partager son expertise. La
communauté Power BI de Microsoft a un forum de discussion spécial pour DAX, ses
commandes et des conseils .
Commentaires
Cette page a-t-elle été utile ? Yes No
Vidéos
Article • 20/10/2023
Que vous utilisiez Power BI Desktop, Power Pivot dans Excel ou Analysis Services, il est
essentiel de bien comprendre le langage DAX (Data Analysis Expressions) pour créer des
modèles de données efficaces. Voici quelques vidéos qui vous aideront à commencer à
utiliser ce puissant langage d’expression.
Introduction à DAX
Dans cette vidéo d’introduction à DAX, Alberto Ferrari, partenaire Microsoft, présente les
principaux concepts de DAX. Au travers d’exemples clairs et pratiques, vous allez
découvrir les mesures, les colonnes calculées et les expressions de modélisation des
données de base avec DAX.
https://www.youtube-nocookie.com/embed/klQAZLr5vxA
Commentaires
Cette page a-t-elle été utile ? Yes No
Exemple de modèle DAX
Article • 20/10/2023
L’exemple de modèle Adventure Works DW 2020 Power BI Desktop est conçu pour
prendre en charge votre apprentissage DAX. Le modèle est basé sur l’exemple
d’entrepôt de données Adventure Works pour AdventureWorksDW2017. Toutefois, les
données ont été modifiées pour s’adapter aux objectifs de l’exemple de modèle.
L’exemple de modèle ne contient aucune formule DAX. Toutefois, il prend en charge des
centaines voire des milliers de formules et de requêtes de calcul potentielles. Certains
exemples de fonctions, comme ceux de CALCULATE, DATESBETWEEN, DATESIN PERIOD,
IF et LOOKUPVALUE, peuvent être ajoutés à l’exemple de modèle sans modification.
Nous prévoyons d’inclure davantage d’exemples dans d’autres articles de référence sur
les fonctions compatibles avec cet exemple de modèle.
Scénario
La société Adventure Works représente un fabricant de vélos qui vend des vélos et des
accessoires à l’échelle internationale. Les données de l’entrepôt de données de la
société sont stockées dans Azure SQL Database.
Structure du modèle
Le modèle comporte sept tables :
Table Description
Client Décrit les clients et leur emplacement géographique. Les clients achètent des
produits en ligne (Internet Sales, Ventes sur Internet).
Date Il existe trois relations entre les tables Date et Sales (Ventes), pour la date de
commande, la date d’expédition et la date d’échéance. La relation de la date de
commande est active. La société génère des rapports sur les ventes à l’aide
Table Description
d’un exercice qui commence le 1er juillet de chaque année. La table est
marquée en tant que table de dates à l’aide de la colonne Date.
Sales Stocke les lignes sur le grain de la ligne de commande client. Toutes les valeurs
financières sont en dollars américains (USD). La première date de commande
est le 1er juillet 2017 et la dernière date de commande est le 15 juin 2020.
Sales Order Décrit les numéros de commande client et de ligne de commande, ainsi que le
(Commande canal de vente, Reseller (Revendeur) ou Internet. Cette table a une relation un-
client) à-un avec la table Sales (Ventes).
Sales Territory Les secteurs de vente sont organisés en groupes (Amérique du Nord, Europe et
(Secteur de Pacifique), pays et régions. Seuls les États-Unis vendent des produits au niveau
vente) de la région.
Charger l’exemple
Téléchargez le fichier de l’exemple de modèle Power BI Desktop ici .
Voir aussi
Parcours d’apprentissage : Utiliser DAX dans Power BI Desktop
Des questions ? Essayez d’interroger la communauté Power BI
Vous avez des suggestions ? Envoyez-nous vos idées pour améliorer Power BI
Commentaires
Cette page a-t-elle été utile ? Yes No
Compréhension des fonctions ORDERBY,
PARTITIONBY et MATCHBY
Article • 28/07/2023
Les fonctions ORDERBY, PARTITIONBY et MATCHBY dans DAX sont des fonctions
spéciales qui ne peuvent être utilisées qu’avec des fonctions Window de DAX : INDEX,
OFFSET, WINDOW, RANK, ROWNUMBER.
Scénario
Commençons par un exemple qui n’utilise pas du tout de fonctions Window. Vous
trouverez ci-dessous une table qui retourne le total des ventes par couleur et par année
civile. Il existe plusieurs façons de définir cette table, mais comme notre objectif est ici
de comprendre ce qu’il se passe dans DAX, nous allons utiliser une table calculée. Voici
l’expression de table :
DAX
BasicTable =
SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
Vous verrez que cette expression de table calculée utilise SUMMARIZECOLUMNS pour
calculer la somme (SUM) de la colonne SalesAmount de la table FactInternetSales, en
fonction de la colonne Color de la table DimProduct et de la colonne CalendarYear de la
table DimDate. Voici le résultat :
DAX
1stAttempt =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS (
vRelation,
"PreviousColorSales",
SELECTCOLUMNS (
OFFSET (
-1,
vRelation
),
[CurrentYearSales]
)
)
Il y a beaucoup à dire sur cette expression. Nous avons utilisé ADDCOLUMNS pour
développer la table précédente avec une colonne appelée PreviousColorSales. Le
contenu de cette colonne est défini sur CurrentYearSales, qui correspond à
SUM(FactInternetSales[SalesAmount]), pour la couleur précédente (extraite avec
OFFSET).
C’est un pas de plus vers notre objectif, mais à y regarder de près, ce n’est pas tout à fait
ce que nous voulons. Par exemple, pour [Silver, 2017], previousColorSales est défini sur
[Red, 2020].
Ajout de ORDERBY
La définition ci-dessus équivaut à :
DAX
1stAttemptWithORDERBY =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS (
vRelation,
"PreviousColorSales",
SELECTCOLUMNS (
OFFSET (
-1,
vRelation,
ORDERBY ([Color], ASC, [CalendarYear], ASC,
[CurrentYearSales], ASC)
),
[CurrentYearSales]
)
)
Dans ce cas, l’appel à OFFSET utilise ORDERBY pour organiser la table en fonction de
Color et CalendarYear par ordre croissant, ce qui détermine ce qui est considéré comme
étant la ligne précédente retournée.
Si ces deux résultats sont équivalents, c’est parce que ORDERBY contient
automatiquement toutes les colonnes de la relation qui ne se trouvent pas dans
PARTITIONBY. Comme PARTITIONBY n’a pas été spécifié, ORDERBY est défini sur Color,
CalendarYear et CurrentYearSales. Or, sachant que les paires Color et CalendarYear sont
uniques dans la relation, l’ajout de CurrentYearSales ne change pas le résultat. En fait,
même si nous devions spécifier uniquement Color dans ORDERBY, les résultats seraient
les mêmes, car CalendarYear serait automatiquement ajouté. Cela est dû au fait que la
fonction ajoute autant de colonnes que nécessaire à ORDERBY afin que chaque ligne
puisse être identifiée de manière unique par les colonnes ORDERBY et PARTITIONBY :
DAX
1stAttemptWithORDERBY =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS(
vRelation,
"PreviousColorSales",
SELECTCOLUMNS (
OFFSET (
-1,
vRelation,
ORDERBY ([Color])
),
[CurrentYearSales]
)
)
Ajout de PARTITIONBY
Maintenant, pour obtenir pratiquement le résultat recherché, nous pouvons utiliser
PARTITIONBY, comme dans l’expression de table calculée suivante :
DAX
UsingPARTITIONBY =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS (
vRelation,
"PreviousColorSales",
SELECTCOLUMNS (
OFFSET (
-1,
vRelation,
ORDERBY ([CalendarYear]),
PARTITIONBY ([Color])
),
[CurrentYearSales]
)
)
Notez que la spécification de ORDERBY est ici facultative, car ORDERBY contient
automatiquement toutes les colonnes de la relation qui ne sont pas spécifiées dans
PARTITIONBY. Par conséquent, l’expression suivante retourne les mêmes résultats, car
ORDERBY est défini automatiquement sur CalendarYear et CurrentYearSales :
DAX
UsingPARTITIONBYWithoutORDERBY =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS (
vRelation,
"PreviousColorSales",
SELECTCOLUMNS (
OFFSET (
-1,
vRelation,
PARTITIONBY ([Color])
),
[CurrentYearSales]
)
)
7 Notes
Pour obtenir le résultat final, il nous suffit de soustraire CurrentYearSales des ventes de
l’année précédente pour la même couleur retournées par l’appel à OFFSET. Comme
nous ne sommes pas intéressés par l’affichage des ventes de l’année précédente pour la
même couleur, mais par seulement les ventes de l’année en cours et la différence d’une
année sur l’autre, voici l’expression de table calculée finale :
DAX
FinalResult =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS (
vRelation,
"YoYSalesForSameColor",
[CurrentYearSales] -
SELECTCOLUMNS (
OFFSET (
-1,
vRelation,
ORDERBY ([CalendarYear]),
PARTITIONBY ([Color])
),
[CurrentYearSales]
)
)
Utilisation de MATCHBY
Vous avez peut-être remarqué que nous n’avons pas du tout spécifié MATCHBY. Dans ce
cas, ce n’est pas nécessaire. Les colonnes spécifiées dans ORDERBY et PARTITIONBY
(pour autant qu’elles aient été spécifiées dans les exemples ci-dessus) suffisent à
identifier chaque ligne de manière unique. Comme nous n’avons pas spécifié MATCHBY,
les colonnes spécifiées dans ORDERBY et PARTITIONBY sont utilisées pour identifier de
manière unique chaque ligne afin qu’elles puissent être comparées pour permettre à
OFFSET de produire un résultat significatif. Si les colonnes spécifiées dans ORDERBY et
PARTITIONBY ne peuvent pas identifier chaque ligne de manière unique, des colonnes
supplémentaires peuvent être ajoutées à la clause ORDERBY si ces colonnes
supplémentaires permettent d’identifier chaque ligne de manière unique. Si ce n’est pas
possible, une erreur est retournée. Dans ce dernier cas, la spécification de MATCHBY
peut contribuer à résoudre l’erreur.
Si MATCHBY est spécifié, les colonnes spécifiées dans MATCHBY et PARTITIONBY sont
utilisées pour identifier chaque ligne de manière unique. Si ce n’est pas possible, une
erreur est retournée. Même si MATCHBY n’est pas obligatoire, envisagez de spécifier
explicitement MATCHBY pour éviter toute confusion.
DAX
FinalResult =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS (
vRelation,
"YoYSalesForSameColor",
[CurrentYearSales] -
SELECTCOLUMNS (
OFFSET (
-1,
vRelation,
ORDERBY ([CalendarYear]),
PARTITIONBY ([Color])
),
[CurrentYearSales]
)
)
Si nous voulons être explicites sur la façon dont les lignes doivent être identifiées de
manière unique, nous pouvons spécifier MATCHBY comme dans l’expression équivalente
suivante :
DAX
FinalResultWithExplicitMATCHBYOnColorAndCalendarYear =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS (
vRelation,
"YoYSalesForSameColor",
[CurrentYearSales] -
SELECTCOLUMNS (
OFFSET (
-1,
vRelation,
ORDERBY ([CalendarYear]),
PARTITIONBY ([Color]),
MATCHBY ([Color], [CalendarYear])
),
[CurrentYearSales]
)
)
MATCHBY étant spécifié, les colonnes spécifiées à la fois dans MATCHBY et PARTITIONBY
sont utilisées pour identifier les lignes de manière unique. Comme Color est spécifié à la
fois dans MATCHBY et PARTITIONBY, l’expression suivante est équivalente à l’expression
précédente :
DAX
FinalResultWithExplicitMATCHBYOnCalendarYear =
VAR vRelation = SUMMARIZECOLUMNS (
DimProduct[Color],
DimDate[CalendarYear],
"CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ),
0 )
)
RETURN
ADDCOLUMNS (
vRelation,
"YoYSalesForSameColor",
[CurrentYearSales] -
SELECTCOLUMNS (
OFFSET (
-1,
vRelation,
ORDERBY ([CalendarYear]),
PARTITIONBY ([Color]),
MATCHBY ([CalendarYear])
),
[CurrentYearSales]
)
)
Sachant qu’il n’était pas nécessaire de spécifier MATCHBY dans les exemples que nous
avons vus jusqu’à présent, intéressons-nous à présent à un exemple légèrement
différent qui nécessite MATCHBY. Dans ce cas, nous avons une liste de lignes de
commande. Chaque ligne représente une ligne de commande pour une commande.
Une commande peut être constituée de plusieurs lignes de commande et la ligne de
commande 1 apparaît sur de nombreuses commandes. Par ailleurs, pour chaque ligne
de commande, nous avons un élément ProductKey (Clé de produit) et un élément
SalesAmount (Montant de la vente). Voici un aperçu des colonnes importantes de la
table :
DAX
ThisExpressionFailsBecauseMATCHBYIsMissing =
ADDCOLUMNS (
FactInternetSales,
"Previous Sales Amount",
SELECTCOLUMNS (
OFFSET (
-1,
FactInternetSales,
ORDERBY ( FactInternetSales[SalesAmount], DESC ),
PARTITIONBY ( FactInternetSales[ProductKey] )
),
FactInternetSales[SalesAmount]
)
)
Cette expression retourne une erreur indiquant que le paramètre Relation de OFFSET
comportement potentiellement des lignes en double, ce qui n’est pas autorisé.
Pour que cette expression fonctionne, MATCHBY doit être spécifié et inclure toutes les
colonnes qui définissent une ligne de manière unique. MATCHBY est nécessaire ici, car la
relation, FactInternetSales, ne contient pas de clés explicites ni de colonnes uniques.
Cependant, les colonnes SalesOrderNumber et SalesOrderLineNumber forment
ensemble une clé composite, où leur existence conjointe est unique dans la relation et
peut donc identifier chaque ligne de manière unique. Le simple fait de spécifier
SalesOrderNumber ou SalesOrderLineNumber ne suffit pas, car les deux colonnes
contiennent des valeurs qui se répètent. L’expression suivante résout le problème :
DAX
ThisExpressionWorksBecauseOfMATCHBY =
ADDCOLUMNS (
FactInternetSales,
"Previous Sales Amount",
SELECTCOLUMNS (
OFFSET (
-1,
FactInternetSales,
ORDERBY ( FactInternetSales[SalesAmount], DESC ),
PARTITIONBY ( FactInternetSales[ProductKey] ),
MATCHBY ( FactInternetSales[SalesOrderNumber],
FactInternetSales[SalesOrderLineNumber] )
),
FactInternetSales[SalesAmount]
)
)
Commentaires
Cette page a-t-elle été utile ? Yes No
Utilisation appropriée des fonctions
d’erreur
Article • 06/04/2023
En tant que modeleur de données, quand vous écrivez une expression DAX qui pourrait
entraîner une erreur de temps d’évaluation, vous pouvez utiliser deux fonctions DAX
pratiques.
La fonction ISERROR, qui prend une seule expression et retourne la valeur TRUE si
cette expression entraîne une erreur.
La fonction IFERROR, qui prend deux expressions. Si la première expression
entraîne une erreur, la valeur de la seconde expression est retournée. Il s’agit en
fait d’une meilleure implémentation de l'imbrication de la fonction ISERROR dans
une fonction IF.
Cependant, même si ces fonctions peuvent être utiles et faciliter la compréhension des
expressions, elles peuvent aussi dégrader considérablement les performances des
calculs. Cela peut arriver parce que ces fonctions augmentent le nombre d'analyses
requises par le moteur de stockage.
La plupart des erreurs de temps d’évaluation sont dues à des valeurs vides (BLANK)
inattendues ou à des valeurs nulles, ou à une conversion de type de données non valide.
Recommandations
Il vaut mieux éviter d'utiliser les fonctions ISERROR et IFERROR. Appliquez plutôt des
stratégies défensives lors de la conception du modèle et de l'écriture des expressions.
Les stratégies peuvent inclure :
S'assurer que des données de qualité sont chargées dans le modèle : Utilisez les
transformations Power Query pour supprimer ou substituer des valeurs non valides
ou manquantes, et pour définir des types de données corrects. Une transformation
Power Query peut également être utilisée pour filtrer les lignes lorsque des erreurs,
notamment une conversion de données non valide, surviennent.
Exemple
L'expression de mesure suivante teste si une erreur s’affichera. Elle retourne une valeur
BLANK dans ce cas (ce qui est le cas lorsque vous ne fournissez pas à la fonction IF une
expression value-if-false).
DAX
Profit Margin
= IF(ISERROR([Profit] / [Sales]))
DAX
Profit Margin
= IFERROR([Profit] / [Sales], BLANK())
Mais cette version finale de l’expression de mesure aboutit au même résultat, mais de
façon plus efficace et fluide.
DAX
Profit Margin
= DIVIDE([Profit], [Sales])
Voir aussi
Parcours d’apprentissage : Utiliser DAX dans Power BI Desktop
Des questions ? Essayez d’interroger la communauté Power BI
Vous avez des suggestions ? Envoyez-nous vos idées pour améliorer Power BI
Commentaires
Cette page a-t-elle été utile ? Yes No
Éviter de convertir des blancs (BLANK)
en valeurs
Article • 06/04/2023
En tant que modeleur de données, quand vous écrivez des expressions de mesure, vous
pouvez rencontrer des cas où une valeur significative ne peut pas être retournée. Dès
lors, vous pouvez être tenté de retourner une valeur (comme zéro) à la place. Nous vous
suggérons de déterminer soigneusement si cette conception est efficace et pratique.
DAX
Prenons une autre définition de mesure qui convertit également les résultats BLANK en
zéro.
DAX
Profit Margin =
DIVIDE([Profit], [Sales], 0)
La fonction DIVIDE divise la mesure Profit par la mesure Sales. Si le résultat est zéro ou
BLANK, le troisième argument (le résultat alternatif facultatif) est retourné. Dans cet
exemple, étant donné que zéro est passé comme résultat alternatif, la mesure est
certaine de toujours retourner une valeur.
Quand elles sont ajoutées à un visuel de rapport, Power BI tente de récupérer tous les
regroupements dans le contexte de filtre. L’évaluation et la récupération de résultats de
requête volumineux entraînent souvent un ralentissement du rendu des rapports.
Chaque exemple de mesure convertit efficacement un calcul fragmenté en calcul dense,
ce qui oblige Power BI à utiliser plus de mémoire que nécessaire.
De plus, un trop grand nombre de regroupements accable souvent les utilisateurs de
vos rapports.
Voyons ce qui se passe lorsque la mesure Profit Margin est ajoutée à un visuel de table,
avec un regroupement par client.
7 Notes
Voyons ce qui se passe lorsque la mesure Profit Margin est améliorée. Elle retourne
désormais une seule valeur quand la mesure Sales n’est pas BLANK (ou zéro).
DAX
Profit Margin =
DIVIDE([Profit], [Sales])
Le visuel de table présente maintenant uniquement les clients qui ont effectué des
ventes dans le contexte de filtre actuel. La mesure ainsi améliorée engendre une
expérience plus efficace et plus pratique pour les utilisateurs de vos rapports.
Conseil
Si nécessaire, vous pouvez configurer un visuel pour afficher tous les groupes (qui
retournent des valeurs ou BLANK) dans le contexte de filtre en activant l’option
Afficher les éléments sans données.
Recommandation
Il est recommandé que vos mesures retournent BLANK quand aucune valeur
significative ne peut être retournée.
Cette approche de conception est efficace, car elle permet à Power BI d’afficher les
rapports plus rapidement. De plus, il est préférable de retourner BLANK parce que les
visuels de rapport éliminent par défaut les regroupements quand les totalisations ont la
valeur BLANK.
Voir aussi
Parcours d’apprentissage : Utiliser DAX dans Power BI Desktop
Des questions ? Essayez d’interroger la communauté Power BI
Vous avez des suggestions ? Envoyez-nous vos idées pour améliorer Power BI
Commentaires
Cette page a-t-elle été utile ? Yes No
Évitez d’utiliser FILTER comme argument
de filtre
Article • 06/04/2023
En tant que modeleur de données, vous êtes fréquemment amené à écrire des
expressions DAX qui doivent être évaluées dans un contexte de filtre modifié. Par
exemple, vous pouvez écrire une définition de mesure pour calculer les ventes de
« produits à marge élevée ». Nous décrirons ce calcul plus loin dans cet article.
7 Notes
Cet article est particulièrement utile pour les calculs de modèle qui appliquent des
filtres aux tables d’importation.
DAX
Red Sales =
CALCULATE(
[Sales],
FILTER('Product', 'Product'[Color] = "Red")
)
La fonction CALCULATE accepte une expression de table retournée par la fonction DAX
FILTER, qui évalue son expression de filtre pour chaque ligne de la table Product. Elle
obtient le bon résultat, c’est-à-dire le résultat des ventes des produits de couleur rouge.
Toutefois, le résultat peut être obtenu plus efficacement à l’aide d’une expression
booléenne.
Voici une définition de mesure améliorée, qui utilise une expression booléenne au lieu
d’une expression de table. La fonction DAX KEEPFILTERS garantit que tous les filtres
existants appliqués à la colonne Couleur sont conservés et ne sont pas remplacés.
DAX
Red Sales =
CALCULATE(
[Sales],
KEEPFILTERS('Product'[Color] = "Red")
)
Cela signifie que vous devez utiliser des expressions de table lorsque les exigences de
filtre sont complexes.
Voyons maintenant une autre définition de mesure. L’exigence consiste à calculer les
ventes, mais uniquement pour les mois où l’entreprise a réalisé des bénéfices.
DAX
Dans cet exemple, vous pouvez utiliser une fonction FILTER. Ceci est dû au fait qu’il est
nécessaire d’évaluer la mesure Profit pour éliminer les mois où aucun bénéfice n’est
réalisé. Vous ne pouvez pas utiliser de mesure dans une expression booléenne quand
celle-ci est utilisée comme un argument de filtre.
Recommandations
Pour des performances optimales, il est recommandé d’utiliser des expressions
booléennes comme arguments de filtre chaque fois que cela vous est possible.
Par conséquent, vous ne devez utiliser les fonctions de filtre que lorsque cela est
nécessaire. Vous pouvez les utiliser pour effectuer des comparaisons de colonnes à filtre
complexe. Ces comparaisons de colonnes peuvent impliquer :
Mesures
D’autres colonnes
L’utilisation de la fonction DAX ou , ou de l’opérateur logique OR (||)
Voir aussi
Fonctions de filtrage (DAX)
Parcours d’apprentissage : Utiliser DAX dans Power BI Desktop
Des questions ? Essayez d’interroger la communauté Power BI
Vous avez des suggestions ? Envoyez-nous vos idées pour améliorer Power BI
Commentaires
Cette page a-t-elle été utile ? Yes No
Références de colonne et de mesure
Article • 06/04/2023
Parce qu’elles modélisent les données, vos expressions DAX référencent des colonnes et
des mesures de modèle. Les colonnes et les mesures sont toujours associées à des
tables de modèle, mais ces associations sont différentes. Nous avons donc des
recommandations différentes sur la façon de les référencer dans vos expressions.
Colonnes
Une colonne est un objet de niveau table et son nom doit être unique dans une table.
Vous pouvez donc avoir le même nom de colonne plusieurs fois dans votre modèle, à
condition que ces colonnes appartiennent à des tables différentes. Il existe une autre
règle : un nom de colonne ne peut pas être identique à un nom de mesure ou un nom
de hiérarchie qui existe dans la même table.
En général, DAX n’impose pas de référence complète à une colonne. Une référence
complète signifie que le nom de table précède le nom de colonne.
DAX
La même définition peut être réécrite avec des références de colonne complètes.
DAX
Vous devez parfois utiliser des références de colonne complètes quand Power BI détecte
une ambiguïté. Quand vous entrez une formule, un message d’erreur et un trait ondulé
rouge vous avertissent. Par ailleurs, certaines fonctions DAX, comme LOOKUPVALUE,
nécessitent l’utilisation de références de colonne complètes.
Il est recommandé de toujours utiliser des références de colonne complètes. Les raisons
sont fournies dans la section Recommandations.
Mesures
Une mesure est un objet de niveau modèle. Pour cette raison, les noms de mesure
doivent être uniques dans le modèle. Toutefois, dans le volet Champs, les auteurs de
rapports voient chaque mesure associée à une seule table de modèle. Cette association
est définie pour des raisons esthétiques, et vous pouvez la configurer en définissant la
propriété Table principale de la mesure. Pour plus d’informations, consultez Mesures
dans Power BI Desktop (Organisation de vos mesures).
Vous pouvez utiliser une référence de mesure complète dans vos expressions. La
fonctionnalité IntelliSense de DAX vous offre même la suggestion. Toutefois, ce n’est pas
nécessaire et ce n’est pas une pratique recommandée. Si vous changez la table
principale d’une mesure, toute expression qui utilise une référence de mesure complète
s’arrête. Vous devez ensuite modifier chaque formule rompue pour supprimer (ou
mettre à jour) la référence de mesure.
Recommandations
Nos recommandations sont simples et faciles à mémoriser :
Voici pourquoi :
Entrée de formule : Les expressions sont acceptées, car il n’y a pas de référence
ambiguë à résoudre. Par ailleurs, vous respectez les exigences de ces fonctions
DAX qui demandent des références de colonne complètes.
Robustesse : Les expressions continuent de fonctionner, même quand vous
changez la propriété de table principale d’une mesure.
Lisibilité : Les expressions sont rapides et faciles à comprendre : vous déterminez
rapidement s’il s’agit d’une colonne ou d’une mesure, selon que sa référence est
complète ou non.
Voir aussi
Parcours d’apprentissage : Utiliser DAX dans Power BI Desktop
Des questions ? Essayez d’interroger la communauté Power BI
Vous avez des suggestions ? Envoyez-nous vos idées pour améliorer Power BI
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonction DIVIDE ou opérateur de
division (/)
Article • 06/04/2023
En tant que modeleur de données, quand vous écrivez une expression DAX pour diviser
un numérateur par un dénominateur, vous pouvez choisir d’utiliser la fonction DIVIDE
ou l’opérateur de division (/, barre oblique).
Lorsque vous utilisez la fonction DIVIDE, vous devez passer les expressions de
numérateur et dénominateur. Si vous le souhaitez, vous pouvez passer une valeur qui
représente un autre résultat.
DAX
La fonction DIVIDE a été conçue pour gérer automatiquement les cas de division par
zéro. Si aucun autre résultat n’est passé et que le dénominateur a la valeur zéro ou
BLANK, la fonction retourne BLANK. Quand un autre résultat est passé, il est retourné à
la place de BLANK.
La fonction DIVIDE est pratique, car elle évite à votre expression d’avoir à commencer
par tester la valeur du dénominateur. La fonction est également mieux optimisée pour
tester la valeur de dénominateur que la fonction IF. Le gain de performance est
significatif, car la vérification de division par zéro est coûteuse. L’utilisation poussée de
DIVIDE produit une expression plus concise et plus fluide.
Exemple
L’expression de mesure suivante produit une division sans risque, mais elle implique
l’utilisation de quatre fonctions DAX.
DAX
Profit Margin =
IF(
OR(
ISBLANK([Sales]),
[Sales] == 0
),
BLANK(),
[Profit] / [Sales]
)
Cette expression de mesure aboutit au même résultat, mais de façon plus efficace et
fluide.
DAX
Profit Margin =
DIVIDE([Profit], [Sales])
Recommandations
Il est recommandé d’utiliser la fonction DIVIDE chaque fois que le dénominateur est une
expression qui peut retourner zéro ou BLANK.
Dans le cas où le dénominateur est une valeur constante, nous vous recommandons
d’utiliser l’opérateur de division. Dans ce cas, la réussite de la division est garantie et
votre expression est plus performante, car elle évite les tests inutiles.
Déterminez avec soin si la fonction DIVIDE doit retourner une autre valeur. Pour les
mesures, il est généralement préférable qu’elle retourne BLANK. Il est préférable de
retourner BLANK parce que les visuels de rapport éliminent par défaut les
regroupements quand les totalisations ont la valeur BLANK. Cela permet au visuel de
fixer son attention sur les groupes où il existe des données. Si nécessaire, dans Power BI,
vous pouvez configurer le visuel pour afficher tous les groupes (qui retournent des
valeurs ou BLANK) dans le contexte de filtre en activant l’option Afficher les éléments
sans données.
Voir aussi
Parcours d’apprentissage : Utiliser DAX dans Power BI Desktop
Des questions ? Essayez d’interroger la communauté Power BI
Vous avez des suggestions ? Envoyez-nous vos idées pour améliorer Power BI
Commentaires
Cette page a-t-elle été utile ? Yes No
Utiliser SELECTEDVALUE à la place de
VALUES
Article • 06/04/2023
En tant que modeleur de données, vous pouvez parfois avoir besoin d’écrire une
expression DAX qui teste si une colonne est filtrée par une valeur spécifique.
Dans les versions antérieures de DAX, cette condition a été remplie sans problème avec
un modèle impliquant trois fonctions DAX ; IF, HASONEVALUE et VALUES. La définition
de mesure suivante présente un exemple. Elle calcule le montant des taxes de vente,
mais uniquement pour les ventes effectuées auprès de clients australiens.
DAX
L’utilisation de HASONEVALUE est une technique défensive. Elle est nécessaire parce
qu’il est possible que plusieurs valeurs filtrent la colonne Country-Region. Dans ce cas,
la fonction VALUES retourne une table de plusieurs lignes. La comparaison d’une table
de plusieurs lignes à une valeur scalaire génère une erreur.
Recommandation
Il est recommandé d’utiliser la fonction SELECTEDVALUE. Elle permet d’obtenir le même
résultat que le modèle décrit dans cet article, mais de manière plus efficace et plus
élégante.
En utilisant la fonction SELECTEDVALUE, l’exemple de définition de mesure est
maintenant réécrit.
DAX
Conseil
Voir aussi
Parcours d’apprentissage : Utiliser DAX dans Power BI Desktop
Des questions ? Essayez d’interroger la communauté Power BI
Vous avez des suggestions ? Envoyez-nous vos idées pour améliorer Power BI
Commentaires
Cette page a-t-elle été utile ? Yes No
Utiliser COUNTROWS à la place de
COUNT
Article • 06/04/2023
En tant que modeleur de données, vous pouvez parfois avoir besoin d’écrire une
expression DAX qui compte les lignes de la table. La table peut être une table de
modèle ou une expression qui retourne une table.
Cette condition peut être remplie de deux manières. Vous pouvez utiliser la fonction
COUNT pour compter les valeurs de colonne ou vous pouvez utiliser la fonction
COUNTROWS pour compter les lignes de la table. Les deux fonctions aboutissent au
même résultat, dans la mesure où la colonne comptée ne contient pas de valeurs
BLANK.
DAX
Sales Orders =
COUNT(Sales[OrderDate])
Si la précision de la table Sales correspond à une seule ligne par commande et que la
colonne OrderDate ne contient pas de valeurs BLANK, alors la mesure retourne un
résultat correct.
DAX
Sales Orders =
COUNTROWS(Sales)
Il existe trois raisons pour lesquelles la deuxième définition de mesure est meilleure :
Recommandation
Lorsque vous avez l’intention de compter les lignes de la table, il est recommandé de
toujours utiliser la fonction COUNTROWS.
Voir aussi
Parcours d’apprentissage : Utiliser DAX dans Power BI Desktop
Des questions ? Essayez d’interroger la communauté Power BI
Vous avez des suggestions ? Envoyez-nous vos idées pour améliorer Power BI
Commentaires
Cette page a-t-elle été utile ? Yes No
Utiliser des variables pour améliorer vos
formules DAX
Article • 06/04/2023
L’utilisation de variables dans vos formules DAX peut vous aider à écrire des calculs plus
complexes et efficaces. Les variables peuvent améliorer les performances, la fiabilité et la
lisibilité, et réduire la complexité.
Dans cet article, nous allons démontrer les trois premiers avantages en utilisant un
exemple de mesure de la croissance des ventes année par année. (La formule de
croissance des ventes année par année est la période de vente moins les ventes de la
même période de l’année précédente, divisée par les ventes de la même période de
l’année précédente.)
DAX
DAX
La mesure continue à produire le résultat correct et le fait environ deux fois plus vite.
Améliorer la lisibilité
Dans la définition de mesure précédente, remarquez comme le choix du nom de la
variable rend l’expression RETURN plus simple à comprendre. L’expression est courte et
auto-descriptive.
Simplifier le débogage
Les variables peuvent également vous aider à déboguer une formule. Pour tester une
expression affectée à une variable, vous réécrivez provisoirement l’expression RETURN
pour générer la variable.
DAX
Réduire la complexité
Dans les versions antérieures de DAX, les variables n’étaient pas encore prises en charge.
Les expressions complexes qui ont introduit de nouveaux contextes de filtre devaient
utiliser les fonctions DAX EARLIER ou EARLIEST pour faire référence à des contextes de
filtre externes. Malheureusement, les modeleurs de données ont trouvé ces fonctions
difficiles à comprendre et à utiliser.
Les variables sont toujours évaluées en dehors des filtres que votre expression RETURN
applique. C’est pourquoi, lorsque vous utilisez une variable dans un contexte de filtre
modifié, elle obtient le même résultat que la fonction EARLIEST. L’utilisation des
fonctions EARLIER ou EARLIEST peut donc être évitée. Cela signifie que vous pouvez
désormais écrire des formules qui sont moins complexes et plus faciles à comprendre.
DAX
La définition de colonne calculée peut être améliorée à l’aide d’une variable au lieu de la
fonction EARLIER. La variable CurrentSubcategorySales stocke la valeur de la colonne
Subcategory Salesdans le contexte de ligne actuel, puis l’expression RETURN l’utilise
dans un contexte de filtre modifié.
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
Référence des fonctions DAX
Article • 20/10/2023
Les informations de référence sur les fonctions DAX fournissent des détails, notamment
la syntaxe, les paramètres, les valeurs de retour et les exemples pour chacune des plus
de 250 fonctions utilisées dans les formules DAX (Data Analysis Expression).
) Important
Toutes les fonctions DAX ne sont pas prises en charge ou incluses dans les versions
antérieures de Power BI Desktop, Analysis Services et Power Pivot dans Excel.
Fonctions d’agrégation – Ces fonctions calculent une valeur (scalaire) telle que count,
sum, average, minimum ou maximum pour toutes les lignes d’une colonne ou d’une
table, comme défini par l’expression.
Fonctions de date et heure – Ces fonctions DAX sont similaires aux fonctions de date et
heure dans Microsoft Excel. Toutefois, les fonctions DAX sont basées sur les types de
données datetime utilisés par Microsoft SQL Server.
Fonctions de filtre – Ces fonctions vous permettent de retourner des types de données
spécifiques, de rechercher des valeurs dans des tables associées et de filtrer les données
en fonction de valeurs associées. Les fonctions de recherche utilisent des tables et des
relations entre ces tables. Avec les fonctions de filtre, vous pouvez manipuler le contexte
des données pour créer des calculs dynamiques.
Fonctions financières – Ces fonctions s’utilisent dans des formules qui effectuent des
calculs financiers, par exemple pour connaître la valeur actuelle nette et le taux de
rendement.
Fonctions informatives – Ces fonctions examinent une table ou une colonne fournie
comme argument à une autre fonction et retournent des informations indiquant si la
valeur correspond au type attendu. Par exemple, la fonction ISERROR retourne TRUE si
la valeur que vous référencez contient une erreur.
Fonctions logiques – Ces fonctions retournent des informations sur les valeurs figurant
dans une expression. Par exemple, la fonction TRUE vous permet de savoir si une
expression que vous évaluez retourne une valeur TRUE.
Autres fonctions – Ces fonctions effectuent des actions uniques qui n’entrent dans
aucune des catégories définissant la plupart des autres fonctions.
Fonctions parents et enfants – Ces fonctions aident les utilisateurs à gérer des données
dans le cadre d’une hiérarchie parent/enfant dans leurs modèles de données.
Fonctions de relation – Ces fonctions permettent de gérer et d’utiliser les relations entre
les tables. Par exemple, vous pouvez spécifier une relation particulière à utiliser dans un
calcul.
Fonctions statistiques – Ces fonctions calculent des valeurs liées aux distributions
statistiques et à la probabilité, telles que l’écart type et le nombre de permutations.
Fonctions de texte – Ces fonctions vous permettent de retourner une partie d’une
chaîne, de rechercher du texte dans une chaîne ou de concaténer des valeurs de chaîne.
Des fonctions supplémentaires ont été conçues pour contrôler les formats des dates,
des heures et des nombres.
Fonctions d’intelligence temporelle – Ces fonctions vous permettent de créer des calculs
qui utilisent une connaissance intégrée des calendriers et des dates. En utilisant des
plages de dates et d’heures en association avec des agrégations ou des calculs, vous
pouvez générer des comparaisons significatives sur des périodes de temps comparables
pour les ventes, les stocks, etc.
Voir aussi
Informations de référence sur la syntaxe DAX
Référence des opérateurs DAX
Conventions de nommage des paramètres DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
Nouvelles fonctions DAX
Article • 20/10/2023
DAX est en permanence amélioré avec de nouvelles fonctions et capacités pour prendre
en charge de nouvelles fonctionnalités. De nouvelles fonctions et mises à jour sont
incluses dans les mises à jour des services, des applications et des outils qui, dans la
plupart des cas, sont mensuelles.
Tandis que des fonctions et capacités sont en permanence en cours de mise à jour,
seules les mises à jour qui présentent un changement visible et fonctionnel exposé aux
utilisateurs sont décrites dans la documentation. Sont indiquées ici les nouvelles
fonctions et mises à jour de fonctions existantes datant de l’année dernière.
) Important
Les fonctions ne sont pas toutes prises en charge dans toutes les versions de
Power BI Desktop, d’Analysis Services et de Power Pivot dans Excel. Les
fonctionnalités nouvelles et mises à jour sont généralement introduites dans Power
BI Desktop, puis incluses ultérieurement dans Analysis Services, Power Pivot dans
Excel et les outils.
Nouvelles fonctions
Fonction Month Description
MATCHBY Mai 2023 Définir les colonnes utilisées pour faire correspondre les
données et identifier la ligne actuelle, dans une
expression de fonction de fenêtre.
LINEST Février 2023 Utilise la méthode des moindres carrés pour calculer une
ligne droite qui correspond le mieux aux données
spécifiées.
LINESTX Février 2023 Utilise la méthode des moindres carrés pour calculer une
ligne droite qui correspond le mieux aux données
spécifiées. Les données sont le résultat des expressions
évaluées pour chaque ligne d’une table.
Fonction Month Description
INDEX Décembre 2022 Récupère une ligne à une position absolue, spécifiée par
le paramètre de position, dans la partition spécifiée triée
selon l’ordre spécifié ou sur l’axe spécifié.
DÉCALAGE Décembre 2022 Retourne une seule ligne qui est positionnée avant ou
après la ligne actuelle dans la même table, avec un
décalage donné.
ORDERBY Décembre 2022 Définit les colonnes qui déterminent l’ordre de tri dans
chacune des partitions d’une fonction de fenêtre.
WINDOW Décembre 2022 Retourne plusieurs lignes qui sont positionnées dans
l’intervalle donné.
TOCSV Novembre 2022 Retourne une table sous forme de chaîne au format CSV.
Cette fonction s’applique uniquement à Power BI
Desktop.
TOJSON Novembre 2022 Retourne une table sous forme de chaîne au format
JSON. Cette fonction s’applique uniquement à Power BI
Desktop.
NETWORKDAYS Juillet 2022 Renvoie le nombre de jours ouvrés entiers entre deux
dates.
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions d’agrégation
Article • 20/10/2023
Les fonctions d’agrégation calculent une valeur (scalaire) telle que count, sum, average,
minimum ou maximum pour toutes les lignes d’une colonne ou d’une table, comme
défini par l’expression.
Commentaires
Cette page a-t-elle été utile ? Yes No
APPROXIMATEDISTINCTCOUNT
Article • 20/10/2023
Retourne un nombre estimé de valeurs uniques dans une colonne. Cette fonction
appelle une opération d’agrégation correspondante dans la source de données, qui est
optimisée pour les performances des requêtes, mais avec une précision légèrement
moindre. Cette fonction peut être utilisée avec les sources de données suivantes : Azure
SQL, pool SQL dédiée Azure Synapse, BigQuery, Databricks et Snowflake. Cette fonction
nécessite le mode DirectQuery. Le mode d’importation et le mode de stockage double
ne sont pas pris en charge.
Syntaxe
DAX
APPROXIMATEDISTINCTCOUNT(<columnName>)
Paramètres
Terme Description
colonne Colonne contenant les valeurs à compter. Il ne peut pas s’agir d’une expression.
Valeur renvoyée
Nombre approximatif de valeurs distinctes dans une colonne.
Notes
Le seul argument de cette fonction est une colonne. Vous pouvez utiliser des colonnes
contenant n’importe quel type de données. Quand la fonction ne trouve aucune ligne à
compter, elle retourne une valeur BLANK ; sinon, elle retourne le nombre de valeurs
distinctes.
Commentaires
Cette page a-t-elle été utile ? Yes No
AVERAGE
Article • 20/10/2023
Syntaxe
DAX
AVERAGE(<column>)
Paramètres
Terme Définition
colonne Colonne contenant les nombres dont vous voulez obtenir la moyenne.
Valeur renvoyée
Retourne un nombre décimal qui représente la moyenne arithmétique des nombres de
la colonne.
Notes
Cette fonction prend la colonne spécifiée en tant qu’argument et trouve la
moyenne des valeurs de cette colonne. Si vous souhaitez trouver la moyenne d’une
expression qui prend la valeur d’un ensemble de nombres, utilisez plutôt la
fonction AVERAGEX.
Quand vous calculez la moyenne des cellules, vous devez garder à l’esprit la
différence entre une cellule vide et une cellule qui contient la valeur 0 (zéro).
Quand une cellule contient 0, elle est ajoutée à la somme des nombres et la ligne
est comptée dans le nombre de lignes utilisées comme diviseur. Toutefois,
lorsqu’une cellule contient un blanc, la ligne n’est pas comptée.
Quand il n’y a pas de lignes à agréger, la fonction retourne une valeur vide. En
revanche, s’il y a des lignes, mais qu’aucune d’entre elles ne répond aux critères
spécifiés, la fonction retourne 0. Excel retourne aussi un zéro si aucune ligne
répondant aux conditions n’est trouvée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule suivante retourne la moyenne des valeurs de la colonne
ExtendedSalesAmount dans la table InternetSales.
DAX
= AVERAGE(InternetSales[ExtendedSalesAmount])
Fonctions connexes
La fonction AVERAGEX peut prendre comme argument une expression qui est évaluée
pour chaque ligne d’une table. Cela vous permet d’effectuer des calculs, puis de prendre
la moyenne des valeurs calculées.
La fonction AVERAGEA prend une colonne comme argument, mais elle est semblable à
la fonction Excel du même nom. En utilisant la fonction AVERAGEA, vous pouvez calculer
une moyenne sur une colonne qui contient des valeurs vides.
Commentaires
Cette page a-t-elle été utile ? Yes No
AVERAGEA
Article • 20/10/2023
Retourne la moyenne (arithmétique) des valeurs d’une colonne. Gère les valeurs texte et
non numériques.
Syntaxe
DAX
AVERAGEA(<column>)
Paramètres
Terme Définition
colonne Colonne qui contient les valeurs dont vous voulez obtenir la moyenne.
Valeur de retour
Nombre décimal.
Remarques
La fonction AVERAGEA prend une colonne et calcule la moyenne des nombres
qu’elle contient, mais gère également les types de données non numériques
conformément aux règles suivantes :
Les valeurs TRUE comptent comme 1.
Les valeurs FALSE comptent comme 0 (zéro).
Les valeurs qui contiennent du texte non numérique comptent comme 0 (zéro).
Le texte vide ("") compte comme 0 (zéro).
Chaque fois qu’il n’existe aucune ligne à agréger, elle retourne un espace. En
revanche, s’il y a des lignes, mais qu’aucune d’entre elles ne répond aux critères
spécifiés, la fonction retourne 0. Microsoft Excel retourne aussi un zéro si aucune
ligne répondant aux conditions n’est trouvée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant retourne la moyenne des cellules non vides dans la colonne
référencée, selon le tableau suivant. Si vous avez utilisé la fonction AVERAGE, la
moyenne est 21/2 ; avec la fonction AVERAGEA, le résultat est 22/5.
DAX
= AVERAGEA([Amount])
Voir aussi
AVERAGE, fonction
AVERAGEX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
AVERAGEX
Article • 20/10/2023
Calcule la moyenne (arithmétique) d’un ensemble d’expressions évaluées sur une table.
Syntaxe
DAX
AVERAGEX(<table>,<expression>)
Paramètres
Terme Définition
tableau Nom d’une table ou expression qui spécifie la table sur laquelle l’agrégation peut
être effectuée.
expression Expression avec un résultat scalaire, qui sera évaluée pour chaque ligne de la table
spécifiée dans le premier argument.
Valeur de retour
Nombre décimal.
Remarques
La fonction AVERAGEX vous permet d’évaluer des expressions pour chaque ligne
d’une table, puis de calculer la moyenne arithmétique du jeu de valeurs obtenu. La
fonction utilise donc une table comme premier argument et une expression
comme deuxième argument.
Pour le reste, la fonction AVERAGEX suit les mêmes règles que la fonction
AVERAGE. Vous ne pouvez pas inclure des cellules non numériques ou Null. Les
arguments de table et d’expression sont requis.
Quand il n’existe aucune ligne à agréger, la fonction retourne une valeur vide. Si
des lignes sont présentes mais qu’aucune d’entre elles ne répond aux critères
spécifiés, la fonction retourne 0.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant calcule les frais de transport et de taxe moyens pour chaque
commande de la table InternetSales. Pour cela, la somme des valeurs Freight et TaxAmt
est calculée pour chaque ligne, puis la moyenne des sommes est établie.
DAX
Voir aussi
AVERAGE, fonction
AVERAGEA, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
COUNT
Article • 20/10/2023
Compte le nombre de lignes dans la colonne spécifiée qui contiennent des valeurs non
vides.
Syntaxe
DAX
COUNT(<column>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier.
Remarques
Le seul argument autorisé pour cette fonction est une colonne. La fonction COUNT
compte les lignes qui contiennent les types de valeurs suivants :
Nombres
Dates
Chaînes
Quand la fonction ne trouve aucune ligne à compter, elle retourne une valeur vide.
Les valeurs vides sont ignorées. Les valeurs TRUE/FALSE ne sont pas prises en
charge.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant montre comment compter le nombre de valeurs dans la colonne
ShipDate.
DAX
= COUNT([ShipDate])
Pour compter les valeurs logiques ou du texte, utilisez les fonctions COUNTA ou
COUNTAX.
Voir aussi
COUNTA, fonction
COUNTAX, fonction
COUNTX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
COUNTA
Article • 20/10/2023
Compte le nombre de lignes dans la colonne spécifiée qui contiennent des valeurs non
vides.
Syntaxe
DAX
COUNTA(<column>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier.
Remarques
Quand la fonction ne trouve aucune ligne à compter, la fonction retourne une
valeur vide.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant retourne toutes les lignes de la table Reseller pour lesquelles la
colonne des numéros de téléphone contient un type de données quelconque.
DAX
= COUNTA(Reseller[Phone])
Voir aussi
COUNT, fonction
COUNTAX, fonction
COUNTX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
COUNTAX
Article • 20/10/2023
La fonction COUNTAX compte les résultats non vides lors de l'évaluation du résultat
d'une expression sur une table. Autrement dit, elle fonctionne comme la fonction
COUNTA, mais est utilisée pour parcourir les lignes d’une table et compter les lignes où
les expressions spécifiées génèrent un résultat non vide.
Syntaxe
DAX
COUNTAX(<table>,<expression>)
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
Valeur de retour
Nombre entier.
Remarques
À l’instar de la fonction COUNTA, la fonction COUNTAX compte les cellules
contenant n’importe quel type d’informations, y compris d’autres expressions. Par
exemple, si la colonne contient une expression qui prend la valeur d’une chaîne
vide, la fonction COUNTAX traite ce résultat comme non vide. En règle générale, la
fonction COUNTAX ne compte pas les cellules vides mais, dans ce cas, la cellule
contient une formule et elle est donc comptée.
Chaque fois que la fonction ne trouve aucune ligne à agréger, elle retourne un
espace.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant compte le nombre de lignes non vides dans la colonne Phone à l’aide
de la table qui résulte du filtrage de la table Reseller sur [Status] = Active.
DAX
= COUNTAX(FILTER('Reseller',[Status]="Active"),[Phone])
Voir aussi
COUNT, fonction
COUNTA, fonction
COUNTX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
COUNTBLANK
Article • 20/10/2023
Syntaxe
DAX
COUNTBLANK(<column>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier. Si aucune ligne répondant à la condition n’est trouvée, des valeurs vides
sont retournées.
Remarques
Le seul argument autorisé pour cette fonction est une colonne. Vous pouvez
utiliser des colonnes contenant n’importe quel type de données, mais seules les
cellules vides sont comptées. Les cellules qui ont la valeur zéro (0) ne sont pas
comptées, car zéro est considéré comme une valeur numérique et non comme une
valeur vide.
Quand il n’y a pas de lignes à agréger, la fonction retourne une valeur vide. En
revanche, s’il y a des lignes, mais qu’aucune d’entre elles ne répond aux critères
spécifiés, la fonction retourne 0. Microsoft Excel retourne aussi zéro si aucune ligne
remplissant les conditions n’est trouvée.
Exemple
L’exemple suivant montre comment compter le nombre de lignes dans la table Reseller
où BankName présente des valeurs vides.
DAX
= COUNTBLANK(Reseller[BankName])
Pour compter les valeurs logiques ou du texte, utilisez les fonctions COUNTA ou
COUNTAX.
Voir aussi
COUNT, fonction
COUNTA, fonction
COUNTAX, fonction
COUNTX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
COUNTROWS
Article • 20/10/2023
Syntaxe
DAX
COUNTROWS([<table>])
Paramètres
Terme Définition
tableau (Facultatif) Nom de la table qui contient les lignes à compter, ou expression qui
retourne une table. Lorsqu’elle n’est pas fournie, la valeur par défaut est la table
principale de l’expression actuelle.
Valeur de retour
Nombre entier.
Remarques
Cette fonction peut être utilisée pour compter le nombre de lignes dans une table
de base, mais le plus souvent, elle est utilisée pour compter le nombre de lignes
obtenues après l’application d’un filtre ou d’un contexte à une table.
Quand il n’y a pas de lignes à agréger, la fonction retourne une valeur vide. En
revanche, s’il y a des lignes, mais qu’aucune d’entre elles ne répond aux critères
spécifiés, la fonction retourne 0. Microsoft Excel retourne aussi un zéro si aucune
ligne répondant aux conditions n’est trouvée.
Pour en savoir plus sur les meilleures pratiques lors de l’utilisation de COUNT et
COUNTROWS, consultez Utiliser COUNTROWS au lieu de Count dans DAX.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
L’exemple suivant montre comment compter le nombre de lignes dans la table Orders.
Le résultat attendu est 52761.
DAX
= COUNTROWS('Orders')
Exemple 2
L’exemple suivant montre comment utiliser COUNTROWS avec un contexte de ligne.
Dans ce scénario, il y a deux ensembles de données liés entre eux par le numéro de
commande. La table Reseller présente une ligne par revendeur ; la table ResellerSales
comporte plusieurs lignes pour chacune des commandes, chaque ligne correspondant à
une commande d’un revendeur particulier. Les tables sont connectées par une relation
établie sur la colonne ResellerKey.
DAX
= COUNTROWS(RELATEDTABLE(ResellerSales))
ResellerKey CalculatedColumn1
1 73
2 70
3 394
Voir aussi
COUNT, fonction
COUNTA, fonction
COUNTAX, fonction
COUNTX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
COUNTX
Article • 20/10/2023
Compte le nombre de lignes contenant une valeur non vide ou une expression qui
prend une valeur non vide quand une expression est évaluée sur une table.
Syntaxe
DAX
COUNTX(<table>,<expression>)
Paramètres
Terme Définition
expression Expression qui retourne le jeu de valeurs qui contient les valeurs que vous souhaitez
compter.
Valeur de retour
Entier.
Remarques
La fonction COUNTX utilise deux arguments. Le premier argument doit toujours
être une table ou toute expression qui retourne une table. Le deuxième argument
est la colonne ou l’expression recherchée par la fonction COUNTX.
La fonction COUNTX compte uniquement les valeurs, les dates et les chaînes. Si la
fonction ne trouve aucune ligne à compter, elle retourne une valeur vide.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
La formule suivante retourne le nombre total de lignes de la table Product contenant un
prix catalogue.
DAX
= COUNTX(Product,[ListPrice])
Exemple 2
La formule suivante montre comment transmettre une table filtrée à la fonction
COUNTX pour le premier argument. La formule utilise une expression de filtre pour
obtenir uniquement les lignes de la table Product qui remplissent la condition
ProductSubCategory = "Caps", puis elle compte les lignes de la table obtenue qui
contiennent un prix catalogue. L’expression FILTER s’applique à la table Products mais
utilise une valeur que vous recherchez dans la table associée, ProductSubCategory.
DAX
=
COUNTX(FILTER(Product,RELATED(ProductSubcategory[EnglishProductSubcategoryNa
me])="Caps"), Product[ListPrice])
Voir aussi
COUNT, fonction
COUNTA, fonction
COUNTAX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
DISTINCTCOUNT
Article • 20/10/2023
Syntaxe
DAX
DISTINCTCOUNT(<column>)
Paramètres
Terme Description
Valeur de retour
Nombre de valeurs distinctes contenues dans column.
Remarques
Le seul argument autorisé pour cette fonction est une colonne. Vous pouvez
utiliser des colonnes contenant n’importe quel type de données. Quand la fonction
ne trouve aucune ligne à compter, elle retourne une valeur BLANK ; sinon, elle
retourne le nombre de valeurs distinctes.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant montre comment compter le nombre de commandes client distinctes
dans la colonne ResellerSales_USD[SalesOrderNumber].
DAX
= DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber])
En utilisant la mesure ci-dessus dans une table avec l’année civile sur le côté et la
catégorie de produit en haut, les résultats suivants sont retournés :
1 1
Dans l’exemple ci-dessus, notez que les valeurs des lignes Total général ne
s’additionnent pas ; cela est dû au fait que la même commande peut contenir des
articles, dans le même ordre, de catégories de produits distinctes.
Voir aussi
COUNT, fonction
COUNTA, fonction
COUNTAX, fonction
COUNTX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
DISTINCTCOUNTNOBLANK
Article • 20/10/2023
Syntaxe
DAX
DISTINCTCOUNTNOBLANK (<column>)
Paramètres
Terme Description
Valeur de retour
Nombre de valeurs distinctes contenues dans column.
Remarques
Contrairement à la fonction DISTINCTCOUNT, DISTINCTCOUNTNOBLANK ne
compte pas la valeur BLANK.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant montre comment compter le nombre de commandes client distinctes
dans la colonne ResellerSales_USD[SalesOrderNumber].
DAX
= DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber])
Requête DAX
DAX
EVALUATE
ROW(
"DistinctCountNoBlank", DISTINCTCOUNTNOBLANK(DimProduct[EndDate]),
"DistinctCount", DISTINCTCOUNT(DimProduct[EndDate])
)
[DistinctCountNoBlank] [DistinctCount]
2 3
Voir aussi
DISTINCTCOUNT
Commentaires
Cette page a-t-elle été utile ? Yes No
MAX
Article • 20/10/2023
Retourne la plus grande valeur d’une colonne ou entre deux expressions scalaires.
Syntaxe
DAX
MAX(<column>)
DAX
MAX(<expression1>, <expression2>)
Paramètres
Terme Définition
colonne Colonne dans laquelle vous voulez rechercher la plus grande valeur.
Valeur renvoyée
Valeur la plus grande.
Remarques
Quand deux expressions sont comparées, un blanc (blank) est traité comme 0 lors
de la comparaison. Autrement dit, Max(1,Blank() ) retourne 1, tandis que Max(-1,
Blank() ) retourne 0. Si les deux arguments sont vides, MAX retourne un blanc. Si
l’une des expressions retourne une valeur qui n’est pas autorisée, MAX retourne
une erreur.
Les valeurs TRUE/FALSE ne sont pas prises en charge. Si vous souhaitez évaluer une
colonne de valeurs TRUE/FALSE, utilisez la fonction MAXA.
Exemple 1
L’exemple suivant retourne la plus grande valeur trouvée dans la colonne
ExtendedAmount de la table InternetSales.
DAX
= MAX(InternetSales[ExtendedAmount])
Exemple 2
L’exemple suivant retourne la plus grande valeur du résultat de deux expressions.
DAX
= Max([TotalSales], [TotalPurchases])
Voir aussi
MAXA, fonction
MAXX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
MAXA
Article • 20/10/2023
Syntaxe
DAX
MAXA(<column>)
Paramètres
Terme Définition
colonne Colonne dans laquelle vous voulez rechercher la plus grande valeur.
Valeur de retour
Valeur la plus grande.
Remarques
La fonction MAXA prend comme argument une colonne et recherche la plus
grande valeur parmi les types de valeurs suivants :
Nombres
Dates
Valeurs logiques, telles que TRUE et FALSE. Les lignes qui équivalent à TRUE
comptent pour 1. Les lignes qui équivalent à FALSE comptent pour 0 (zéro).
Les cellules vides sont ignorées. Si la colonne ne contient aucune valeur pouvant
être utilisée, MAXA retourne 0 (zéro).
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
L’exemple suivant retourne la plus grande valeur d’une colonne calculée, nommée
ResellerMargin, qui calcule la différence entre le prix catalogue et le prix revendeur.
DAX
= MAXA([ResellerMargin])
Exemple 2
L’exemple suivant retourne la plus grande valeur d’une colonne qui contient des dates
et des heures. Par conséquent, cette formule obtient la date de transaction la plus
récente.
DAX
= MAXA([TransactionDate])
Voir aussi
MAX, fonction
MAXX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
MAXX
Article • 20/10/2023
Renvoie la valeur la plus élevée résultant de l’évaluation d’une expression pour chaque
ligne d’une table.
Syntaxe
DAX
MAXX(<table>,<expression>,[<variant>])
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
variant (Facultatif) Si VRAI, et s’il y a des variantes ou des types de valeurs mixtes, la valeur la
plus élevée basée sur TRIER PAR DESC est renvoyée.
Valeur retournée
Valeur la plus élevée.
Remarques
L’argument table de la fonction MAXX peut être un nom de table ou une
expression qui correspond à une table. Le deuxième argument indique l’expression
à évaluer pour chaque ligne de la table.
Les valeurs vides sont ignorées. Les valeurs TRUE/FALSE ne sont pas prises en
charge.
Si l’expression comporte des variantes ou des types de valeurs mixtes tels que du
texte et des nombres, MAXX ne prend en compte par défaut que les nombres. Si
<variant> = TRUE , la valeur maximale est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
La formule suivante utilise une expression comme deuxième argument pour calculer le
montant total des taxes et des frais d’expédition pour chaque commande de la table
InternetSales. Le résultat attendu est 375,7184.
DAX
Exemple 2
La formule suivante filtre d’abord la table InternetSales à l’aide d’une expression FILTER
afin de retourner un sous-ensemble de commandes pour une région de vente
spécifique, définie comme suit : [SalesTerritory] = 5. La fonction MAXX évalue ensuite
l’expression utilisée comme deuxième argument pour chaque ligne de la table filtrée et
retourne le montant des taxes et des frais d’expédition le plus élevé pour ces
commandes. Le résultat attendu est 250,3724.
DAX
= MAXX(FILTER(InternetSales,[SalesTerritoryCode]="5"),
InternetSales[TaxAmt]+ InternetSales[Freight])
Voir aussi
MAX, fonction
MAXA, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
MIN
Article • 20/10/2023
Retourne la plus petite valeur d’une colonne ou entre deux expressions scalaires.
Syntaxe
DAX
MIN(<column>)
DAX
MIN(<expression1>, <expression2>)
Paramètres
Terme Définition
colonne Colonne dans laquelle vous voulez trouver la plus petite valeur numérique.
Valeur renvoyée
La plus petite valeur.
Remarques
La fonction MIN prend une colonne ou deux expressions comme argument et
retourne la plus petite valeur. Les types de valeurs suivants dans les colonnes sont
comptabilisés :
Nombres
Textes
Dates
Espaces
Les valeurs TRUE/FALSE ne sont pas prises en charge. Si vous souhaitez évaluer une
colonne de valeurs TRUE/FALSE, utilisez la fonction MINA.
Exemple 1
L’exemple suivant retourne la plus petite valeur de la colonne calculée, ResellerMargin.
DAX
= MIN([ResellerMargin])
Exemple 2
L’exemple suivant retourne la plus petite valeur d’une colonne qui contient des dates et
des heures, TransactionDate. Par conséquent, cette formule retourne la date la plus
ancienne.
DAX
= MIN([TransactionDate])
Exemple 3
L’exemple suivant retourne la plus petite valeur du résultat de deux expressions
scalaires.
DAX
= Min([TotalSales], [TotalPurchases])
Voir aussi
MINA, fonction
MINX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
MINA
Article • 20/10/2023
Syntaxe
DAX
MINA(<column>)
Paramètres
Terme Définition
Valeur de retour
La plus petite valeur.
Remarques
La fonction MINA prend comme argument une colonne qui contient des nombres
et détermine la plus petite valeur comme suit :
Si la colonne ne contient aucune valeur, MINA retourne 0 (zéro).
Les lignes de la colonne qui donne des valeurs logiques, comme TRUE et FALSE,
sont traitées comme égales à 1 si TRUE et à 0 (zéro) si FALSE.
Les cellules vides sont ignorées.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
L’expression suivante retourne les frais de transport minimaux de la table InternetSales.
DAX
= MINA(InternetSales[Freight])
Exemple 2
L’expression suivante retourne la valeur minimale dans la colonne PostalCode. Étant
donné que le type de données de la colonne est texte, la fonction ne trouve aucune
valeur et la formule retourne zéro (0).
DAX
= MINA([PostalCode])
Voir aussi
MIN, fonction
MINX, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
MINX
Article • 20/10/2023
Renvoie la valeur la plus basse résultant de l'évaluation d'une expression pour chaque
ligne d'un tableau.
Syntaxe
DAX
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
variant (Facultatif) Si VRAI, et s'il y a des variantes ou des types de valeurs mixtes, la valeur la
plus basse basée sur TRIER PAR ASC est renvoyée.
Valeur retournée
Valeur la plus basse.
Remarques
La fonction MINX prend comme premier argument une table ou une expression
qui retourne une table. Le deuxième argument contient l’expression à évaluer pour
chaque ligne de la table.
Les valeurs vides sont ignorées. Les valeurs TRUE/FALSE ne sont pas prises en
charge.
Si l'expression comporte des variantes ou des types de valeurs mixtes tels que du
texte et des nombres, MINX ne prend en compte par défaut que les nombres. Si
<variant> = TRUE , la valeur minimale est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
L'exemple suivant filtre la table InternetSales et ne renvoie que les lignes correspondant
à un territoire de vente spécifique. La formule trouve ensuite la valeur minimale dans la
colonne Fret.
DAX
Exemple 2
L’exemple suivant utilise la même table filtrée que dans l’exemple précédent, mais au
lieu de rechercher simplement des valeurs dans la colonne pour chaque ligne de la table
filtrée, la fonction calcule la somme de deux colonnes, Freight et TaxAmt, et retourne la
valeur la plus petite résultant de ce calcul.
DAX
Dans le premier exemple, les noms des colonnes ne sont pas qualifiés. Dans le second
exemple, les noms des colonnes sont complets.
Voir aussi
MIN, fonction
MINA, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
PRODUIT
Article • 20/10/2023
Syntaxe
DAX
PRODUCT(<column>)
Paramètres
Terme Définition
Colonne Colonne qui contient les nombres dont le produit doit être calculé.
Valeur renvoyée
Nombre décimal.
Notes
Pour retourner le produit d’une expression évaluée pour chaque ligne d’une table,
utilisez la fonction PRODUCTX.
Seuls les nombres de la colonne sont comptés. Les valeurs vides, les valeurs
logiques et le texte sont ignorés. Par exemple,
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Le code suivant calcule le produit de la colonne AdjustedRates dans une table Annuity :
DAX
= PRODUCT( Annuity[AdjustedRates] )
Voir aussi
PRODUCTX
Commentaires
Cette page a-t-elle été utile ? Yes No
PRODUCTX
Article • 20/10/2023
Retourne le produit d’une expression évaluée pour chaque ligne d’une table.
Syntaxe
DAX
PRODUCTX(<table>, <expression>)
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
Valeur renvoyée
Nombre décimal.
Notes
Pour retourner le produit des nombres d’une colonne, utilisez PRODUCT.
Seuls les nombres de la colonne sont comptés. Les valeurs vides, les valeurs
logiques et le texte sont ignorés.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant calcule la valeur capitalisée d’un investissement :
DAX
Voir aussi
PRODUCT
Commentaires
Cette page a-t-elle été utile ? Yes No
SUM
Article • 20/10/2023
Syntaxe
DAX
SUM(<column>)
Paramètres
Terme Définition
Valeur renvoyée
Nombre décimal.
Notes
Si vous souhaitez filtrer les valeurs que vous additionnez, vous pouvez utiliser la fonction
SUMX et spécifier une expression à additionner.
Exemple
L’exemple suivant additionne tous les nombres contenus dans la colonne Amt de la
table Sales.
DAX
= SUM(Sales[Amt])
Voir aussi
SUMX
Commentaires
Cette page a-t-elle été utile ? Yes No
SUMX
Article • 20/10/2023
Retourne la somme d’une expression évaluée pour chaque ligne d’une table.
Syntaxe
DAX
SUMX(<table>, <expression>)
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
Valeur renvoyée
Nombre décimal.
Remarques
La fonction SUMX prend comme premier argument une table ou une expression
qui retourne une table. Le deuxième argument est une colonne qui contient les
nombres dont vous voulez calculer la somme ou une expression correspondant à
une colonne.
Seuls les nombres de la colonne sont comptés. Les valeurs vides, les valeurs
logiques et le texte sont ignorés.
Pour obtenir des exemples plus complexes de SUMX dans les formules, consultez
ALL et CALCULATETABLE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L'exemple suivant filtre d'abord la table InternetSales sur l'expression
'InternetSales[SalesTerritoryID] = 5`, puis renvoie la somme de toutes les valeurs de la
colonne Freight. En d’autres termes, l’expression retourne la somme des frais de
transport uniquement pour le secteur de vente spécifié.
DAX
= SUMX(FILTER(InternetSales, InternetSales[SalesTerritoryID]=5),[Freight])
Si vous n’avez pas besoin de filtrer la colonne, utilisez la fonction SUM. Cette fonction
est similaire à la fonction SUM dans Excel. Cependant, elle prend une colonne comme
référence.
Voir aussi
SUM
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions de date et heure
Article • 20/10/2023
Ces fonctions vous aident à créer des calculs basés sur les dates et l’heure. La plupart
des fonctions de DAX sont similaires aux fonctions de date et d’heure d’Excel. Toutefois,
les fonctions DAX utilisent un type de données datetime et peuvent prendre des valeurs
d’une colonne en tant qu’argument.
CALENDAR Retourne une table avec une seule colonne nommée « Date » qui contient un
ensemble de dates contigu.
CALENDARAUTO Retourne une table avec une seule colonne nommée « Date » qui contient un
ensemble de dates contigu.
DATEVALUE Convertit une date au format texte en une date au format datetime.
EDATE Retourne la date qui correspond au nombre de mois indiqué avant ou après la
date de début.
EOMONTH Retourne la date au format datetime du dernier jour du mois avant ou après
un nombre de mois spécifié.
HOUR Retourne l’heure sous la forme d’un nombre compris entre 0 (00:00) et 23
(23:00).
MINUTE Retourne la minute sous la forme d’un nombre compris entre 0 et 59, à partir
d’une valeur de date et d’heure.
MONTH Retourne le mois sous la forme d’un nombre compris entre 1 (janvier) et 12
(décembre).
SECOND Retourne les secondes d’une valeur d’heure, sous la forme d’un nombre
compris entre 0 et 59.
TIME Convertit les heures, minutes et secondes données sous forme de nombres en
heure au format datetime.
TIMEVALUE Convertit une heure au format texte en une heure au format datetime.
YEAR Retourne l’année d’une date sous forme d’un entier à quatre chiffres compris
dans la plage 1900-9999.
YEARFRAC Calcule la fraction de l’année représentée par le nombre de jours entiers entre
deux dates.
Commentaires
Cette page a-t-elle été utile ? Yes No
CALENDAR
Article • 20/10/2023
Retourne une table avec une seule colonne nommée « Date » qui contient un ensemble
de dates contigu. La plage de dates est la période allant de la date de début spécifiée à
la date de fin spécifiée, incluses.
Syntaxe
DAX
CALENDAR(<start_date>, <end_date>)
Paramètres
Terme Définition
Valeur de retour
Retourne une table avec une seule colonne nommée « Date » qui contient un ensemble
de dates contigu. La plage de dates est la période allant de la date de début spécifiée à
la date de fin spécifiée, incluses.
Remarques
Une erreur est retournée si la date start_date est postérieure à la date end_date.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
La formule suivante renvoie un tableau avec des dates comprises entre le
1er janvier 2015 et le 31 décembre 2021.
DAX
Pour un modèle de données qui inclut des données de ventes réelles et des prévisions
de ventes futures, l'expression suivante renvoie une table de dates couvrant la plage de
dates dans les tables Ventes et Prévision.
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
CALENDARAUTO
Article • 20/10/2023
Retourne une table avec une seule colonne nommée « Date » qui contient un ensemble
de dates contigu. La plage de dates est calculée automatiquement en fonction des
données du modèle.
Syntaxe
DAX
CALENDARAUTO([fiscal_year_end_month])
Paramètres
Terme Définition
fiscal_year_end_month Toute expression DAX qui retourne un entier compris entre 1 et 12. En
cas d’omission, la valeur par défaut est celle spécifiée dans le modèle de
table de calendrier de l’utilisateur actuel (le cas échéant) ; sinon, la valeur
par défaut est 12.
Valeur de retour
Retourne une table avec une seule colonne nommée « Date » qui contient un ensemble
de dates contigu. La plage de dates est calculée automatiquement en fonction des
données du modèle.
Remarques
La plage de dates est calculée comme suit :
La première date du modèle qui n’est pas dans une colonne ou une table
calculée est considérée comme MinDate.
La dernière date du modèle qui n’est pas dans une colonne ou une table
calculée est considérée comme MaxDate.
La plage de dates retournée est comprise entre le début de l’exercice fiscal
associé à MinDate et la fin de l’exercice fiscal associé à MaxDate.
Une erreur est retournée si le modèle ne contient pas de valeurs DateHeure qui ne
sont pas dans des colonnes calculées ou des tables calculées.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Dans cet exemple, les informations MinDate et MaxDate dans le modèle de données
sont le 1er juillet 2010 et le 30 juin 2011.
CALENDARAUTO() retourne toutes les dates comprises entre le 1er janvier 2010 et le
31 décembre 2011.
CALENDARAUTO(3) retourne toutes les dates comprises entre le 1er avril 2010 et le
31 mars 2012.
Commentaires
Cette page a-t-elle été utile ? Yes No
DATE
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
La valeur de l’argument year peut inclure d’un à quatre chiffres. L’argument year est
interprété en fonction du système de date utilisé par votre ordinateur.
Pour les valeurs supérieures à 9 999 ou inférieures à zéro (valeurs négatives), la fonction
retourne une erreur #VALUE!.
Si la valeur de year est comprise entre 0 et 1899, elle est ajoutée à 1900 pour générer la
valeur finale. Considérons les exemples ci-dessous. Remarque : Vous devez utiliser
quatre chiffres pour l’argument year chaque fois que possible pour éviter des résultats
indésirables. Par exemple, l’utilisation de 07 retourne 1907 comme valeur de year.
Les entiers négatifs ne sont pas pris en charge. Les valeurs valides sont comprises entre 1
et 12.
Si vous entrez un entier supérieur à 12, le calcul suivant est effectué : la date est calculée
en ajoutant la valeur de month à year. Par exemple, la formule DATE( 2008, 18, 1)
Terme Définition
retourne une valeur datetime équivalente au 1er juin 2009, car 18 mois sont ajoutés au
début de 2008, ce qui équivaut à juin 2009. Voir les exemples ci-dessous.
Les entiers négatifs ne sont pas pris en charge. Les valeurs valides sont comprises entre 1
et 31.
Si day est un nombre compris entre 1 et le dernier jour du mois donné, il représente un
jour du mois.
Si vous entrez un entier supérieur au dernier jour du mois donné, le calcul suivant est
effectué : la date est calculée en ajoutant la valeur de day à month. Par exemple, dans la
formule DATE( 2008, 3, 32) , la fonction DATE retourne une valeur datetime équivalente
au 1er avril 2008, car 32 jours sont ajoutés au début du mois de mars, ce qui équivaut au
1er avril.
Si day contient une partie décimale, la valeur est arrondie à l’entier le plus proche.
Valeur renvoyée
Retourne la date spécifiée (datetime).
Notes
La fonction DATE prend les entiers entrés comme arguments et génère la date
correspondante. La fonction DATE est particulièrement utile dans les situations où
l’année, le mois et le jour sont fournis par des formules. Par exemple, les données
sous-jacentes peuvent contenir des dates dans un format qui n’est pas reconnu
comme une date, tel que AAAAMMJJ. Vous pouvez utiliser la fonction DATE
conjointement à d’autres fonctions pour convertir les dates en un nombre pouvant
être reconnu comme une date.
Contrairement à Microsoft Excel, qui stocke les dates en tant que nombres
ordinaux, les fonctions de date DAX retournent toujours un type de données
datetime. Toutefois, vous pouvez utiliser la mise en forme pour afficher les dates
en tant que nombres ordinaux si vous le souhaitez.
Les valeurs Date et DateHeure peuvent également être spécifiées en tant que
littéral au format dt"YYYY-MM-DD" , dt"YYYY-MM-DDThh:mm:ss" ou dt"YYYY-MM-DD
hh:mm:ss" . Quand elle est spécifiée en tant que littéral, il n’est pas nécessaire
d’utiliser la fonction DATE dans l’expression. Pour en savoir plus, consultez Syntaxe
DAX | Date et heure.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Date simple
La formule suivante retourne la date du 8 juillet 2009 :
DAX
= DATE(2009,7,8)
DAX
= DATE(08,1,2)
DAX
= DATE(2008,1,2)
Mois
Si la valeur month est supérieure à 12, month ajoute ce nombre de mois au premier
mois de l’année spécifiée. La formule suivante retourne la date du 2 février 2009 :
DAX
= DATE(2008,14,2)
Jours
Si la valeur day est supérieure au nombre de jours du mois spécifié, day ajoute ce
nombre de jours au premier jour du mois. La formule suivante retourne la date du
4 février 2008 :
DAX
= DATE(2008,1,35)
Voir aussi
Fonctions de date et heure
DAY, fonction
TODAY, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
DATEDIFF
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Intervalle Intervalle à utiliser durant la comparaison de dates. Il peut s'agir de l'une des valeurs
suivantes :
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
Valeur renvoyée
Le nombre de limites d'intervalle entre deux dates.
Remarques
Un résultat positif est renvoyé si Date2 est supérieur à Date1. Un résultat négatif est
renvoyé si Date1 est supérieur à Date2.
Exemple
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
EVALUATE
VAR StartDate = DATE ( 2019, 07, 01 )
VAR EndDate = DATE ( 2021, 12, 31 )
RETURN
{
( "Year", DATEDIFF ( StartDate, EndDate, YEAR ) ),
( "Quarter", DATEDIFF ( StartDate, EndDate, QUARTER ) ),
( "Month", DATEDIFF ( StartDate, EndDate, MONTH ) ),
( "Week", DATEDIFF ( StartDate, EndDate, WEEK ) ),
( "Day", DATEDIFF ( StartDate, EndDate, DAY ) )
}
Value1 Value2
Year 2
Quarter (Trimestre) 9
Month 29
Semaine 130
Jour 914
Commentaires
Cette page a-t-elle été utile ? Yes No
DATEVALUE
Article • 20/10/2023
Syntaxe
DAX
DATEVALUE(date_text)
Paramètres
Terme Définition
Notes
Lors de la conversion, DATEVALUE utilise les paramètres régionaux, ainsi que les
paramètres de date et d’heure du modèle pour déterminer une valeur de date. Si
les paramètres de date/heure du modèle représentent des dates au format
mois/jour/année, la chaîne « 1/8/2009 » est convertie en valeur DateHeure
correspondant au 8 janvier 2009. Cependant, si les paramètres de date/heure du
modèle représentent des dates au format jour/mois/année, cette chaîne est
convertie en valeur DateHeure correspondant au 1er août 2009.
Les valeurs Date et DateHeure peuvent également être spécifiées en tant que
littéral au format dt"YYYY-MM-DD" , dt"YYYY-MM-DDThh:mm:ss" ou dt"YYYY-MM-DD
hh:mm:ss" . Quand elle est spécifiée en tant que littéral, il n’est pas nécessaire
Exemple
L’exemple suivant retourne une valeur DateHeure différente selon les paramètres
régionaux du modèle et les paramètres d’affichage de date/heure.
DAX
= DATEVALUE("8/1/2009")
Voir aussi
Fonctions de date et heure
Commentaires
Cette page a-t-elle été utile ? Yes No
DAY
Article • 20/10/2023
Syntaxe
DAX
DAY(<date>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier indiquant le jour du mois.
Remarques
La fonction DAY prend comme argument la date du jour que vous recherchez.
Vous pouvez spécifier des dates dans la fonction à l’aide d’une autre fonction de
date, en utilisant une expression qui retourne une date ou en tapant une date au
format DateHeure. Vous pouvez également taper une date en respectant l’un des
formats de chaîne acceptés pour les dates.
Les valeurs retournées par les fonctions YEAR, MONTH et DAY sont des valeurs
grégoriennes, quel que soit le format d’affichage de la valeur de date fournie. Par
exemple, si le format d’affichage de la date fournie est basé sur le calendrier
hégirien, les valeurs retournées par les fonctions YEAR, MONTH et DAY sont
associées à la date grégorienne équivalente.
DAX
= DAY([Birthdate])
DAX
= DAY("3-4-1007")
= DAY("March 4 2007")
DAX
= IF( DAY([SalesDate])=10,"promotion","")
Voir aussi
Fonctions de date et heure
TODAY, fonction
DATE, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
EDATE
Article • 20/10/2023
Retourne la date qui correspond au nombre de mois indiqué avant ou après la date de
début. Utilisez EDATE pour calculer les dates d’échéance correspondant au même jour
du mois que la date d’émission.
Syntaxe
DAX
EDATE(<start_date>, <months>)
Paramètres
Terme Définition
Valeur de retour
Date (DateHeure).
Remarques
Contrairement à Microsoft Excel, qui stocke les dates comme des numéros de série
séquentiels, DAX utilise les dates au format DateHeure. Les dates stockées dans
d’autres formats sont converties implicitement.
Si start_date n’est pas une date valide, la fonction EDATE retourne une erreur.
Assurez-vous que la référence de colonne ou la date que vous spécifiez comme
premier argument est une date.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant retourne la date trois mois après la date de commande, qui est
stockée dans la colonne [TransactionDate].
DAX
= EDATE([TransactionDate],3)
Voir aussi
EOMONTH, fonction
Fonctions de date et heure
Commentaires
Cette page a-t-elle été utile ? Yes No
EOMONTH
Article • 20/10/2023
Retourne la date au format datetime du dernier jour du mois avant ou après un nombre
de mois spécifié. Utilisez EOMONTH pour calculer les dates d’échéance qui se situent le
dernier jour du mois.
Syntaxe
DAX
EOMONTH(<start_date>, <months>)
Paramètres
Terme Définition
start_date Date de début au format datetime ou dans une représentation textuelle acceptée
d’une date.
Valeur de retour
Date (DateHeure).
Remarques
Contrairement à Microsoft Excel, qui stocke les dates comme des numéros de série
séquentiels, DAX utilise les dates au format DateHeure. La fonction EOMONTH
peut accepter des dates sous d’autres formats, avec les restrictions suivantes :
Si start_date n’est pas une date valide, EOMONTH retourne une erreur.
Si start_date est une valeur numérique qui n’est pas au format datetime,
EOMONTH convertit le nombre en une date. Pour éviter des résultats inattendus,
convertissez le nombre au format datetime avant d’utiliser la fonction EOMONTH.
Si start_date avec months génère une date non valide, EOMONTH retourne une
erreur. Les dates antérieures au 1er mars 1900 et postérieures au 31 décembre
9999 ne sont pas valides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’expression suivante retourne le 31 mai 2008, car l’argument months est arrondi à 2.
DAX
= EOMONTH("March 3, 2008",1.5)
Voir aussi
EDATE, fonction
Fonctions de date et heure
Commentaires
Cette page a-t-elle été utile ? Yes No
HOUR
Article • 20/10/2023
Retourne l’heure sous la forme d’un nombre compris entre 0 (00:00) et 23 (23:00).
Syntaxe
DAX
HOUR(<datetime>)
Paramètres
Terme Définition
Valeur renvoyée
Nombre entier compris entre 0 et 23.
Notes
La fonction HOUR prend comme argument l’heure qui contient l’heure que vous
voulez rechercher. Vous pouvez fournir l’heure en utilisant une fonction
date/heure, une expression qui retourne un datetimeou en tapant directement la
valeur dans l’un des formats d’heure acceptés. Vous pouvez aussi entrer les heures
sous la forme d’une représentation textuelle acceptée d’une heure.
Exemple 1
L’exemple suivant retourne l’heure de la colonne TransactionTime d’une table nommée
Orders.
DAX
= HOUR('Orders'[TransactionTime])
Exemple 2
L’exemple suivant retourne 15, c’est-à-dire l’heure correspondant à 3 PM dans un
format 24 heures. La valeur texte est automatiquement analysée et convertie en valeur
date/heure.
DAX
Voir aussi
Fonctions de date et heure
MINUTE, fonction
YEAR, fonction
SECOND, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
MINUTE
Article • 20/10/2023
Retourne la minute sous forme de nombre compris entre 0 et 59, à partir d’une valeur
de date et d’heure.
Syntaxe
DAX
MINUTE(<datetime>)
Paramètres
Terme Définition
datetime Valeur datetime ou texte dans un format d’heure accepté, par exemple 16:48:00 ou
4:48 PM.
Valeur de retour
Nombre entier compris entre 0 et 59.
Remarques
Contrairement à Microsoft Excel, qui stocke les dates et les heures dans un format
numérique de série, DAX utilise un type de données datetime pour les dates et les
heures. Vous pouvez fournir la valeur datetime à la fonction MINUTE en
référençant une colonne qui stocke des dates et des heures, à l’aide d’une fonction
date/time ou en utilisant une expression qui retourne une date et une heure.
DAX
= MINUTE(Orders[TransactionTime])
Exemple 2
L’exemple suivant retourne 45, ce qui correspond au nombre de minutes dans l’heure
1:45 PM.
DAX
Voir aussi
Fonctions de date et heure
HOUR, fonction
YEAR, fonction
SECOND, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
MONTH
Article • 20/10/2023
Retourne le mois sous la forme d’un nombre compris entre 1 (janvier) et 12 (décembre).
Syntaxe
DAX
MONTH(<datetime>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier compris entre 1 et 12.
Remarques
Contrairement à Microsoft Excel, qui stocke les dates comme des numéros de
série, DAX utilise un format datetime lors de l’utilisation de dates. Vous pouvez
entrer la date utilisée comme argument de la fonction MONTH en tapant un
format datetime accepté, en fournissant une référence à une colonne qui contient
des dates ou en utilisant une expression qui retourne une date.
Les valeurs retournées par les fonctions YEAR, MONTH et DAY sont des valeurs
grégoriennes, quel que soit le format d’affichage de la valeur de date fournie. Par
exemple, si le format d’affichage de la date fournie est Hijri, les valeurs retournées
pour les fonctions YEAR, MONTH et DAY sont associées à la date grégorienne
équivalente.
Exemple 1
L’expression suivante retourne 3, qui est l’entier correspondant à mars, le mois dans
l’argument date.
DAX
Exemple 2
L’expression suivante retourne le mois à partir de la date dans la colonne
TransactionDate de la table Orders.
DAX
= MONTH(Orders[TransactionDate])
Voir aussi
Fonctions de date et heure
HOUR, fonction
MINUTE, fonction
YEAR, fonction
SECOND, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
NETWORKDAYS
Article • 20/10/2023
Renvoie le nombre de jours ouvrés entiers entre deux dates (inclus). Les paramètres
précisent quels jours et combien de jours constituent un weekend. Les jours de weekend
et les jours spécifiés comme jours fériés ne sont pas considérés comme des jours ouvrés.
Syntaxe
DAX
Paramètres
Terme Définition
start_date Date qui représente la date de début. Dates pour lesquelles la différence doit être
calculée. La valeur start_date peut être antérieure, égale ou ultérieure à la valeur
end_date.
end_date Date qui représente la date de fin. Dates pour lesquelles la différence doit être
calculée. La valeur start_date peut être antérieure, égale ou ultérieure à la valeur
end_date.
Weekend Indique les jours de la semaine qui représentent des jours de weekend et qui ne sont
pas inclus dans le nombre de jours ouvrables entiers entre la date de début et la date
de fin. Weekend est un numéro de weekend qui spécifie le moment où surviennent
les weekends.
Les valeurs numériques weekend indiquent les jours de weekend suivants :
1 ou omis : samedi, dimanche
2 : dimanche, lundi
3: lundi, mardi
4 : mardi, mercredi
5 : mercredi, jeudi
6 : jeudi, vendredi
7 : vendredi, samedi
11 : dimanche uniquement
12 : lundi uniquement
13 : mardi uniquement
14 : mercredi uniquement
15 : jeudi uniquement
16 : vendredi uniquement
17 : samedi uniquement
Terme Définition
jours Table à colonne d’une ou de plusieurs dates à exclure du calendrier des jours ouvrés.
fériés
Valeur de retour
Nombre entier de jours ouvrés entiers.
Notes
Cette fonction DAX est similaire aux fonctions Excel NETWORKDAYS.INTL et
NETWORKDAYS.
Si les valeurs start_date et end_date sont BLANK, la valeur de sortie est également
BLANK.
Les dates doivent être spécifiées à l’aide de la fonction DATE ou en tant que
résultat d’une autre expression. Par exemple, DATE ( 2022, 5, 30 ) correspond à
30 mai 2022. Les dates peuvent également être spécifiées comme un littéral au
format (dt”2022-05-30”) . Ne spécifiez pas de dates en tant que texte.
Exemple
L’expression suivante :
DAX
= NETWORKDAYS (
DATE ( 2022, 5, 28 ),
DATE ( 2022, 5, 30 ),
1,
{
DATE ( 2022, 5, 30 )
}
)
Dans cet exemple, la valeur 0 est retournée car la date de début est un samedi et la date
de fin est un lundi. Le paramètre weekend spécifie que le weekend inclut le samedi et le
dimanche, de sorte que ces jours ne sont pas des jours ouvrés. Le paramètre holiday
marque le 30 (date de fin) comme un jour férié. Il ne reste donc aucun jour ouvré.
Commentaires
Cette page a-t-elle été utile ? Yes No
NOW
Article • 20/10/2023
La fonction NOW est utile quand vous devez faire apparaître la date et l’heure actuelles
dans une feuille de calcul ou calculer une valeur en fonction de la date et de l’heure
actuelles et que cette valeur doit être mise à jour chaque fois que vous ouvrez la feuille
de calcul.
Syntaxe
DAX
NOW()
Valeur de retour
Date (DateHeure).
Remarques
Le résultat de la fonction NOW change uniquement quand la colonne contenant la
formule est actualisée. Il n’est pas mis à jour en continu.
Dans le service Power BI, le résultat de la fonction NOW est toujours exprimé selon
le fuseau horaire UTC.
La fonction TODAY retourne la même date, mais pas une heure exacte : l’heure
retournée est toujours 12:00:00 AM et seule la date est mise à jour.
Exemple
L’exemple suivant retourne la date et l’heure actuelles plus 3,5 jours :
DAX
= NOW()+3.5
Voir aussi
UTCNOW, fonction
TODAY, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
QUARTER
Article • 20/10/2023
Syntaxe
DAX
QUARTER(<date>)
Paramètres
Terme Définition
Valeur renvoyée
Nombre entier compris entre 1 et 4.
Notes
Si la valeur d’entrée est VIDE, la valeur de sortie est également VIDE.
Exemple 1
La requête DAX suivante :
DAX
Retourne :
[Value]
1
4
[Value]
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
ADDCOLUMNS(
FILTER(
VALUES(
FactInternetSales[OrderDate]),
[OrderDate] >= DATE(2008, 3, 31) && [OrderDate] <= DATE(2008, 4,
1)
),
"Quarter", QUARTER([OrderDate])
)
Retourne :
FactInternetSales[OrderDate] [Quarter]
3/31/2008 1
4/1/2008 2
Voir aussi
YEAR
MONTH
DAY
Commentaires
Cette page a-t-elle été utile ? Yes No
SECOND
Article • 20/10/2023
Retourne les secondes d’une valeur d’heure, sous la forme d’un nombre compris entre 0
et 59.
Syntaxe
DAX
SECOND(<time>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier compris entre 0 et 59.
Remarques
Contrairement à Microsoft Excel, qui stocke les dates et les heures sous forme de
numéros de série, DAX utilise un format datetime pour les dates et les heures. Si
les données source ne sont pas dans ce format, DAX convertit implicitement les
données. Vous pouvez utiliser une mise en forme pour afficher les dates et les
heures sous forme de numéros de série, le cas échéant.
Si vous fournissez une valeur numérique d’un autre type de données, par exemple
13.60, la valeur est interprétée comme étant un numéro de série et est représentée
comme type de données datetime avant l’extraction de la valeur pour les
secondes. Pour mieux comprendre vos résultats, vous pouvez représenter ces
nombres sous forme de dates avant de les utiliser dans la fonction SECOND. Par
exemple, si vous utilisez SECOND avec une colonne qui contient une valeur
numérique comme 25.56, la formule retourne 24. En effet, quand elle est mise en
forme en tant que date, la valeur 25.56 correspond au 25 janvier 1900, 1:26:24 PM.
Quand l’argument time est une représentation textuelle d’une date et heure, la
fonction utilise les paramètres régionaux et les paramètres de date/heure de
l’ordinateur client pour comprendre la valeur texte et effectuer la conversion. La
plupart des paramètres régionaux utilisent le signe deux-points (:) comme
séparateur horaire et tout texte d’entrée utilisant des signes deux-points comme
séparateurs d’heure est analysé correctement. Examinez vos paramètres régionaux
pour comprendre vos résultats.
Exemple 1
La formule suivante retourne le nombre de secondes contenues dans l’heure figurant
dans la colonne TransactionTime d’une table nommée Orders.
DAX
= SECOND('Orders'[TransactionTime])
Exemple 2
La formule suivante retourne 3, qui est le nombre de secondes contenues dans l’heure
représentée par la valeur 3 mars 2008 12:00:03.
DAX
Voir aussi
Fonctions de date et heure
HOUR
MINUTE
YEAR
Commentaires
Cette page a-t-elle été utile ? Yes No
TEMPS
Article • 20/10/2023
Convertit les heures, minutes et secondes données sous forme de nombres en heure au
format DateHeure.
Syntaxe
DAX
Paramètres
Terme Définition
hour Mode Importation : nombre compris entre 0 et 32767, représentant les heures.
Toute valeur supérieure à 23 est divisée par 24. Le reste constitue la valeur d’heure,
représentée sous la forme d’une fraction d’un jour.
Par exemple, TIME(27,0,0) = TIME(3,0,0) = 3:00:00 AM
minute Mode Importation : nombre compris entre 0 et 32767, représentant les minutes.
Toute valeur supérieure à 59 minutes est convertie en heures et en minutes.
Toute valeur supérieure à 1440 (24 heures) ne modifie pas la partie de la date. À la place,
elle est divisée par 1440 et le reste est traité comme la valeur de la minute, représentée
sous la forme d’une fraction d’un jour.
Par exemple, TIME(0,2190,0) = TIME(0,750,0) = TIME(12,30,0) = 12:30:00 PM
second Mode Importation : nombre compris entre 0 et 32767, représentant les secondes.
Toute valeur supérieure à 59 est convertie en heures, minutes et secondes.
Par exemple, TIME(0,0,2000) = TIME(0,33,20) = 12:33:20 AM
Valeur retournée
Une heure (datetime) comprise entre 00:00:00 (12:00:00 AM) et 23:59:59 (11:59:59 PM).
Remarques
Contrairement à Microsoft Excel qui stocke les dates et les heures sous la forme de
numéros de série, DAX utilise les valeurs de date et d’heure au format DateHeure.
Les nombres dans d’autres formats sont implicitement convertis quand vous
utilisez une valeur de date/heure dans une fonction DAX. Si vous avez besoin
d’utiliser des numéros de série, vous pouvez utiliser la mise en forme pour changer
la façon dont les nombres sont affichés.
Les valeurs d’heure font partie d’une valeur de date et sont représentées par un
nombre décimal dans le système de numéros de série. Ainsi, la valeur DateHeure
12:00 PM équivaut à 0,5 car elle correspond à la moitié de la journée.
Les valeurs Date et DateHeure peuvent également être spécifiées en tant que
littéral au format dt"YYYY-MM-DD" , dt"YYYY-MM-DDThh:mm:ss" ou dt"YYYY-MM-DD
hh:mm:ss" . Quand elle est spécifiée en tant que littéral, il n’est pas nécessaire
d’utiliser la fonction TIME dans l’expression. Pour en savoir plus, consultez Syntaxe
DAX | Date et heure.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
Les exemples suivants retournent tous les deux l’heure, 3:00 AM :
DAX
= TIME(27,0,0)
DAX
= TIME(3,0,0)
Exemple 2
Les exemples suivants retournent tous les deux l’heure, 12:30 PM :
DAX
= TIME(0,750,0)
DAX
= TIME(12,30,0)
Exemple 3
L’exemple suivant crée une heure basée sur les valeurs des colonnes intHours ,
intMinutes et intSeconds :
DAX
= TIME([intHours],[intMinutes],[intSeconds])
Voir aussi
DATE
Fonctions de date et heure
Commentaires
Cette page a-t-elle été utile ? Yes No
TIMEVALUE
Article • 20/10/2023
Syntaxe
DAX
TIMEVALUE(time_text)
Paramètres
Terme Définition
time_text Chaîne de texte qui représente une certaine heure de la journée. Toute information de
date incluse dans l’argument time_text est ignorée.
Valeur de retour
Date (DateHeure).
Remarques
Les valeurs d’heure font partie d’une valeur de date et sont représentées par un
nombre décimal. Par exemple, 12:00 PM est représenté sous la forme 0,5 (soit une
demi-journée).
Les valeurs Date et DateHeure peuvent également être spécifiées en tant que
littéral au format dt"YYYY-MM-DD" , dt"YYYY-MM-DDThh:mm:ss" ou dt"YYYY-MM-DD
hh:mm:ss" . Quand elle est spécifiée en tant que littéral, il n’est pas nécessaire
d’utiliser la fonction TIMEVALUE dans l’expression. Pour en savoir plus, consultez
Syntaxe DAX | Date et heure.
Exemple
DAX
= TIMEVALUE("20:45:30")
Voir aussi
Fonctions de date et heure
Commentaires
Cette page a-t-elle été utile ? Yes No
TODAY
Article • 20/10/2023
Syntaxe
DAX
TODAY()
Valeur de retour
Date (DateHeure).
Remarques
La fonction TODAY est utile quand vous devez faire apparaître la date actuelle dans
une feuille de calcul, quel que soit le moment où vous ouvrez le classeur. Elle est
également utile pour le calcul d’intervalles.
Si la fonction TODAY ne met pas à jour la date au moment souhaité, vous devrez
peut-être changer les paramètres qui contrôlent le moment auquel la colonne ou
le classeur est actualisé.
La fonction NOW est similaire. Cependant, elle retourne l’heure exacte, tandis que
TODAY retourne la valeur d’heure 12:00:00 PM pour toutes les dates.
Exemple
Si vous savez qu’une personne est née en 1963, vous pouvez utiliser la formule suivante
pour déterminer son âge au jour de son anniversaire cette année :
DAX
= YEAR(TODAY())-1963
Cette formule utilise la fonction TODAY comme argument de la fonction YEAR pour
obtenir l’année actuelle. Elle soustrait ensuite 1963 pour retourner l’âge de la personne.
Voir aussi
Fonctions de date et heure
NOW
Commentaires
Cette page a-t-elle été utile ? Yes No
UTCNOW
Article • 20/10/2023
Syntaxe
DAX
UTCNOW()
Valeur de retour
Une valeur datetime.
Remarques
Le résultat de la fonction UTCNOW change uniquement quand la formule est actualisée.
Il n’est pas mis à jour en continu.
Exemple
La formule :
DAX
Retourne :
[Value]
2/2/2018 4:48:08 AM
Voir aussi
NOW, fonction
UTCTODAY, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
UTCTODAY
Article • 20/10/2023
Syntaxe
DAX
UTCTODAY()
Valeur de retour
Une date.
Remarques
UTCTODAY retourne la valeur horaire 12:00:00 PM pour toutes les dates.
Exemple
La formule :
DAX
Retourne :
[Value]
2/2/2018
Voir aussi
NOW, fonction
UTCNOW, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
WEEKDAY
Article • 20/10/2023
Syntaxe
DAX
WEEKDAY(<date>, <return_type>)
Paramètres
Terme Définition
Les dates doivent être entrées à l’aide de la fonction DATE, en utilisant des
expressions qui génèrent une date, ou comme résultat d’autres formules.
Valeur renvoyée
Nombre entier compris entre 1 et 7.
Notes
Contrairement à Microsoft Excel, qui stocke les dates sous forme de numéros de
série, DAX utilise des dates et des heures de format datetime. Si vous devez
afficher les dates sous forme de numéros de série, vous pouvez utiliser les options
de mise en forme d’Excel.
Vous pouvez aussi taper les dates dans une représentation textuelle acceptée de
date, mais pour éviter des résultats inattendus, il est préférable de convertir
d’abord la date de format texte dans un format datetime.
Exemple
L’exemple suivant obtient la date de la colonne [HireDate], ajoute 1 et affiche le jour de
la semaine correspondant à cette date. Comme l’argument return_type a été omis, le
format par défaut est utilisé, dans lequel 1 est dimanche et 7 samedi. Si le résultat est 4,
le jour est mercredi.
DAX
= WEEKDAY([HireDate]+1)
Voir aussi
Fonctions de date et heure
WEEKNUM, fonction
YEARFRAC, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
WEEKNUM
Article • 20/10/2023
Syntaxe
DAX
WEEKNUM(<date>[, <return_type>])
Paramètres
Terme Définition
Valeur de retour
Nombre entier.
Remarques
Par défaut, la fonction WEEKNUM utilise une convention de calendrier selon
laquelle la semaine contenant le 1er janvier est considérée comme la première
semaine de l’année. Toutefois, la norme internationale ISO 8601, largement utilisée
en Europe, définit la première semaine du calendrier comme celle où la majorité
des jours (quatre ou plus) tombent dans la nouvelle année. Par conséquent, si la
valeur return_type est une valeur valide autre que 21, pour les années où il y a
trois jours ou moins dans la première semaine de janvier, la fonction WEEKNUM
retourne des numéros de semaine différents de ceux de la norme ISO 8601.
1 ou omise Dimanche 1
2 Lundi 1
11 Lundi 1
12 Mardi 1
13 Mercredi 1
14 Thursday 1
15 Vendredi 1
16 Samedi 1
17 Dimanche 1
21 Lundi 2
Exemple 1
L’exemple suivant retourne le numéro de semaine correspondant à la date du
14 février 2010. Ce calcul suppose que les semaines commencent le lundi.
DAX
Exemple 2
L’exemple suivant retourne le numéro de semaine pour la date stockée dans la colonne
HireDate de la table Employees. Ce calcul suppose que les semaines commencent le
dimanche.
DAX
= WEEKNUM('Employees'[HireDate])
Voir aussi
YEARFRAC, fonction
WEEKDAY, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
YEAR
Article • 20/10/2023
Retourne l’année d’une date sous forme d’un entier à quatre chiffres compris dans la
plage 1900-9999.
Syntaxe
DAX
YEAR(<date>)
Paramètres
Terme Définition
date Date au format DateHeure ou texte contenant l’année que vous recherchez.
Valeur de retour
Entier compris dans la plage 1900-9999.
Remarques
Contrairement à Microsoft Excel qui stocke les dates sous la forme de numéros de
série, DAX utilise un type de données DateHeure lors de l’utilisation de dates et
d’heures.
Les dates doivent être entrées à l’aide de la fonction DATE ou doivent résulter
d’autres formules ou fonctions. Vous pouvez également entrer des dates dans les
représentations textuelles acceptées, par exemple 3 mars 2007 ou Mar-3-2003.
Les valeurs retournées par les fonctions YEAR, MONTH et DAY sont des valeurs
grégoriennes, quel que soit le format d’affichage de la valeur de date fournie. Par
exemple, si le format d’affichage de la date fournie utilise le calendrier Hijri, les
valeurs retournées pour les fonctions YEAR, MONTH et DAY sont associées à la
date grégorienne équivalente.
Quand l’argument date est une représentation textuelle de la date, la fonction
utilise les paramètres régionaux et les paramètres de date et d’heure de
l’ordinateur client pour comprendre la valeur texte afin d’effectuer la conversion.
Des erreurs peuvent se produire si le format des chaînes est incompatible avec les
paramètres régionaux actuels. Par exemple, si vos paramètres régionaux spécifient
le format de date mois/jour/année et que la date est fournie au format
jour/mois/année, 25/1/2009 n’est pas interprété comme le 25 janvier 2009 mais
comme une date non valide.
Exemple
L’exemple suivant retourne 2007.
DAX
= YEAR("March 2007")
Description
L’exemple suivant retourne l’année de la date du jour.
DAX
= YEAR(TODAY())
Voir aussi
Fonctions de date et heure
HOUR, fonction
MINUTE, fonction
YEAR, fonction
SECOND, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
YEARFRAC
Article • 20/10/2023
Calcule la fraction de l’année représentée par le nombre de jours entiers entre deux
dates. Utilisez la fonction de feuille de calcul YEARFRAC pour identifier la proportion des
avantages ou des obligations d’une année entière à assigner à un terme spécifique.
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Tous les arguments sont
tronqués en entiers.
Basis – Description
1 - Réel/réel
2 – Réel/360
3 - Réel/365
4 – Européen 30/360
Valeur de retour
Nombre décimal. Le type de données interne est un nombre à virgule flottante double
précision IEEE 64 bits (8 octets) signé.
Remarques
Contrairement à Microsoft Excel qui stocke les dates en tant que nombres
ordinaux, DAX utilise un format datetime pour utiliser les dates et les heures. Si
vous devez afficher les dates en tant que nombres ordinaux, vous pouvez utiliser
les options de mise en forme d’Excel.
Si start_date ou end_date ne sont pas des dates valides, YEARFRAC retourne une
erreur.
Exemple 1
L’exemple suivant retourne la fraction d’une année représentée par la différence entre
les dates dans les deux colonnes, TransactionDate et ShippingDate :
DAX
= YEARFRAC(Orders[TransactionDate],Orders[ShippingDate])
Exemple 2
L’exemple suivant retourne la fraction d’une année représentée par la différence entre
les dates, 1er janvier et 1er mars :
DAX
Utilisez des années à quatre chiffres chaque fois que possible pour éviter d’obtenir des
résultats inattendus. Lorsque l’année est tronquée, l’année en cours est supposée.
Lorsque la date est omise, la première date du mois est supposée.
Le deuxième argument, basis, a également été omis. Par conséquent, la fraction d’année
est calculée selon la norme américaine (NASD) 30/360.
Voir aussi
Fonctions de date et heure
WEEKNUM, fonction
YEARFRAC, fonction
WEEKDAY, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions de filtrage
Article • 20/10/2023
Les fonctions de filtre et de valeur de DAX comptent parmi les plus complexes et les
plus puissantes. Elles présentent des différences notables avec les fonctions Excel. Les
fonctions de recherche utilisent des tables et des relations, comme une base de
données. Avec les fonctions de filtre, vous pouvez manipuler le contexte des données
pour créer des calculs dynamiques.
ALL Retourne toutes les lignes d’une table, ou toutes les valeurs d’une colonne,
en ignorant les filtres qui ont été éventuellement appliqués.
ALLCROSSFILTERED Efface tous les filtres qui sont appliqués à une table.
ALLEXCEPT Supprime tous les filtres de contexte de la table, à l’exception de ceux qui
ont été appliqués aux colonnes spécifiées.
ALLNOBLANKROW Retourne, à partir de la table parente d’une relation, toutes les lignes sauf la
ligne vide ou toutes les valeurs distinctes d’une colonne sauf la ligne vide, et
ignore tous les filtres de contexte qui peuvent exister.
ALLSELECTED Supprime les filtres de contexte des colonnes et des lignes dans la requête
actuelle, tout en conservant tous les autres filtres de contexte ou filtres
explicites.
FILTER Retourne une table qui représente un sous-ensemble d’une autre table ou
expression.
INDEX Récupère une ligne à une position absolue, spécifiée par le paramètre de
position, dans la partition spécifiée triée selon l’ordre spécifié ou sur l’axe
spécifié.
Fonction Description
KEEPFILTERS Modifie la façon dont les filtres sont appliqués quand une fonction
CALCULATE ou CALCULATETABLE est évaluée.
LOOKUPVALUE Retourne la valeur pour la ligne qui remplit tous les critères spécifiés par les
conditions de recherche. La fonction peut appliquer une ou plusieurs
conditions de recherche.
MATCHBY Dans les fonctions de fenêtre, définit les colonnes utilisées pour déterminer
la manière de faire correspondre des données et d’identifier la ligne
actuelle.
DÉCALAGE Retourne une seule ligne qui est positionnée avant ou après la ligne actuelle
dans la même table, avec un décalage donné.
ORDERBY Définit les colonnes qui déterminent l’ordre de tri dans chacune des
partitions d’une fonction WINDOW.
SELECTEDVALUE Retourne la valeur quand le contexte pour columnName a été réduit par
filtrage à une seule valeur distincte. Sinon, retourne alternateResult.
WINDOW Retourne plusieurs lignes qui sont positionnées dans l’intervalle donné.
Commentaires
Cette page a-t-elle été utile ? Yes No
ALL
Article • 20/10/2023
Retourne toutes les lignes d’une table, ou toutes les valeurs d’une colonne, en ignorant
les filtres qui ont été éventuellement appliqués. Cette fonction est utile pour effacer les
filtres et créer des calculs sur toutes les lignes d’une table.
Syntaxe
DAX
Paramètres
Terme Définition
L’argument passé à la fonction ALL doit être une référence à une table de base ou à une
colonne de base. Vous ne pouvez pas utiliser d’expressions de table ni d’expressions de
colonne avec la fonction ALL.
Valeur de retour
Table ou colonne dont les filtres ont été supprimés.
Remarques
Cette fonction ne s’utilise pas seule : elle fait office de fonction intermédiaire qui
permet de changer le jeu de résultats sur duquel un autre calcul est effectué.
Le tableau suivant décrit comment vous pouvez utiliser les fonctions ALL et
ALLEXCEPT dans différents scénarios.
Fonction et Description
utilisation
ALL() Supprime tous les filtres partout. La fonction ALL() peut être utilisée
uniquement pour effacer des filtres, et non pour retourner une table.
ALL (Column[, Supprime tous les filtres des colonnes spécifiées de la table ; tous les
Column[, …]]) autres filtres des autres colonnes de la table continuent de
s’appliquer. Tous les arguments de colonne doivent provenir de la
même table. La variante ALL(Column) est utile quand vous voulez
supprimer les filtres de contexte pour une ou plusieurs colonnes
spécifiques et conserver tous les autres filtres de contexte. Les
deuxième et troisième exemples illustrent ce scénario.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
Calculer le ratio des ventes par catégorie par rapport au total des ventes
Supposez que vous voulez calculer le montant des ventes pour la cellule active, dans
votre tableau croisé dynamique, divisé par le total des ventes pour tous les revendeurs.
Pour faire en sorte que le dénominateur soit le même quel que soit le mode de filtrage
ou de regroupement de données employé par l’utilisateur du tableau croisé dynamique,
vous définissez une formule qui utilise ALL pour créer le total général exact.
Le tableau suivant présente les résultats obtenus quand la nouvelle mesure All Reseller
Sales Ratio est créée en à partir de la formule présentée dans la section de code. Pour
voir comment cela fonctionne, ajoutez le champ CalendarYear à la zone Étiquettes de
lignes du tableau croisé dynamique, puis ajoutez le champ ProductCategoryName à la
zone Étiquettes de colonnes. Ensuite, faites glisser la mesure All Reseller Sales Ratio
vers la zone Valeurs du tableau croisé dynamique. Pour afficher les résultats sous forme
de pourcentages, utilisez les fonctionnalités de mise en forme d’Excel pour appliquer
une mise en forme de pourcentage aux cellules qui contiennent la mesure.
Formule
DAX
= SUMX(ResellerSales_USD,
ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD),
ResellerSales_USD[SalesAmount_USD])
Exemple 2
Calculer le ratio des ventes de produits par rapport au total des ventes tout au long de
l’année en cours
Supposez que vous voulez créer un tableau comparant le pourcentage de ventes au fil
des ans pour chaque catégorie de produit (ProductCategoryName). Pour obtenir le
pourcentage pour chaque année et chaque valeur de ProductCategoryName, vous
devez diviser la somme des ventes pour l’année et la catégorie de produit en question
par la somme des ventes de cette même catégorie de produit de toutes les années. En
d’autres termes, vous devez conserver le filtre sur ProductCategoryName, mais
supprimer celui appliqué à l’année au moment de calculer le dénominateur du
pourcentage.
Le tableau suivant présente les résultats obtenus quand la nouvelle mesure Reseller
Sales Year est créée à partir de la formule présentée dans la section de code. Pour voir
comment cela fonctionne, ajoutez le champ CalendarYear à la zone Étiquettes de ligne
d’un tableau croisé dynamique et ajoutez le champ ProductCategoryName à la zone
Étiquettes de colonne. Pour afficher les résultats sous forme de pourcentages, utilisez
les fonctionnalités de mise en forme d’Excel pour appliquer un format numérique de
pourcentage aux cellules contenant la mesure Reseller Sales Year.
Formule
DAX
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE(
SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))
Exemple 3
Calculer la contribution des catégories de produit par rapport au total des ventes par an
Supposez que vous voulez créer une table qui présente le pourcentage des ventes pour
chaque catégorie de produit, année par année. Pour obtenir le pourcentage de chaque
catégorie de produit pour une année déterminée, vous devez calculer la somme des
ventes dans ladite catégorie de produit (ProductCategoryName) pour l’année n, puis
diviser la valeur obtenue par la somme des ventes de l’année n pour toutes les
catégories de produit. En d’autres termes, vous devez conserver le filtre sur l’année, mais
supprimer celui appliqué à ProductCategoryName au moment de calculer le
dénominateur du pourcentage.
Le tableau suivant présente les résultats obtenus quand la nouvelle mesure Reseller
Sales CategoryName est créée à partir de la formule présentée dans la section de code.
Pour voir comment cela fonctionne, ajoutez le champ CalendarYear à la zone Étiquettes
de lignes du tableau croisé dynamique, puis ajoutez le champ ProductCategoryName à
la zone Étiquettes de colonnes. Ajoutez ensuite la nouvelle mesure à la zone Valeurs du
tableau croisé dynamique. Pour afficher les résultats sous forme de pourcentages,
utilisez les fonctionnalités de mise en forme d’Excel pour appliquer un format
numérique de pourcentage aux cellules qui contiennent la nouvelle mesure, Reseller
Sales CategoryName.
Formule
DAX
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE(
SUM( ResellerSales_USD[SalesAmount_USD]),
ALL(ProductCategory[ProductCategoryName]))
Voir aussi
Fonctions de filtrage
ALL, fonction
ALLEXCEPT, fonction
FILTER, fonction
Commentaires
Cette page a-t-elle été utile ?
Yes No
ALLCROSSFILTERED
Article • 20/10/2023
Syntaxe
DAX
ALLCROSSFILTERED(<table>)
Paramètres
Terme Définition
Valeur renvoyée
N/A. Consultez la section Remarques.
Notes
La fonction ALLCROSSFILTERED peut uniquement être utilisée pour effacer des
filtres, mais pas pour retourner une table.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
DAX
DEFINE
MEASURE FactInternetSales[TotalQuantity1] =
CALCULATE(SUM(FactInternetSales[OrderQuantity]),
ALLCROSSFILTERED(FactInternetSales))
MEASURE FactInternetSales[TotalQuantity2] =
CALCULATE(SUM(FactInternetSales[OrderQuantity]), ALL(FactInternetSales))
EVALUATE
SUMMARIZECOLUMNS(DimSalesReason[SalesReasonName],
"TotalQuantity1", [TotalQuantity1],
"TotalQuantity2", [TotalQuantity2])
ORDER BY DimSalesReason[SalesReasonName]
Retourne :
Parrainage 60398
7 Notes
Commentaires
Cette page a-t-elle été utile ? Yes No
ALLEXCEPT
Article • 20/10/2023
Supprime tous les filtres de contexte de la table, à l’exception de ceux qui ont été
appliqués aux colonnes spécifiées.
Syntaxe
DAX
ALLEXCEPT(<table>,<column>[,<column>[,…]])
Paramètres
Terme Définition
tableau Table de laquelle sont supprimés tous les filtres de contexte, à l’exception des filtres
appliqués aux colonnes spécifiées dans les arguments suivants.
colonne Colonne pour laquelle les filtres de contexte doivent être conservés.
Le premier argument de la fonction ALLEXCEPT doit être une référence à une table de
base. Tous les arguments suivants doivent être des références à des colonnes de base.
Vous ne pouvez pas utiliser d’expressions de table ni d’expressions de colonne avec la
fonction ALLEXCEPT.
Valeur de retour
Table dans laquelle tous les filtres ont été supprimés, à l’exception des filtres appliqués
aux colonnes spécifiées.
Remarques
Cette fonction ne s’utilise pas seule : elle fait office de fonction intermédiaire qui
permet de changer le jeu de résultats sur duquel un autre calcul est effectué.
Les fonctions ALL et ALLEXCEPT peuvent être utilisées dans différents scénarios :
Fonction et Description
utilisation
ALL (Column[, Supprime tous les filtres des colonnes spécifiées de la table ; tous les
Column[, …]]) autres filtres des autres colonnes de la table continuent de
s’appliquer. Tous les arguments de colonne doivent provenir de la
même table. La variante ALL(Column) est utile quand vous voulez
supprimer les filtres de contexte pour une ou plusieurs colonnes
spécifiques et conserver tous les autres filtres de contexte.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule de mesure suivante calcule le total SalesAmount_USD et utilise la fonction
ALLEXCEPT pour supprimer tous les filtres de contexte sur la table DateTime, sauf les
filtres qui ont été appliqués à la colonne CalendarYear.
DAX
= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime,
DateTime[CalendarYear]))
Du fait que la formule utilise la fonction ALLEXCEPT, quand l’une des colonnes (à
l’exception de CalendarYear) de la table DateTime est utilisée pour segmenter les
données d’une visualisation, la formule supprime tous les filtres de segment, et retourne
une valeur égale à la somme de SalesAmount_USD. Toutefois, si la colonne CalendarYear
est utilisée pour segmenter la visualisation, les résultats sont différents. Étant donné que
CalendarYear est spécifié comme argument dans la fonction ALLEXCEPT, quand les
données sont segmentées sur l’année, un filtre est appliqué sur les années au niveau des
lignes
Voir aussi
Fonctions de filtrage
ALL, fonction
FILTER, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ALLNOBLANKROW
Article • 20/10/2023
À partir de la table parent d’une relation, retourne toutes les lignes sauf la ligne vide, ou
toutes les valeurs distinctes d’une colonne sauf la ligne vide, et ignore tous les filtres de
contexte qui peuvent exister.
Syntaxe
DAX
Paramètres
Terme Définition
tableau Table sur laquelle tous les filtres de contexte sont supprimés.
colonne Colonne sur laquelle tous les filtres de contexte sont supprimés.
Un seul paramètre doit être passé ; le paramètre est soit une table, soit une colonne.
Valeur de retour
Une table, quand le paramètre passé était une table, ou une colonne de valeurs, quand
le paramètre passé était une colonne.
Remarques
La fonction ALLNOBLANKROW filtre uniquement la ligne vide qu’une table parent,
dans une relation, affiche quand les valeurs d’une ou plusieurs lignes de la table
enfant n’ont pas de valeurs correspondantes dans la colonne parent. Consultez
l’exemple ci-dessous pour obtenir une explication détaillée.
Le tableau suivant récapitule les variantes de ALL proposées dans DAX et leurs
différences :
Fonction et utilisation Description
ALLEXCEPT(Table,Col1,Col2...) Remplace tous les filtres de contexte de la table, sauf sur les
colonnes spécifiées.
Pour obtenir une description générale de la façon dont la fonction ALL opère ainsi
que des exemples pas à pas qui utilisent ALL(Table) et ALL(Column), consultez ALL,
fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Dans les données d’exemple, la table ResellerSales_USD contient une ligne sans valeurs
qui ne peut donc être associée à aucune table parent dans les relations du classeur.
Vous allez utiliser cette table dans un tableau croisé dynamique pour observer le
comportement des lignes vides et voir comment gérer les décomptes dans les données
non liées.
Créez un tableau croisé dynamique, puis faites glisser la colonne datetime.[Année civile]
vers le volet Étiquettes de ligne. Le tableau suivant présente les résultats attendus :
Étiquettes de ligne
2005
Étiquettes
2006 de ligne
2007
2008
Total général
Comme vous pouvez le constater, il y a une étiquette vide entre 2008 et Total général.
Cette étiquette vide représente le Membre inconnu, qui est un groupe spécial créé pour
prendre en compte les valeurs de la table enfant qui n’ont pas de valeur correspondante
dans la table parent, dans cet exemple la colonne datetime.[Année civile].
La présence de cette étiquette vide dans le tableau croisé dynamique est le signe qu’il y
a soit des valeurs vides, soit des valeurs sans correspondance dans certaines tables
associées à la colonne, datetime.[Année civile]. La table parent est celle dans laquelle
figure l’étiquette vide, mais les lignes qui ne correspondent pas se trouvent dans une ou
plusieurs des tables enfant.
Les lignes ajoutées au groupe de l’étiquette vide sont des valeurs qui ne correspondent
à aucune valeur dans la table parent (par exemple, une date qui n’existe pas dans la
table datetime) ou des valeurs null, c’est-à-dire sans aucune valeur pour la date. Dans
cet exemple, nous avons placé une valeur vide dans toutes les colonnes de la table
« sales » enfant. Le fait que la table parent contienne plus de valeurs que les tables
enfant ne pose pas de problème.
Ajoutez les deux mesures suivantes à la table datetime pour compter les lignes de la
table : Countrows ALLNOBLANK of datetime, Countrows ALL of datetime. Les formules
que vous pouvez utiliser pour définir ces mesures sont les suivantes :
DAX
1 280 1281
Les résultats montrent une différence de 1 ligne dans le nombre de lignes de table.
Cependant, si vous ouvrez la fenêtre Power Pivot et que vous sélectionnez la table
datetime, vous ne trouverez aucune ligne vide dans la table, car la ligne vide spéciale
mentionnée ici est le Membre inconnu.
Créez un tableau croisé dynamique, puis faites glisser la colonne datetime.[Année civile]
vers le volet Étiquettes de ligne. Ajoutez maintenant les mesures que vous venez de
créer. Les résultats doivent se présenter comme suit :
60856 60856
Voir aussi
Fonctions de filtrage
ALL, fonction
FILTER, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ALLSELECTED
Article • 20/10/2023
Supprime les filtres de contexte des colonnes et des lignes dans la requête actuelle, tout
en conservant tous les autres filtres de contexte ou filtres explicites.
Syntaxe
DAX
Paramètres
Terme Définition
tableName Nom d’une table existante, spécifié avec la syntaxe DAX standard. Ce paramètre
ne peut pas être une expression. Ce paramètre est facultatif.
columnName Nom, généralement complet, d’une colonne existante utilisant la syntaxe DAX
standard. Il ne peut pas s’agir d’une expression. Ce paramètre est facultatif.
Valeur renvoyée
Contexte de la requête sans filtres de lignes ni de colonnes.
Notes
S’il existe un argument, l’argument est tableName ou columnName. S’il existe
plusieurs arguments, ils doivent être des colonnes de la même table.
Cette fonction est différente de ALL() car elle conserve tous les filtres définis
explicitement dans la requête et conserve tous les filtres de contexte autres que les
filtres de lignes et de colonnes.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant montre comment générer des niveaux différents de valeurs totales
affichées dans un rapport de table à l’aide d’expressions DAX. Dans le rapport, deux (2)
filtres précédents ont été appliqués aux données des ventes du revendeur : l’un sur le
groupe du secteur de vente (Sales Territory Group) = Europe et l’autre sur le type de
promotion (Promotion Type) = Remise de volume (Volume Discount). Une fois les filtres
appliqués, des valeurs totales affichées peuvent être calculées pour l’intégralité du
rapport, pour toutes les années ou pour toutes les catégories de produits. En outre, à
des fins d’illustration, le total général de toutes les ventes du revendeur est également
obtenu, en supprimant tous les filtres du rapport. L’évaluation de l’expression DAX
suivante génère une table contenant toutes les informations nécessaires à la création
d’une table avec des valeurs totales affichées.
DAX
define
measure 'Reseller Sales'[Reseller Sales Amount]=sum('Reseller Sales'[Sales
Amount])
measure 'Reseller Sales'[Reseller Grand Total]=calculate(sum('Reseller
Sales'[Sales Amount]), ALL('Reseller Sales'))
measure 'Reseller Sales'[Reseller Visual Total]=calculate(sum('Reseller
Sales'[Sales Amount]), ALLSELECTED())
measure 'Reseller Sales'[Reseller Visual Total for All of Calendar
Year]=calculate(sum('Reseller Sales'[Sales Amount]),
ALLSELECTED('Date'[Calendar Year]))
measure 'Reseller Sales'[Reseller Visual Total for All of Product Category
Name]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Product
Category'[Product Category Name]))
evaluate
CalculateTable(
//CT table expression
summarize(
//summarize table expression
crossjoin(distinct('Product Category'[Product Category Name]),
distinct('Date'[Calendar Year]))
//First Group by expression
, 'Product Category'[Product Category Name]
//Second Group by expression
, 'Date'[Calendar Year]
//Summary expressions
, "Reseller Sales Amount", [Reseller Sales Amount]
, "Reseller Grand Total", [Reseller Grand Total]
, "Reseller Visual Total", [Reseller Visual Total]
, "Reseller Visual Total for All of Calendar Year", [Reseller Visual Total
for All of Calendar Year]
, "Reseller Visual Total for All of Product Category Name", [Reseller Visual
Total for All of Product Category Name]
)
//CT filters
, 'Sales Territory'[Sales Territory Group]="Europe", 'Promotion'[Promotion
Type]="Volume Discount"
)
order by [Product Category Name], [Calendar Year]
Après l’exécution de l’expression ci-dessus dans SQL Server Management Studio par
rapport au modèle tabulaire AdventureWorks DW, vous obtenez les résultats suivants :
Reseller Visual Total for All of Calendar Year (Valeur totale affichée du revendeur pour
toutes les années civiles)
Valeur totale pour une catégorie de produits sur toutes les années. Cette valeur apparaît
à la fin d’une colonne ou d’une ligne d’une catégorie de produits donnée, pour toutes
les années du rapport.
Reseller Visual Total for All of Product Category Name (Valeur totale affichée du
revendeur pour tous les noms des catégories de produits)
Valeur totale sur une année pour toutes les catégories de produits. Cette valeur apparaît
à la fin d’une colonne ou d’une ligne d’une année donnée, pour toutes les catégories de
produits du rapport.
Reseller Visual Total (Valeur totale affichée du revendeur)
Valeur totale pour toutes les années et toutes les catégories de produits. Cette valeur
figure généralement dans le coin inférieur droit de la table.
7 Notes
Si vous avez des filtres explicites dans votre expression, ils sont également
appliqués à l’expression.
Commentaires
Cette page a-t-elle été utile ? Yes No
CALCULATE
Article • 20/10/2023
7 Notes
Syntaxe
DAX
Paramètres
Terme Définition
filter1, filter2, (Facultatif) Expressions booléennes ou de table qui définissent des filtres ou des
etc. fonctions de modification de filtre.
Exemples de filtres :
Quand il existe plusieurs filtres, ils peuvent être évalués avec l’opérateur logique AND
(&&), ce qui signifie que toutes les conditions doivent être TRUE, ou avec l’opérateur
logique OR (||), ce qui signifie que l’une des conditions peut être TRUE.
Ils ne peuvent pas utiliser les fonctions qui analysent ou retournent une table, sauf
s’ils sont passés en tant qu’arguments aux fonctions d’agrégation.
Ils peuvent contenir une fonction d’agrégation qui retourne une valeur scalaire. Par
exemple,
DAX
Un filtre d’expression de table applique un objet de table en tant que filtre. Vous pouvez
avoir une référence à une table de modèle, mais il s’agit plus vraisemblablement d’une
fonction qui retourne un objet de table. Vous pouvez utiliser la fonction FILTER pour
appliquer des conditions de filtre complexes, comme celles qui ne peuvent pas être
définies par une expression de filtre booléenne.
Fonction Objectif
ALL1, ALLEXCEPT, Supprimer les filtres d’une ou plusieurs colonnes ou de toutes les
ALLNOBLANKROW colonnes d’une seule table.
Fonction Objectif
KEEPFILTERS Ajouter un filtre sans supprimer les filtres existants sur les mêmes
colonnes.
USERELATIONSHIP Engager une relation inactive entre des colonnes associées, auquel
cas la relation active devient automatiquement inactive.
1
La fonction ALL et ses variantes se comportent à la fois comme des modificateurs de
filtre et comme des fonctions qui retournent des objets de table. Si la fonction
REMOVEFILTERS est prise en charge par votre outil, il est préférable de l’utiliser pour
supprimer des filtres.
Valeur renvoyée
Valeur résultant de l’expression.
Notes
Quand des expressions de filtre sont fournies, la fonction CALCULATE modifie le
contexte de filtre pour évaluer l’expression. Pour chaque expression de filtre, il
existe deux résultats standard possibles quand l’expression de filtre n’est pas
wrappée dans la fonction KEEPFILTERS :
Si les colonnes (ou tables) ne sont pas dans le contexte du filtre, de nouveaux
filtres sont ajoutés au contexte de filtre pour évaluer l’expression.
Si les colonnes (ou tables) sont déjà dans le contexte du filtre, les filtres
existants sont remplacés par les nouveaux filtres pour évaluer l’expression
CALCULATE.
La fonction CALCULATE utilisée sans filtres répond à une exigence spécifique. Elle
effectue la transition du contexte de ligne au contexte de filtre. Elle est obligatoire
quand une expression (autre qu’une mesure de modèle) qui synthétise des
données de modèle doit être évaluée dans le contexte de ligne. Ce scénario peut
se produire dans une formule de colonne calculée ou lors de l’évaluation d’une
expression dans une fonction d’itérateur. Notez que lorsqu’une mesure de modèle
est utilisée dans le contexte de ligne, la transition du contexte est automatique.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
La définition de mesure pour la table Sales suivante produit un résultat sous forme de
chiffre d’affaires, mais uniquement pour les produits bleus.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
Blue Revenue =
CALCULATE(
SUM(Sales[Sales Amount]),
'Product'[Color] = "Blue"
)
La définition de mesure pour la table Sales suivante produit le pourcentage des ventes
par rapport au total de tous les canaux de vente.
La fonction DIVIDE divise une expression qui calcule la somme des valeurs de la colonne
Sales Amount de la table Sales (dans le contexte de filtre) par la même expression dans
un contexte de filtre modifié. C’est la fonction CALCULATE qui modifie le contexte de
filtre en utilisant la fonction REMOVEFILTERS, qui est une fonction de modification de
filtre. Elle supprime les filtres de la colonne Channel de la table Sales Order.
La définition de colonne calculée de la table Customer suivante classifie les clients dans
une classe de fidélité. Ce scénario est très simple : Quand le chiffre d’affaires produit par
le client est inférieur à 2 500 US$, il est classifié dans la classe Low ; sinon, il est classifié
dans la classe High.
DAX
Customer Segment =
IF(
CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer,
Customer[CustomerKey])) < 2500,
"Low",
"High"
)
Dans cet exemple, le contexte de ligne est converti en contexte de filtre. On parle dans
ce cas de transition de contexte. La fonction ALLEXCEPT supprime les filtres de toutes les
colonnes de la table Customer, à l’exception de la colonne CustomerKey.
Voir aussi
Contexte de filtre
Contexte de ligne
CALCULATETABLE, fonction
Fonctions de filtrage
Commentaires
Cette page a-t-elle été utile ? Yes No
CALCULATETABLE
Article • 20/10/2023
7 Notes
Syntaxe
DAX
Paramètres
Terme Définition
filter1, filter2, (Facultatif) Expressions booléennes ou de table qui définissent des filtres ou des
etc. fonctions de modification de filtre.
L’expression utilisée comme premier paramètre doit être un modèle de table ou une
fonction qui retourne une table.
Exemples de filtres :
Si vous avez plusieurs filtres, ils sont évalués à l’aide de l’opérateur logique AND. Cela
signifie que toutes les conditions doivent avoir la valeur TRUE en même temps.
Ils ne peuvent pas utiliser les fonctions qui analysent ou retournent une table, sauf
s’ils sont passés en tant qu’arguments aux fonctions d’agrégation.
Ils peuvent contenir une fonction d’agrégation qui retourne une valeur scalaire.
Les fonctions de modification de filtre vous permettent d’effectuer des actions qui vont
au-delà du simple ajout de filtres. Elles vous offrent davantage de contrôle lors de la
modification du contexte de filtre.
Fonction Objectif
ALL1, ALLEXCEPT, Supprimer les filtres d’une ou plusieurs colonnes ou de toutes les
ALLNOBLANKROW colonnes d’une seule table.
KEEPFILTERS Ajouter un filtre sans supprimer les filtres existants sur les mêmes
colonnes.
USERELATIONSHIP Engager une relation inactive entre des colonnes associées, auquel
cas la relation active devient automatiquement inactive.
Valeur renvoyée
Table de valeurs.
Notes
Quand des expressions de filtre sont fournies, la fonction CALCULATETABLE
modifie le contexte de filtre pour évaluer l’expression. Pour chaque expression de
filtre, il existe deux résultats standard possibles quand l’expression de filtre n’est
pas wrappée dans la fonction KEEPFILTERS :
Si les colonnes (ou tables) ne sont pas dans le contexte du filtre, de nouveaux
filtres sont ajoutés au contexte de filtre pour évaluer l’expression.
Si les colonnes (ou tables) sont déjà dans le contexte du filtre, les filtres
existants sont remplacés par les nouveaux filtres pour évaluer l’expression
CALCULATETABLE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant utilise la fonction CALCULATETABLE pour obtenir la somme des ventes
Internet pour 2006. Cette valeur sera utilisée ultérieurement pour calculer le rapport
entre les ventes Internet et l’ensemble des ventes sur l’année 2006.
La formule suivante :
DAX
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
Le tableau suivant est obtenu :
Étiquettes de Montant des ventes CalculateTable - Ventes Rapport entre les ventes
ligne Internet (USD) Internet en 2006 Internet et les ventes sur
2006
Voir aussi
Contexte de filtre
CALCULATE, fonction (DAX)
Fonctions de filtrage (DAX)
Commentaires
Cette page a-t-elle été utile ? Yes No
EARLIER
Article • 20/10/2023
EARLIER est utile pour les calculs imbriqués où vous souhaitez utiliser une certaine valeur comme
entrée et produire des calculs basés sur cette entrée. Dans Microsoft Excel, vous ne pouvez
effectuer de tels calculs que dans le contexte de la ligne actuelle. Toutefois, dans DAX, vous
pouvez stocker la valeur de l’entrée, puis effectuer le calcul à l’aide des données de la table
entière.
Syntaxe
DAX
EARLIER(<column>, <number>)
Paramètres
Terme Définition
Le niveau d’évaluation externe suivant est représenté par 1 ; deux niveaux externes sont
représentés par 2, et ainsi de suite.
Valeur renvoyée
Valeur actuelle de la ligne, à partir de column, au niveau number des tests d’évaluations
externes.
Exceptions
Description des erreurs
Remarques
EARLIER réussit s’il existe un contexte de ligne avant le début de l’analyse de table. Sinon,
elle retourne une erreur.
Les performances de la fonction EARLIER peuvent être lentes, car elle peut avoir
théoriquement à effectuer un nombre d’opérations proche du nombre total de lignes (dans
la colonne) multiplié par le même nombre (en fonction de la syntaxe de l’expression). Par
exemple, si vous avez 10 lignes dans la colonne, environ 100 opérations peuvent être
nécessaires. Si vous avez 100 lignes, près de 10 000 opérations peuvent être effectuées.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand
elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau des lignes
(RLS).
7 Notes
Exemple
Pour illustrer l’utilisation de la fonction EARLIER, il est nécessaire de générer un scénario qui
calcule une valeur de classement, puis utilise cette valeur de classement dans d’autres calculs.
L’exemple suivant est basé sur cette table simple, ProductSubcategory, qui affiche le total des
ventes pour chaque ProductSubcategory.
6 Freins 62 113,16 $ 23
19 Capuchons 47 934,54 $ 28
7 Chaînes 8 847,08 $ 35
9 Dérailleurs 64 965,33 $ 22
30 Garde-boue 41 974,10 $ 29
10 Fourches 74 727,66 $ 21
11 Oreillettes 57 659,99 $ 25
33 Lumières 36
34 Verrous 15 059,47 $ 33
35 Sacoches 36
36 Pompes 12 695,18 $ 34
15 Selles 52 526,47 $ 26
23 Chaussettes 28 337,85 $ 31
DAX
= COUNTROWS(FILTER(ProductSubcategory,
EARLIER(ProductSubcategory[TotalSubcategorySales])
<ProductSubcategory[TotalSubcategorySales]))+1
3. La fonction FILTER retourne désormais une table dans laquelle toutes les lignes ont une
valeur pour TotalSubcategorySales supérieure à 156 167,88 $ (qui est la valeur actuelle pour
EARLIER).
4. La fonction COUNTROWS compte les lignes de la table filtrée et assigne cette valeur à la
nouvelle colonne calculée dans la ligne actuelle plus 1. L’ajout de 1 est nécessaire pour
éviter que la valeur la mieux classée ne devienne un espace.
5. La formule de colonne calculée passe à la ligne suivante et répète les étapes 1 à 4. Ces
étapes sont répétées jusqu’à ce que la fin de la table soit atteinte.
Voir aussi
EARLIEST, fonction
Fonctions de filtrage
Commentaires
Cette page a-t-elle été utile ? Yes No
EARLIEST
Article • 20/10/2023
Syntaxe
DAX
EARLIEST(<column>)
Paramètres
Terme Définition
Valeur renvoyée
Colonne dont les filtres ont été supprimés.
Notes
La fonction EARLIEST est similaire à EARLIER, mais vous permet de spécifier un
niveau supplémentaire de récursivité.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de données actuel ne prend pas en charge ce scénario.
DAX
= EARLIEST(<column>)
Voir aussi
EARLIER, fonction
Fonctions de filtrage
Commentaires
Cette page a-t-elle été utile ? Yes No
FILTER
Article • 20/10/2023
Retourne une table qui représente un sous-ensemble d’une autre table ou expression.
Syntaxe
DAX
FILTER(<table>,<filter>)
Paramètres
Terme Définition
tableau Table à filtrer. La table peut également être une expression produisant une table.
filter Expression booléenne à évaluer pour chaque ligne de la table. Par exemple, [Amount] >
0 ou [Region] = "France" .
Valeur de retour
Table contenant uniquement les lignes filtrées.
Remarques
Vous pouvez utiliser FILTER pour réduire le nombre de lignes dans la table avec
laquelle vous travaillez et utiliser uniquement des données spécifiques dans les
calculs. La fonction FILTER n’étant pas indépendante, elle doit être utilisée en tant
que fonction incorporée dans d’autres fonctions nécessitant une table comme
argument.
Pour connaître les meilleures pratiques lors de l’utilisation d’un filtre, consultez
Éviter d’utiliser le filtre en tant qu’argument de filtre.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant crée un rapport des ventes sur Internet hors États-Unis à l’aide d’une
mesure qui exclut par filtrage les ventes réalisées aux États-Unis, puis découpe les
ventes par année civile et catégorie de produit. Pour créer cette mesure, filtrez la table
InternetSales_USD à l’aide du secteur de vente (SalesTerritory), puis utilisez la table
filtrée dans une fonction SUMX.
DAX
FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States")
Retourne une table qui est un sous-ensemble des ventes sur Internet, moins toutes les
lignes appartenant au secteur de vente États-Unis. La fonction RELATED est ce qui lie la
clé Territory dans la table InternetSales à SalesTerritoryCountry dans la table
SalesTerritory.
La table suivante démontre le bien-fondé de la mesure Ventes sur Internet hors États-
Unis dont la formule est indiquée dans la section de code ci-dessous. La table compare
toutes les ventes sur Internet aux ventes sur Internet hors États-Unis pour montrer que
l’expression de filtre fonctionne (les ventes des États-Unis sont exclues du calcul).
La table du rapport final montre les résultats quand vous créez un tableau croisé
dynamique à l’aide de la mesure Ventes sur Internet hors États-Unis. Ajoutez le champ
CalendarYear à la zone Étiquettes de ligne du tableau croisé dynamique, puis ajoutez le
champ ProductCategoryName à la zone Étiquettes de colonne.
Total général 384 639,63 $ 16 107 890,23 $ 172 817,81 $ 16 665 347,67 $
DAX
SUMX(FILTER('InternetSales_USD',
RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
,'InternetSales_USD'[SalesAmount_USD])
Voir aussi
Fonctions de filtrage
ALL, fonction
ALLEXCEPT, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
INDEX
Article • 20/10/2023
Récupère une ligne à une position absolue, spécifiée par le paramètre de position, dans la
partition spécifiée triée selon l’ordre spécifié. Si la partition actuelle ne peut pas être
déduite en une seule partition, plusieurs lignes peuvent être retournées.
Syntaxe
DAX
Paramètres
Terme Définition
position La position absolue (basée sur 1) à partir de laquelle obtenir les données :
- <position> est positive : 1 est la première ligne, 2 est la deuxième ligne, etc.
- <position> est négative : -1 est la dernière ligne, -2 est l’avant-dernière ligne, etc.
Lorsque <position> est hors limite, zéro ou BLANK(), INDEX renvoie un tableau vide.
Peut être toute expression DAX qui retourne une valeur scalaire.
orderBy (Facultatif) Clause ORDERBY() contenant les expressions qui définissent le tri de
chaque partition.
En cas d’omission :
- la <relation> doit être spécifiée explicitement.
- Par défaut, le tri est effectué par chaque colonne dans une <relation> qui n’est pas
déjà spécifiée dans <partitionBy>.
vides (Facultatif) Énumération qui définit comment gérer des valeurs vides lors du tri.
Ce paramètre est réservé à un usage futur.
Actuellement, la seule valeur prise en charge est DEFAULT, où le comportement pour
les valeurs numériques est que les valeurs vides sont classées entre les valeurs zéro et
Terme Définition
les valeurs négatives. Le comportement des chaînes est que les valeurs vides sont
triées avant toutes les chaînes, y compris les chaînes vides.
partitionBy (Facultatif) Clause PARTITIONBY() contenant les colonnes qui définissent la façon dont
la <relation> est partitionnée.
En cas d’omission, la <relation> est traitée comme une partition unique.
matchBy (Facultatif) Clause MATCHBY() contenant les colonnes qui définissent la manière de
faire correspondre les données et d’identifier la ligne actuelle.
Valeur retournée
Une ligne à une position absolue.
Notes
Chaque colonne <partitionBy> et <matchBy> doit avoir une valeur externe
correspondante permettant de définir la « partition actuelle » à traiter, avec le
comportement suivant :
S’il existe exactement une colonne externe correspondante, sa valeur est utilisée.
S’il n’existe aucune colonne externe correspondante :
INDEX détermine d’abord toutes les colonnes <partitionBy> et <matchBy> qui
n’ont aucune colonne externe correspondante.
Pour chaque combinaison de valeurs existantes pour ces colonnes dans le
contexte parent d’INDEX, INDEX est évalué, et une ligne est retournée.
La sortie finale d’INDEX est une union de ces lignes.
S’il existe plusieurs colonnes externes correspondantes, une erreur est retournée.
Si INDEX est utilisé dans une colonne calculée définie sur la même table que <relation> et
que <orderBy> est omis, une erreur est retournée.
Exemple 1
La requête DAX suivante :
DAX
DimDate[CalendarYear]
2005
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
SUMMARIZECOLUMNS (
FactInternetSales[ProductKey],
DimDate[MonthNumberOfYear],
FILTER (
VALUES(FactInternetSales[ProductKey]),
[ProductKey] < 222
),
"CurrentSales", SUM(FactInternetSales[SalesAmount]),
"LastMonthSales",
CALCULATE (
SUM(FactInternetSales[SalesAmount]),
INDEX(-1, ORDERBY(DimDate[MonthNumberOfYear]))
)
)
ORDER BY [ProductKey], [MonthNumberOfYear]
retourne la table suivante :
Voir aussi
DÉCALAGE
ORDERBY
PARTITIONBY
WINDOW
RANK
ROWNUMBER
Commentaires
Cette page a-t-elle été utile ? Yes No
KEEPFILTERS
Article • 20/10/2023
Modifie la façon dont les filtres sont appliqués quand une fonction CALCULATE ou
CALCULATETABLE est évaluée.
Syntaxe
DAX
KEEPFILTERS(<expression>)
Paramètres
Terme Définition
Valeur de retour
Table de valeurs.
Remarques
Vous utilisez KEEPFILTERS dans les fonctions CALCULATE et CALCULATETABLE
portant sur le contexte pour remplacer le comportement standard de ces
fonctions.
Par défaut, les arguments de filtre dans des fonctions telles que CALCULATE sont
utilisés comme contexte pour l’évaluation de l’expression. Ainsi, les arguments de
filtre pour la fonction CALCULATE remplacent tous les filtres existants sur les
mêmes colonnes. Le nouveau contexte affecté par l’argument de filtre pour la
fonction CALCULATE affecte uniquement les filtres existants sur les colonnes
mentionnées dans le cadre de l’argument de filtre. Les filtres sur des colonnes
autres que celles mentionnées dans les arguments de la fonction CALCULATE ou
d’autres fonctions associées continuent de s’appliquer sans modification.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant vous explique, pour différents scénarios courants, comment utiliser la
fonction KEEPFILTERS dans le cadre d’une formule CALCULATE ou CALCULATETABLE.
Les trois premières expressions permettent d’obtenir des données simples, qui seront
utilisées à des fins de comparaison :
La quatrième expression calcule les ventes Internet pour les États de Washington et de
l’Oregon avec application du filtre pour Washington et la Colombie-Britannique.
L’expression suivante calcule les ventes Internet pour les États de Washington et de
l’Oregon et utilise la fonction KEEPFILTERS. Le filtre pour Washington et la Colombie-
Britannique fait partie du contexte précédent.
DAX
EVALUATE ROW(
"$$ in WA"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
)
, "$$ in WA and OR"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, "$$ in WA and BC"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA and OR ??"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
,'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA !!"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
, KEEPFILTERS('Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
)
Quand cette expression est évaluée par rapport à l’exemple de base de données
AdventureWorks DW, les résultats suivants sont obtenus.
Colonne Valeur
7 Notes
À des fins pédagogiques, les résultats ci-dessus ont été mis en forme dans une
table et non sur une ligne unique.
Tout d’abord, examinez l’expression [$$ in WA and OR ??] . Vous vous demandez peut-
être comment cette formule peut retourner la valeur des ventes dans les États de
Washington et de l’Oregon puisque l’expression CALCULATE externe comprend un filtre
pour Washington et la Colombie-Britannique. En fait, par défaut, la fonction CALCULATE
remplace les filtres externes dans 'Geography'[State Province Code] et applique ses
propres arguments de filtre, car les filtres s’appliquent à la même colonne.
Examinez à présent l’expression [$$ in WA !!] . Vous vous demandez peut-être comment
cette formule peut retourner la valeur des ventes dans l’État de Washington uniquement
puisque l’argument de filtre inclut l’Oregon et que l’expression CALCULATE externe
comprend un filtre pour Washington et la Colombie-Britannique. En fait, la fonction
KEEPFILTERS modifie le comportement par défaut de l’expression CALCULATE et ajoute
un filtre supplémentaire. Étant donné que l’intersection des filtres est utilisée, le filtre
externe 'Geography'[State Province Code]="WA" || 'Geography'[State Province
Code]="BC") est ajouté à l’argument de filtre 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR" . Étant donné que les deux filtres
s’appliquent à la même colonne, c’est le filtre 'Geography'[State Province Code]="WA"
obtenu qui est appliqué quand l’expression est évaluée.
Voir aussi
Fonctions de filtrage
CALCULATE, fonction
CALCULATETABLE, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
LOOKUPVALUE
Article • 20/10/2023
Retourne la valeur pour la ligne qui remplit tous les critères spécifiés par une ou
plusieurs conditions de recherche.
Syntaxe
DAX
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
Paramètres
Terme Définition
result_columnName Nom d’une colonne existante qui contient la valeur que vous voulez
retourner. Il ne peut pas s’agir d’une expression.
search_columnName Nom d’une colonne existante. Elle peut se trouver dans la même table que
result_columnName ou dans une table associée. Il ne peut pas s’agir d’une
expression. Plusieurs paires de search_columnName et de search_value
peuvent être spécifiées.
Valeur de retour
Valeur de result_column sur la ligne où toutes les paires de search_column et
search_value ont une correspondance exacte.
En l’absence de résultat qui correspond à toutes les valeurs de recherche, la valeur
BLANK ou alternateResult (si elle est fourni) est retournée. En d’autres termes, la
fonction ne retourne pas de valeur de recherche si seuls certains critères sont remplis.
Remarques
S’il existe une relation entre les tables qui contiennent la colonne de résultat et les
tables qui contiennent les colonnes de recherche, dans la plupart des cas,
l’utilisation de la fonction RELATED au lieu de LOOKUPVALUE est plus efficace et
offre de meilleures performances.
Évitez d’utiliser les fonctions ISERROR ou IFERROR pour capturer une erreur
retournée par LOOKUPVALUE. Si certaines entrées de la fonction provoquent une
erreur quand une seule valeur de sortie ne peut pas être déterminée, le fait de
fournir un paramètre alternateResult est le moyen le plus fiable et le plus
performant pour gérer l’erreur.
Le paramètre alternateResult retourne une erreur s’il est spécifié dans une colonne
calculée PowerPivot.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
Dans cet exemple, LOOKUPVALUE est utilisé pour rechercher le taux moyen de la devise
utilisée pour payer la commande le jour où la commande a été passée :
DAX
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
La date de commande et la devise sont requises pour trouver le taux moyen pour la
date et la devise appropriées. OrderDateKey et CurrencyKey sont les clés utilisées pour
rechercher le taux moyen dans la table Taux monétaire.
Vous pouvez utiliser le taux de change pour calculer le montant des ventes en devise
locale avec :
DAX
Exemple 2
Dans cet exemple, la colonne calculée suivante définie dans la table Ventes utilise la
fonction LOOKUPVALUE pour retourner les valeurs de canal de la table Commande
client.
DAX
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
Toutefois, dans le cas présent, étant donné qu’il existe une relation entre les tables
Commande client et Ventes, il est plus efficace d’utiliser la fonction RELATED.
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
MATCHBY
Article • 20/10/2023
Dans les fonctions de fenêtre, définit les colonnes utilisées pour déterminer la manière
de faire correspondre des données et d’identifier la ligne actuelle.
Syntaxe
DAX
Paramètres
Terme Définition
matchBy_columnName (Facultatif) Nom d’une colonne existante à utiliser pour identifier la ligne
actuelle dans la <relation> d’une fonction de fenêtre.
RELATED() peut également être utilisé pour faire référence à une
colonne dans une table liée à une <relation>.
Valeur renvoyée
Cette fonction ne retourne pas de valeur.
Notes
Cette fonction s’utilise uniquement dans une expression de fonction de fenêtre.
Exemple
Voir OFFSET.
Voir aussi
Compréhension des fonctions ORDERBY, PARTITIONBY et MATCHBY
INDEX
DÉCALAGE
ORDERBY
PARTITIONBY
WINDOW
RANK
ROWNUMBER
Commentaires
Cette page a-t-elle été utile ? Yes No
OFFSET
Article • 20/10/2023
Retourne une seule ligne qui est positionnée avant ou après la ligne actuelle dans la
même table, avec un décalage donné. Si la ligne actuelle ne peut pas être déduite en
une seule ligne, plusieurs lignes peuvent être retournées.
Syntaxe
DAX
Paramètres
Terme Définition
delta Nombre de lignes avant (valeur négative) ou après (valeur positive) de la ligne
actuelle à partir desquelles les données doivent être obtenues. Peut être toute
expression DAX qui retourne une valeur scalaire.
relation (Facultatif) Expression de table à partir de laquelle la ligne de sortie est retournée
Si la valeur est spécifiée, toutes les colonnes de <partitionBy> doivent provenir de
celle-ci ou d’une table associée.
En cas d’omission :
– <orderBy> doit être spécifié explicitement.
- Toutes les colonnes <orderBy> et <partitionBy> doivent être des noms complets
de colonnes et provenir d’une table unique.
- La valeur par défaut est ALLSELECTED() de toutes les colonnes dans <orderBy> et
<partitionBy>.
orderBy (Facultatif) Clause ORDERBY() contenant les expressions qui définissent le tri de
chaque partition.
En cas d’omission :
- la <relation> doit être spécifiée explicitement.
- Par défaut, le tri est effectué par chaque colonne dans une <relation> qui n’est pas
déjà spécifiée dans <partitionBy>.
vides (Facultatif) Énumération qui définit comment gérer des valeurs vides lors du tri.
Ce paramètre est réservé à un usage futur.
Actuellement, la seule valeur prise en charge est DEFAULT, où le comportement pour
les valeurs numériques est que les valeurs vides sont classées entre les valeurs zéro
Terme Définition
et les valeurs négatives. Le comportement des chaînes est que les valeurs vides sont
triées avant toutes les chaînes, y compris les chaînes vides.
partitionBy (Facultatif) Clause PARTITIONBY() contenant les colonnes qui définissent la façon
dont la <relation> est partitionnée.
En cas d’omission, la <relation> est traitée comme une partition unique.
matchBy (Facultatif) Clause MATCHBY() contenant les colonnes qui définissent la manière de
faire correspondre les données et d’identifier la ligne actuelle.
Valeur retournée
Une ou plusieurs lignes de la <relation>.
Notes
À l’exception des colonnes ajoutées par les fonctions de table DAX, chaque colonne
dans la <relation>, quand <matchBy> n’est pas présent, ou chaque colonne dans
<matchBy> et <partitionBy>, quand <matchBy> est présent, doit avoir une valeur
externe correspondante permettant de définir la ligne actuelle à traiter, avec le
comportement suivant :
S’il existe exactement une colonne externe correspondante, sa valeur est utilisée.
S’il n’existe aucune colonne externe correspondante, alors :
OFFSET détermine d’abord toutes les colonnes qui n’ont aucune colonne
externe correspondante.
Pour chaque combinaison de valeurs existantes pour ces colonnes dans le
contexte parent de OFFSET, OFFSET est évalué, et une ligne est retournée.
La sortie finale d’OFFSET est une union de ces lignes.
S’il existe plusieurs colonnes externes correspondantes, une erreur est retournée.
Si toutes les colonnes de <relation> ont été ajoutées par les fonctions de table DAX,
une erreur est retournée.
Si OFFSET est utilisé dans une colonne calculée définie sur la même table que
<relation> et que <orderBy> est omis, une erreur est retournée.
Exemple 1
La requête DAX suivante :
DAX
DEFINE
VAR vRelation = SUMMARIZECOLUMNS (
DimProductCategory[EnglishProductCategoryName],
DimDate[CalendarYear],
"CurrentYearSales", SUM(FactInternetSales[SalesAmount])
)
EVALUATE
ADDCOLUMNS (
vRelation,
"PreviousYearSales",
SELECTCOLUMNS(
OFFSET (
-1,
vRelation,
ORDERBY([CalendarYear]),
PARTITIONBY([EnglishProductCategoryName])
),
[CurrentYearSales]
)
)
Retourne une table qui résume le total des ventes pour chaque catégorie de produit et
année civile, ainsi que le total des ventes de cette catégorie au cours de l’année
précédente.
Exemple 2
La requête DAX suivante :
DAX
DEFINE
MEASURE DimProduct[CurrentYearSales] = SUM(FactInternetSales[SalesAmount])
MEASURE DimProduct[PreviousYearSales] =
CALCULATE(SUM(FactInternetSales[SalesAmount]), OFFSET(-1, ,
ORDERBY(DimDate[CalendarYear])))
EVALUATE
SUMMARIZECOLUMNS (
DimDate[CalendarYear],
"CurrentYearSales", DimProduct[CurrentYearSales],
"PreviousYearSales", DimProduct[PreviousYearSales]
)
Utilise OFFSET() dans une mesure pour renvoyer une table qui résume les ventes totales
pour chaque année civile et les ventes totales de l’année précédente.
Exemple 3
La requête DAX suivante :
DAX
EVALUATE
ADDCOLUMNS (
FactInternetSales,
"Previous Sales Amount",
SELECTCOLUMNS (
OFFSET (
-1,
FactInternetSales,
ORDERBY ( FactInternetSales[SalesAmount], DESC ),
PARTITIONBY ( FactInternetSales[ProductKey] ),
MATCHBY( FactInternetSales[SalesOrderNumber],
FactInternetSales[SalesOrderLineNumber] )
),
FactInternetSales[SalesAmount]
)
)
Retourne la table FactInternetSales en ajoutant une colonne qui indique pour chaque
vente le montant de sa vente précédente, du même produit, dans l’ordre décroissant du
montant des ventes, la vente actuelle étant identifiée par SalesOrderNumber et
SalesOrderLineNumber. Sans MATCHBY, la requête retournerait une erreur, car la table
FactInternetSales ne comprend pas de colonnes de clés.
Voir aussi
INDEX
ORDERBY
PARTITIONBY
MATCHBY
WINDOW
RANK
ROWNUMBER
Commentaires
Cette page a-t-elle été utile ? Yes No
ORDERBY
Article • 20/10/2023
Définit les expressions qui déterminent l’ordre de tri dans chacune des partitions d’une
fonction WINDOW.
Syntaxe
DAX
Paramètres
Terme Définition
orderBy_expression (Facultatif) Toute expression scalaire utilisée pour trier les données dans
chacune des partitions d’une fonction WINDOW.
Notes
Cette fonction s’utilise uniquement dans une expression de fonction de fenêtre.
Exemple
Voir OFFSET.
Voir aussi
Compréhension des fonctions ORDERBY, PARTITIONBY et MATCHBY
INDEX
DÉCALAGE
PARTITIONBY
MATCHBY
WINDOW
RANK
ROWNUMBER
Commentaires
Cette page a-t-elle été utile ? Yes No
PARTITIONBY
Article • 20/10/2023
Définit les colonnes utilisées pour partitionner le paramètre <relation> d’une fonction
WINDOW.
Syntaxe
DAX
Paramètres
Terme Définition
Valeur renvoyée
Cette fonction ne retourne pas de valeur.
Notes
Cette fonction s’utilise uniquement dans une expression de fonction de fenêtre.
Exemple
Voir OFFSET.
Voir aussi
Compréhension des fonctions ORDERBY, PARTITIONBY et MATCHBY
INDEX
DÉCALAGE
ORDERBY
MATCHBY
WINDOW
RANK
ROWNUMBER
Commentaires
Cette page a-t-elle été utile ? Yes No
RANK
Article • 20/10/2023
Retourne le classement du contexte actuel dans la partition spécifiée triée selon l’ordre
spécifié. Si aucune correspondance n’est trouvée, rank est vide.
Syntaxe
DAX
Paramètres
Terme Définition
ties (Facultatif) Définit comment gérer le classement quand deux lignes ou plus sont à
égalité.
Si la valeur est spécifiée, la valeur prise en charge est DENSE ou SKIP.
Si aucune valeur n’est spécifiée
: SKIP par défaut
relation (Facultatif) Expression de table à partir de laquelle la ligne de sortie est retournée
Si vous en spécifiez une, toutes les colonnes <orderBy> et <partitionBy> doivent
provenir de celle-ci.
En cas d’omission :
- <orderBy> doit être spécifié explicitement.
- Toutes les colonnes <orderBy> et <partitionBy> doivent être complètes et
provenir d’une seule table.
- La valeur par défaut est ALLSELECTED() de toutes les colonnes dans <orderBy> et
<partitionBy>.
orderBy (Facultatif) Clause ORDERBY() contenant les colonnes qui définissent le tri de chaque
partition.
En cas d’omission :
- la <relation> doit être spécifiée explicitement.
- Par défaut, le tri est effectué par chaque colonne dans une <relation> qui n’est pas
déjà spécifiée dans <partitionBy>.
vides (Facultatif) Énumération qui définit comment gérer des valeurs vides lors du tri.
Les valeurs prises en charge sont :
valeurs négatives. Le comportement des chaînes est que les valeurs vides sont
triées avant toutes les chaînes, y compris les chaînes vides.
FIRST, les valeurs vides sont toujours classées au début, que l’ordre de tri soit
croissant ou décroissant.
LAST, les valeurs vides sont toujours classées à la fin, que l’ordre de tri soit
croissant ou décroissant.
Notez que quand le paramètres <blanks> et des valeurs vides dans la fonction
ORDERBY() sur une expression individuelle sont tous deux spécifiés, les valeurs
<vide> sur l’expression orderBy individuelle sont prioritaires pour l’expression
orderBy appropriée, et les expressions orderBy sans que <blanks> soit spécifié
respectent le paramètre <blanks> sur la fonction de la fenêtre parente.
partitionBy (Facultatif) Clause PARTITIONBY() contenant les colonnes qui définissent la façon
dont la <relation> est partitionnée.
En cas d’omission, la <relation> est traitée comme une partition unique.
matchBy (Facultatif) Clause MATCHBY() contenant les colonnes qui définissent la manière de
faire correspondre les données et d’identifier la ligne actuelle.
Valeur retournée
Numéro de classement du contexte actuel.
Notes
Chaque colonne <orderBy>, <partitionBy> et <matchBy> doit avoir une valeur
externe correspondante permettant de définir la ligne actuelle à traiter, avec le
comportement suivant :
S’il existe exactement une colonne externe correspondante, sa valeur est
utilisée.
S’il n’existe aucune colonne externe correspondante, alors :
RANK détermine d’abord toutes les colonnes <orderBy>, <partitionBy> et
<matchBy> qui n’ont aucune colonne externe correspondante.
Pour chaque combinaison de valeurs existantes pour ces colonnes dans le
contexte parent de RANK, RANK est évalué, et une ligne est retournée.
La sortie finale de RANK est un numéro de classement.
Si <matchBy> est présent, RANK essaie d’utiliser les colonnes dans <matchBy> et
<partitionBy> pour identifier la ligne actuelle.
Si les colonnes spécifiées dans <orderBy> et <partitionBy> ne peuvent pas
identifier de manière unique chaque ligne dans la <relation>, deux lignes ou plus
peuvent avoir le même classement et le classement est déterminé par le paramètre
Ties.
RANK retourne une valeur vide pour le nombre total de lignes. Il est recommandé
de tester votre expression de manière approfondie.
RANK n’est pas comparable à RANKX comme SUM est comparable à SUMX.
Exemple
La requête DAX suivante :
DAX
EVALUATE
ADDCOLUMNS(
'DimGeography',
"Rank",
RANK(
DENSE,
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
LAST,
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City]
asc
Renvoie une table qui classe chaque zone géographique avec le même
EnglishCountryRegionName, par StateProvinceName et City. Les valeurs de colonne
<orderBy> vides sont triées à la fin.
Voir aussi
INDEX
ORDERBY
PARTITIONBY
WINDOW
ROWNUMBER
Commentaires
Cette page a-t-elle été utile ? Yes No
REMOVEFILTERS
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur renvoyée
N/A. Consultez la section Remarques.
Notes
La fonction REMOVEFILTERS peut être utilisée uniquement pour effacer des filtres et non
pour retourner une table.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand
elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau des lignes
(RLS).
Exemple 1
Requête DAX
DAX
DEFINE
MEASURE FactInternetSales[TotalSales] = SUM(FactInternetSales[SalesAmount])
MEASURE FactInternetSales[%Sales] = DIVIDE([TotalSales],
CALCULATE([TotalSales],REMOVEFILTERS()))
EVALUATE
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL(DimProductCategory[EnglishProductCategoryName],
"IsGrandTotal"),
"TotalSales", [TotalSales],
"%Sales", [%Sales]
)
ORDER BY
[IsGrandTotal] DESC, [TotalSales] DESC
retourne :
Exemple 2
Requête DAX
DAX
DEFINE
MEASURE FactInternetSales[TotalSales] = SUM(FactInternetSales[SalesAmount])
MEASURE FactInternetSales[%Sales] = DIVIDE([TotalSales],
CALCULATE([TotalSales],REMOVEFILTERS(DimProductSubcategory[EnglishProductSubcategory
Name])))
EVALUATE
SUMMARIZECOLUMNS(
DimProductCategory[EnglishProductCategoryName],
DimProductSubcategory[EnglishProductSubcategoryName],
"TotalSales", [TotalSales],
"%Sales", [%Sales]
)
ORDER BY
DimProductCategory[EnglishProductCategoryName] ASC,
DimProductSubcategory[EnglishProductSubcategoryName] ASC
retourne :
Commentaires
Cette page a-t-elle été utile ? Yes No
ROWNUMBER
Article • 20/10/2023
Retourne le classement unique du contexte actuel dans la partition spécifiée triée selon
l’ordre spécifié. Si aucune correspondance n’est trouvée, rownumber est vide.
Syntaxe
DAX
Paramètres
Terme Définition
relation (Facultatif) Expression de table à partir de laquelle la ligne de sortie est retournée
Si vous en spécifiez une, toutes les colonnes <orderBy> et <partitionBy> doivent
provenir de celle-ci.
En cas d’omission :
- <orderBy> doit être spécifié explicitement.
- Toutes les colonnes <orderBy> et <partitionBy> doivent être complètes et
provenir d’une seule table.
- La valeur par défaut est ALLSELECTED() de toutes les colonnes dans <orderBy> et
<partitionBy>.
orderBy (Facultatif) Clause ORDERBY() contenant les colonnes qui définissent le tri de chaque
partition.
En cas d’omission :
- la <relation> doit être spécifiée explicitement.
- Par défaut, le tri est effectué par chaque colonne dans une <relation> qui n’est pas
déjà spécifiée dans <partitionBy>.
vides (Facultatif) Énumération qui définit comment gérer des valeurs vides lors du tri.
Les valeurs prises en charge sont :
Notez que quand le paramètres <blanks> et des valeurs vides dans la fonction
ORDERBY() sur une expression individuelle sont tous deux spécifiés, les valeurs
<vide> sur l’expression orderBy individuelle sont prioritaires pour l’expression
orderBy appropriée, et les expressions orderBy sans que <blanks> soit spécifié
respectent le paramètre <blanks> sur la fonction de la fenêtre parente.
partitionBy (Facultatif) Clause PARTITIONBY() contenant les colonnes qui définissent la façon
dont la <relation> est partitionnée.
En cas d’omission, la <relation> est traitée comme une partition unique.
matchBy (Facultatif) Clause MATCHBY() contenant les colonnes qui définissent la manière de
faire correspondre les données et d’identifier la ligne actuelle.
Valeur retournée
Numéro rownumber du contexte actuel.
Notes
Chaque colonne <orderBy>, <partitionBy> et <matchBy> doit avoir une valeur externe
correspondante permettant de définir la ligne actuelle à traiter, avec le comportement
suivant :
S’il existe exactement une colonne externe correspondante, sa valeur est utilisée.
S’il n’existe aucune colonne externe correspondante, alors :
ROWNUMBER détermine d’abord toutes les colonnes <orderBy>, <partitionBy>
et <matchBy> qui n’ont aucune colonne externe correspondante.
Pour chaque combinaison de valeurs existantes pour ces colonnes dans le
contexte parent de ROWNUMBER, ROWNUMBER est évalué, et une ligne est
retournée.
La sortie finale de ROWNUMBER est une union de ces lignes.
S’il existe plusieurs colonnes externes correspondantes, une erreur est retournée.
Si <matchBy> est présent, ROWNUMBER essaie d’utiliser les colonnes dans <matchBy>
et <partitionBy> pour identifier la ligne actuelle.
Si les colonnes spécifiées dans <orderBy> et <partitionBy> ne peuvent pas identifier de
manière unique chaque ligne dans la <relation>, alors :
Exemple
La requête DAX suivante :
DAX
EVALUATE
ADDCOLUMNS(
'DimGeography',
"UniqueRank",
ROWNUMBER(
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City]
asc
Renvoie une table qui classe de manière unique chaque zone géographique avec le
même EnglishCountryRegionName, par StateProvinceName et City.
Voir aussi
INDEX
ORDERBY
PARTITIONBY
WINDOW
RANK
Commentaires
Cette page a-t-elle été utile ?
Yes No
SELECTEDVALUE
Article • 20/10/2023
Retourne la valeur quand le contexte pour columnName a été réduit par filtrage à une
seule valeur distincte. Sinon, retourne alternateResult.
Syntaxe
DAX
SELECTEDVALUE(<columnName>[, <alternateResult>])
Paramètres
Terme Définition
columnName Nom d’une colonne existante, spécifié avec la syntaxe DAX standard. Il ne peut
pas s’agir d’une expression.
alternateResult (Facultatif) Valeur retournée quand le contexte pour columnName a été réduit
par filtrage à zéro ou à plusieurs valeurs distinctes. Quand elle est omise, la
valeur par défaut est BLANK().
Valeur de retour
Valeur quand le contexte pour columnName a été réduit par filtrage à une seule valeur
distincte. Sinon, alternateResult.
Notes
IF(HASONEVALUE(<columnName>), VALUES(<columnName>), <alternateResult>) est une
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante :
DAX
DEFINE
MEASURE DimProduct[Selected Color] = SELECTEDVALUE(DimProduct[Color], "No
Single Selection")
EVALUATE
SUMMARIZECOLUMNS
(ROLLUPADDISSUBTOTAL(DimProduct[Color], "Is Total"),
"Selected Color", [Selected Color])ORDER BY [Is Total] ASC,
[Color] ASC
Commentaires
Cette page a-t-elle été utile ? Yes No
WINDOW
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
from_type Modifie le comportement du paramètre <from>. Les valeurs possibles sont ABS
(absolu) et REL (relatif). La valeur par défaut est REL.
to Identique à <from>, mais indique la fin de la fenêtre. La dernière ligne est incluse
dans la fenêtre.
relation (Facultatif) Expression de table à partir de laquelle la ligne de sortie est retournée
Si la valeur est spécifiée, toutes les colonnes de <partitionBy> doivent provenir de
celle-ci ou d’une table associée.
En cas d’omission :
– <orderBy> doit être spécifié explicitement.
- Toutes les colonnes <orderBy> et <partitionBy> doivent être des noms complets
de colonnes et provenir d’une table unique.
- La valeur par défaut est ALLSELECTED() de toutes les colonnes dans <orderBy> et
<partitionBy>.
Terme Définition
orderBy (Facultatif) Clause ORDERBY() contenant les expressions qui définissent le tri de
chaque partition.
En cas d’omission :
- la <relation> doit être spécifiée explicitement.
- Par défaut, le tri est effectué par chaque colonne dans une <relation> qui n’est pas
déjà spécifiée dans <partitionBy>.
vides (Facultatif) Énumération qui définit comment gérer des valeurs vides lors du tri.
Ce paramètre est réservé à un usage futur.
Actuellement, la seule valeur prise en charge est DEFAULT, où le comportement pour
les valeurs numériques est que les valeurs vides sont classées entre les valeurs zéro
et les valeurs négatives. Le comportement des chaînes est que les valeurs vides sont
triées avant toutes les chaînes, y compris les chaînes vides.
partitionBy (Facultatif) Clause PARTITIONBY() contenant les colonnes qui définissent la façon
dont la <relation> est partitionnée. En cas d’omission, la <relation> est traitée
comme une partition unique.
matchBy (Facultatif) Clause MATCHBY() contenant les colonnes qui définissent la manière de
faire correspondre les données et d’identifier la ligne actuelle.
Valeur retournée
Toutes les lignes de la fenêtre.
Notes
À l’exception des colonnes ajoutées par les fonctions de table DAX, chaque colonne
dans la <relation>, quand <matchBy> n’est pas présent, ou chaque colonne dans
<matchBy> et <partitionBy>, quand <matchBy> est présent, doit avoir une valeur
externe correspondante permettant de définir la ligne actuelle à traiter. Si <from_type>
et <to_type> ont la valeur ABS, ce qui suit s’applique uniquement aux colonnes
<partitionBy> :
S’il existe exactement une colonne externe correspondante, sa valeur est utilisée.
S’il n’existe aucune colonne externe correspondante :
WINDOW détermine d’abord toutes les colonnes qui n’ont aucune colonne
externe correspondante.
Pour chaque combinaison de valeurs existantes pour ces colonnes dans le
contexte parent de WINDOW, WINDOW est évalué, et les lignes
correspondantes sont retournées.
La sortie finale de WINDOW est une union de ces lignes.
S’il existe plusieurs colonnes externes correspondantes, une erreur est retournée.
Si toutes les colonnes de <relation> ont été ajoutées par les fonctions de table DAX,
une erreur est retournée.
Si WINDOW est utilisé dans une colonne calculée définie sur la même table que
<relation> et que <orderBy> est omis, une erreur est retournée.
Si le début de la fenêtre se trouve avant la première ligne, la valeur est définie sur la
première ligne. De même, si la fin de la fenêtre se trouve après la dernière ligne de la
partition, elle est définie sur la dernière ligne.
Exemple 1
La mesure suivante :
DAX
Retourne la moyenne sur 3 jours des prix unitaires pour chaque produit. Notez que la
fenêtre de 3 jours se compose de trois jours pendant lesquels le produit a des ventes,
pas nécessairement trois jours calendaires consécutifs.
Exemple 2
La mesure suivante :
DAX
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Retourne la somme actuelle pour le Total des ventes sur [nombre du mois de l’année],
en redémarrant pour chaque exercice financier :
Voir aussi
INDEX
DÉCALAGE
ORDERBY
PARTITIONBY
RANK
ROWNUMBER
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions financières
Article • 20/10/2023
Les fonctions financières dans DAX s’utilisent dans des formules qui effectuent des
calculs financiers, par exemple, pour connaître la valeur actuelle nette et le taux de
rendement. Ces fonctions sont similaires aux fonctions financières utilisées dans
Microsoft Excel.
ACCRINT Retourne les intérêts courus pour un titre qui rapporte des intérêts
périodiquement.
ACCRINTM Retourne les intérêts courus pour un titre qui rapporte des intérêts à l’échéance.
COUPDAYBS Retourne le nombre de jours entre le début de la période d’un coupon et sa date
de règlement.
COUPDAYS Retourne le nombre de jours dans la période de coupon qui contient la date de
règlement.
CUMIPMT Retourne les intérêts cumulés payés sur un prêt entre start_period et end_period.
CUMPRINC Retourne le capital cumulé payé sur un prêt entre start_period et end_period.
BdD Retourne l’amortissement d’un actif pour une période spécifiée, calculé avec la
méthode de l’amortissement dégressif à taux fixe.
DDB Retourne l’amortissement d’un actif pour une période spécifiée, calculé selon la
méthode de l’amortissement dégressif à taux double ou une autre méthode que
Fonction Description
vous spécifiez.
DOLLARDE Convertit un prix en dollars exprimé sous la forme d’une partie entière et d’une
partie fractionnaire, comme 1,02, en prix en dollars exprimé sous la forme d’un
nombre décimal.
DOLLARFR Convertit un prix en dollars exprimé sous la forme d’une partie entière et d’une
partie fractionnaire, comme 1,02, en prix en dollars exprimé sous la forme d’un
nombre décimal.
DURATION Retourne la durée de Macaulay pour une valeur nominale supposée de 100 $.
EFFECT Retourne le taux d’intérêt annuel effectif, compte tenu du taux d’intérêt annuel
nominal et du nombre de périodes de calcul de l’intérêt par an.
VC Calcule la valeur future d’un investissement sur la base d’un taux d’intérêt
constant.
IPMT Retourne les intérêts payés sur une période donnée pour un investissement avec
des paiements périodiques constants et un taux d’intérêt constant.
ISPMT Calcule les intérêts payés (ou reçus) pour la période spécifiée d’un prêt (ou d’un
investissement) avec des paiements de principal identiques.
MDURATION Retourne la durée de Macauley modifiée pour un titre ayant une valeur nominale
hypothétique de 100 $.
NOMINAL Retourne le taux d’intérêt annuel nominal compte tenu du taux effectif et du
nombre de périodes de calcul de l’intérêt par an.
ODDFPRICE Retourne le cours par valeur nominale de 100 USD d’un titre dont la première
période est décalée (courte ou longue).
ODDFYIELD Retourne le rendement d’un titre dont la première période est inhabituelle
(courte ou longue).
ODDLPRICE Retourne le prix par valeur nominale de 100 $ d’un titre dont la période du
dernier coupon est inhabituelle (courte ou longue).
ODDLYIELD Retourne le rendement d’un titre dont la dernière période est inhabituelle (courte
ou longue).
PPMT Retourne, pour une période donnée, la part du paiement du principal d’un
investissement avec des paiements périodiques constants et un taux d’intérêt
constant.
PRICE Retourne le prix par valeur nominale de 100 USD d’un titre rapportant des
intérêts périodiques.
PRICEDISC Retourne le cours par valeur nominale de 100 USD pour un titre au-dessous du
pair.
PRICEMAT Retourne le prix par valeur nominale de 100 $ d’un titre rapportant des intérêts à
l’échéance.
PV Calcule la valeur actuelle d’un prêt ou d’un investissement sur la base d’un taux
d’intérêt constant.
SYD Retourne l’amortissement d’un actif pour une période spécifiée, calculé selon la
méthode de l’amortissement proportionnel à l’ordre numérique inversé des
années.
TBILLPRICE Retourne le prix d’un bon du Trésor par valeur nominale de 100 $.
VDB Retourne l’amortissement d’un actif pour une période spécifiée (périodes
partielles incluses), calculé selon la méthode de l’amortissement dégressif à taux
double ou une autre méthode que vous spécifiez.
XIRR Retourne le taux de retour interne pour une planification de flux de trésorerie qui
n’est pas nécessairement périodique.
XNPV Retourne la valeur actualisée pour une planification de flux de trésorerie qui n’est
pas nécessairement périodique.
YIELD Retourne le rendement d’un titre qui rapporte des intérêts périodiquement.
Fonction Description
YIELDMAT Retourne le rendement annuel d’un titre qui rapporte des intérêts à l’échéance.
Commentaires
Cette page a-t-elle été utile ? Yes No
ACCRINT
Article • 20/10/2023
Retourne les intérêts courus pour un titre qui rapporte des intérêts périodiques.
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
calc_method (Facultatif) Valeur logique qui spécifie le mode de calcul du total des intérêts
courus est calculé quand la date de règlement est postérieure à la date de
first_interest. Si calc_method est omis, sa valeur présumée est TRUE.
- Si calc_method a la valeur TRUE ou est omis, ACCRINT retourne le total des
intérêts courus entre l’émission (issue) et le règlement (settlement).
- Si calc_method a la valeur FALSE, ACCRINT retourne les intérêts courus entre
first_interest et le règlement.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Intérêts courus.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. En DAX, le 30 décembre 1899 correspond au
jour 0 et le 1er janvier 2008 correspond au jour 39 448, car il s’agit du 39 448 e jour
après le 30 décembre 1899.
NC
rate Ai
ACCRINT = par × × ∑
f requency NL i
i=1
où :
Ai = nombre de jours courus pour la période de quasi-coupon i th
comprise
dans une période décalée.
NC = nombre de périodes de quasi-coupon comprises dans une période
décalée. Si ce nombre contient une fraction, arrondissez-le au nombre entier
supérieur.
NL i = longueur normale en jours de la période de quasi-coupon dans une
période décalée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Données Description
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
ACCRINT(DATE(2007,3,1), DATE(2008,8,31), DATE(2008,5,1), 0.1, 1000, 2, 0)
}
Retourne l’intérêt couru entre l’émission et le règlement, pour un titre dont les termes
sont spécifiés ci-dessus.
[Valeur]
116,944444444444
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
ACCRINT(DATE(2007,3,1), DATE(2008,8,31), DATE(2008,5,1), 0.1, 1000, 2, 0,
FALSE)
}
Retourne l’intérêt couru entre first_interest et settlement, pour un titre dont les termes
sont spécifiés ci-dessus.
[Valeur]
66,9444444444445
Commentaires
Cette page a-t-elle été utile ? Yes No
ACCRINTM
Article • 20/10/2023
Retourne les intérêts courus pour un titre qui rapporte des intérêts à l’échéance.
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Intérêts courus.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
A
ACCRINTM = par × rate ×
D
où :
A = nombre de jours courus comptés selon une base mensuelle. Pour les
intérêts à l’échéance, le nombre de jours entre la date d’émission et la date
d’échéance est utilisé.
D = Base Annuelle.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
10 % Coupon en pourcentage
DAX
EVALUATE
{
ACCRINTM(DATE(2008,4,1), DATE(2008,6,15), 0.1, 1000, 3)
}
[Valeur]
20,5479452054795
Commentaires
Cette page a-t-elle été utile ? Yes No
AMORDEGRC
Article • 20/10/2023
Retourne l’amortissement pour chaque période comptable. Cette fonction est fournie
pour le système comptable français. Si un actif est acheté au milieu de la période
comptable, l’amortissement calculé au prorata est pris en compte. La fonction est
similaire à AMORLINC, à ceci près qu’un coefficient d’amortissement est appliqué dans
le calcul en fonction de la durée de vie des actifs.
Syntaxe
DAX
Paramètres
Terme Définition
period Période.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
1 Réel
Base Système de date
Valeur de retour
Amortissement pour chaque période comptable.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Entre 5 et 6 ans 2
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
2 400 Coût
1 Période
15 % Taux d’amortissement
DAX
EVALUATE
{
AMORDEGRC(2400, DATE(2008,8,19), DATE(2008,12,31), 300, 1, 0.15, 1)
}
[Valeur]
776
Commentaires
Cette page a-t-elle été utile ?
Yes No
AMORLINC
Article • 20/10/2023
Retourne l’amortissement pour chaque période comptable. Cette fonction est fournie
pour le système comptable français. Si un bien est acheté au milieu de la période
comptable, l’amortissement calculé au prorata est pris en compte.
Syntaxe
DAX
Paramètres
Terme Définition
period Période.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
1 Réel
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. En DAX, le 30 décembre 1899 correspond au
jour 0 et le 1er janvier 2008 correspond au jour 39 448, car il s’agit du 39 448 e jour
après le 30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
2 400 Coût
1 Période
15 % Taux d’amortissement
DAX
EVALUATE
{
AMORLINC(2400, DATE(2008,8,19), DATE(2008,12,31), 300, 1, 0.15, 1)
}
[Valeur]
360
Commentaires
Cette page a-t-elle été utile ? Yes No
COUPDAYBS
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Nombre de jours entre le début de la période d’un coupon et sa date de règlement
(settlement).
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
DAX
EVALUATE
{
COUPDAYBS(DATE(2011,1,25), DATE(2011,11,15), 2, 1)
}
[Valeur]
71
Commentaires
Cette page a-t-elle été utile ? Yes No
COUPDAYS
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Nombre de jours dans la période du coupon qui contient la date de règlement.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
EVALUATE
{
COUPDAYS(DATE(2011,1,25), DATE(2011,11,15), 2, 1)
}
[Valeur]
181
Commentaires
Cette page a-t-elle été utile ? Yes No
COUPDAYSNC
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Nombre de jours entre la date de règlement et la date du prochain coupon.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
EVALUATE
{
COUPDAYSNC(DATE(2011,1,25), DATE(2011,11,15), 2, 1)
}
[Valeur]
110
Commentaires
Cette page a-t-elle été utile ? Yes No
COUPNCD
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Date du prochain coupon après la date du règlement.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
EVALUATE
{
COUPNCD(DATE(2011,1,25), DATE(2011,11,15), 2, 1)
}
Retourne la date du coupon suivant après la date de règlement, pour une obligation
avec les conditions spécifiées ci-dessus.
[Valeur]
15/05/2011 12:00:00
Commentaires
Cette page a-t-elle été utile ? Yes No
COUPNUM
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Nombre de coupons dus entre la date de règlement (settlement) et la date d’échéance
(maturity).
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
DAX
EVALUATE
{
COUPNUM(DATE(2007,1,25), DATE(2008,11,15), 2, 1)
}
[Valeur]
Commentaires
Cette page a-t-elle été utile ? Yes No
COUPPCD
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Date de coupon précédente avant la date de règlement.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
EVALUATE
{
COUPPCD(DATE(2011,1,25), DATE(2011,11,15), 2, 1)
}
Retourne la date de coupon précédente avant la date de règlement, pour une obligation
utilisant les termes spécifiés ci-dessus.
[Valeur]
15/11/2010 00:00:00
Commentaires
Cette page a-t-elle été utile ? Yes No
CUMIPMT
Article • 20/10/2023
Retourne les intérêts cumulés payés sur un emprunt entre start_period et end_period.
Syntaxe
DAX
Paramètres
Terme Définition
pv Valeur actuelle.
start_period Première période prise en compte dans le calcul. Doit être comprise entre 1 et
end_period (incluse).
end_period Dernière période prise en compte dans le calcul. Doit être comprise entre
start_period et nper (inclus).
type Moment choisi du remboursement. Les valeurs acceptées sont listées en dessous
de ce tableau.
Type Minutage
Valeur de retour
Intérêts cumulés versés au cours de la période spécifiée.
Notes
Au moment de spécifier rate et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un emprunt de quatre ans
à un taux d’intérêt annuel de 10 pour cent, spécifiez 0,1/12 pour rate et 4*12 pour
nper. Si vous effectuez des paiements annuels pour le même prêt, utilisez 0,1 pour
rate et 4 pour nper.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Données Description
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
CUMIPMT(0.09/12, 30*12, 125000, 13, 24, 1)
}
Retourne le montant total des intérêts payés la deuxième année de remboursement, des
périodes 13 à 24, en partant du principe que les paiements sont effectués au début de
chaque mois.
[Valeur]
-11052.3395838718
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
CUMIPMT(0.09/12, 30*12, 125000, 1, 1, 0)
}
Retourne les intérêts payés en une seul fois le premier mois, en partant du principe que
le paiement est effectué à la fin du mois.
[Valeur]
-937,5
Commentaires
Cette page a-t-elle été utile ? Yes No
CUMPRINC
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
pv Valeur actuelle.
start_period Première période prise en compte dans le calcul. Doit être comprise entre 1 et
end_period (incluse).
end_period Dernière période prise en compte dans le calcul. Doit être comprise entre
start_period et nper (inclus).
type Moment choisi du remboursement. Les valeurs acceptées sont listées en dessous
de ce tableau.
Type Minutage
Valeur de retour
Capital accumulé remboursé au cours de la période spécifiée.
Notes
Au moment de spécifier rate et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un emprunt de quatre ans
à un taux d’intérêt annuel de 10 pour cent, spécifiez 0,1/12 pour rate et 4*12 pour
nper. Si vous effectuez des paiements annuels pour le même prêt, utilisez 0,1 pour
rate et 4 pour nper.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Données Description
30 Durée en années
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
CUMPRINC(0.09/12, 30*12, 125000, 13, 24, 1)
}
Retourne le montant total du capital remboursé au cours de la deuxième année de
remboursement, de la période 13 à 24, en partant du principe que les paiements sont
effectués au début de chaque mois.
[Valeur]
-927,153472378062
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
CUMPRINC(0.09/12, 30*12, 125000, 1, 1, 0)
}
Retourne le capital remboursé en une seule fois le premier mois, en partant du principe
que le paiement est effectué à la fin du mois.
[Valeur]
-68,2782711809784
Commentaires
Cette page a-t-elle été utile ? Yes No
DB
Article • 20/10/2023
Retourne l’amortissement d’un actif pour une période spécifiée, calculé avec la méthode
de l’amortissement dégressif à taux fixe.
Syntaxe
DAX
Paramètres
Terme Définition
à faire parler Nombre de périodes pendant lesquelles l’actif est amorti (parfois appelé durée
vos données de vie utile de l’actif).
period Période pour laquelle vous souhaitez calculer l’amortissement. Elle doit utiliser
les mêmes unités que life. Doit être comprise entre 1 et la valeur de life
(incluse).
month (Facultatif) Nombre de mois dans la première année. Si month est omis, sa
valeur supposée est 12.
Valeur de retour
Amortissement sur la période spécifiée.
Notes
La méthode de l’amortissement dégressif fixe calcule l’amortissement avec un taux
fixe. DB utilise la formule suivante pour calculer l’amortissement au cours d’une
période :
é é é
(cost − amortissement total des p riodes pr c dentes) × rate
où :
1
salvage
rate = 1 − ((
cost
(
) lif e
)
), arrondi à trois décimales
12
é é é
(cost − amortissement total des p riodes pr c dentes) × rate × (12 − month)
12
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
DB(1000000, 0, 6, 1, 2)
}
Retourne l’amortissement d’un actif sur les deux derniers mois de la première année, en
supposant qu’il sera de 0 USD après 6 ans.
[Valeur]
166666,666666667
Exemple 2
L’exemple suivant calcule l’amortissement total de tous les actifs sur plusieurs années
pendant leur durée de vie. Ici, la première année inclut seulement 7 mois
d’amortissement et la dernière année, uniquement 5 mois.
DAX
DEFINE
VAR NumDepreciationPeriods = MAX(Asset[LifeTimeYears])+1
VAR DepreciationPeriods = GENERATESERIES(1, NumDepreciationPeriods)
EVALUATE
ADDCOLUMNS (
DepreciationPeriods,
"Current Period Total Depreciation",
SUMX (
FILTER (
Asset,
[Value] <= [LifetimeYears]+1
),
DB([InitialCost], [SalvageValue], [LifetimeYears], [Value], 7)
)
)
Commentaires
Cette page a-t-elle été utile ? Yes No
DDB
Article • 20/10/2023
Retourne l’amortissement d’un actif pour une période spécifiée, calculé selon la méthode de l’amortissement dégressif à taux double ou
une autre méthode que vous spécifiez.
Syntaxe
DAX
Paramètres
Terme Définition
salvage Valeur au terme de l’amortissement (parfois appelée valeur résiduelle de l’actif). Cette valeur peut être égale à 0.
à faire parler vos Nombre de périodes pendant lesquelles l’actif est amorti (parfois appelé durée de vie utile de l’actif).
données
period Période pour laquelle vous souhaitez calculer l’amortissement. Elle doit utiliser les mêmes unités que life. Doit être comprise entre
1 et life (inclus).
facteur (Facultatif) Taux auquel le solde diminue. Si factor est omis, la valeur par défaut est 2 (méthode de l’amortissement dégressif à
taux double).
Valeur de retour
Amortissement sur la période spécifiée.
Notes
La méthode de l’amortissement dégressif à taux double calcule l’amortissement avec un taux accéléré. L’amortissement est au plus
haut pendant la première période, puis diminue au cours des périodes suivantes. DDB utilise la formule suivante pour calculer
l’amortissement au cours d’une période :
f actor
é é é
Min((cost − amortissement total des p riodes pr c dentes) × ( é
), (cost − salvage − amortissement total des p riodes pr c d é é
lif e
Modifiez factor si vous ne souhaitez pas utiliser la méthode de l’amortissement dégressif à taux double.
Utilisez la fonction VDB pour passer à la méthode de l’amortissement linéaire quand l’amortissement est supérieur à celui obtenu par
la méthode de l’amortissement dégressif.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des colonnes calculées
ou des règles de sécurité au niveau des lignes (RLS).
Exemples
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
DDB(1000000, 0, 10, 5, 1.5)
}
Retourne l’amortissement d’un actif la 5 année, en supposant que sa valeur sera égale à 0 USD après 10 ans. Ce calcul utilise un facteur
e
de 1,5.
[Valeur]
78300,9375
Exemple 2
L’exemple suivant calcule l’amortissement total de tous les actifs sur plusieurs années pendant leur durée de vie. Ce calcul utilise le facteur
par défaut de 2 (méthode de l’amortissement dégressif à taux double).
DAX
DEFINE
VAR NumDepreciationPeriods = MAX(Asset[LifeTimeYears])
VAR DepreciationPeriods = GENERATESERIES(1, NumDepreciationPeriods)
EVALUATE
ADDCOLUMNS (
DepreciationPeriods,
"Current Period Total Depreciation",
SUMX (
FILTER (
Asset,
[Value] <= [LifetimeYears]
),
DDB([InitialCost], [SalvageValue], [LifetimeYears], [Value])
)
)
Commentaires
Cette page a-t-elle été utile ? Yes No
DISC
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Taux d’actualisation.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
redemption − par B
DISC = ×
redemption DSM
où :
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
97,975 Price
DAX
EVALUATE
{
DISC(DATE(2018,7,1), DATE(2048,1,1), 97.975, 100, 1)
}
Retourne le taux d’actualisation d’une obligation dont les termes sont spécifiés ci-
dessus.
[Valeur]
0,000686384169121348
Commentaires
Cette page a-t-elle été utile ? Yes No
DOLLARDE
Article • 20/10/2023
Convertit un prix en dollars exprimé sous la forme d’une partie entière et d’une partie
fractionnaire, comme 1,02, en prix en dollars exprimé sous la forme d’un nombre
décimal. Les nombres fractionnaires en dollars sont parfois utilisés pour les cours des
titres.
Syntaxe
DAX
DOLLARDE(<fractional_dollar>, <fraction>)
Paramètres
Terme Définition
fractional_dollar Nombre exprimé sous la forme d’une partie entière et d’une partie
fractionnaire, séparées par un symbole décimal.
Valeur de retour
Valeur décimale de fractional_dollar.
Notes
La partie fractionnaire de la valeur est divisée par un entier que vous spécifiez. Par
exemple, si vous souhaitez que votre prix soit exprimé avec une précision de 1/16
de dollar, vous divisez la partie fractionnaire par 16. Dans ce cas, 1.02 représente
$1.125 ($1 + 2/16 = $1.125).
Exemple
La requête DAX suivante :
DAX
EVALUATE
{
DOLLARDE(1.02, 16)
}
Retourne 1,125, le prix décimal du prix fractionnaire d’origine, 1,02, lu comme 1 et 2/16.
Comme la fraction a la valeur 16, le prix a une précision de 1/16 de dollar.
Commentaires
Cette page a-t-elle été utile ? Yes No
DOLLARFR
Article • 20/10/2023
Convertit un prix en dollars exprimé sous la forme d’un nombre décimal en prix en
dollars exprimé sous la forme d’une partie entière et d’une partie fractionnaire, comme
1,02. Les montants en dollars fractionnaires sont parfois utilisés pour les cours des titres.
Syntaxe
DAX
DOLLARFR(<decimal_dollar>, <fraction>)
Paramètres
Terme Définition
Valeur de retour
Valeur fractionnaire de decimal_dollar, exprimée sous la forme d’une partie entière et
d’une partie fractionnaire.
Notes
fraction est arrondi à l’entier le plus proche.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante :
DAX
EVALUATE
{
DOLLARFR(1.125, 16)
}
Retourne 1,02, qui se lit 1 et 2/16, qui est le prix fractionnaire correspondant du prix
décimal d’origine, 1,125. Comme la valeur de fraction est égale à 16, le prix a une
précision de 1/16 de dollar.
Commentaires
Cette page a-t-elle été utile ? Yes No
DURATION
Article • 20/10/2023
Retourne la durée de Macaulay pour une valeur nominale hypothétique de 100 USD. La
durée est définie comme la moyenne pondérée de la valeur actuelle des flux de
trésorerie et est utilisée comme mesure de la réponse d’un prix d’obligation aux
changements de rendement.
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
Base Base de comptage des jours
3 Réel/365
4 Européen 30/360
Valeur de retour
Durée de Macaulay.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
DAX
EVALUATE
{
DURATION(DATE(2018,7,1), DATE(2048,1,1), 0.08, 0.09, 2, 1)
}
Retourne la durée de Macaulay d’une obligation selon les termes spécifiés ci-dessus.
[Valeur]
10,9191452815919
Commentaires
Cette page a-t-elle été utile ? Yes No
EFFECT
Article • 20/10/2023
Retourne le taux d’intérêt annuel effectif, compte tenu du taux d’intérêt annuel nominal
et du nombre de périodes de calcul de l’intérêt par an.
Syntaxe
DAX
EFFECT(<nominal_rate>, <npery>)
Paramètres
Terme Définition
Valeur de retour
Taux d’intérêt annuel effectif.
Notes
EFFECT se calcule comme suit :
npery
nominal_rate
EFFECT = (1 + ) − 1
npery
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
DAX
EVALUATE
{
EFFECT(0.0525, 4)
}
[Valeur]
0,0535426673707584
Commentaires
Cette page a-t-elle été utile ? Yes No
VC
Article • 20/10/2023
Calcule la valeur future d’un investissement sur la base d’un taux d’intérêt constant.
Vous pouvez utiliser la fonction FV pour des paiements périodiques, des paiements
constants et/ou un paiement forfaitaire unique.
Syntaxe
DAX
Paramètres
Terme Définition
pmt Paiement effectué à chaque période ; il ne peut pas changer pendant la durée de
l’annuité. En général, pmt inclut le principal et les intérêts, mais pas d’autres frais ou
taxes.
pv (Facultatif) Valeur actuelle ou montant forfaitaire actuel d’une série de paiements futurs.
Si pv est omis, sa valeur supposée est BLANK.
type (Facultatif) Valeur 0 ou 1 qui indique à quel moment les paiements sont dus. Si type est
omis, la valeur par défaut est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
1 Au début de la période
Remarque : Pour avoir une description plus complète des arguments de la fonction FV
ainsi que des informations supplémentaires sur les fonctions d’annuité, consultez la
fonction PV.
Valeur de retour
Valeur future d’un investissement.
Notes
Au moment de spécifier rate et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un prêt de quatre ans à un
taux d’intérêt annuel de 12 %, spécifiez 0,12/12 pour rate et 4*12 pour nper. Si
vous effectuez des paiements annuels pour le même prêt, utilisez 0,12 pour rate et
4 pour nper.
Pour tous les arguments, les décaissements, tels que les dépôts sur un compte
d’épargne, sont représentés par des nombres négatifs alors que les encaissements,
tels que les versements de dividendes, sont représentés par des nombres positifs.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
10 Nombre de paiements
DAX
EVALUATE
{
FV(0.06/12, 10, -200, -500, 1)
}
Retourne la valeur future d’un investissement selon les conditions spécifiées ci-dessus.
[Valeur]
2581,40337406012
Commentaires
Cette page a-t-elle été utile ? Yes No
INTRATE
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Taux d’intérêt.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
redemption − investment B
INTRATE = ×
investment DIM
où :
B = nombre de jours dans une année, selon la base annuelle.
DIM = nombre de jours entre la date de règlement (settlement) et la date
d’échéance (maturity).
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
$1,000,000 Investissement
2 Base Réel/360
DAX
EVALUATE
{
INTRATE(DATE(2008,2,15), DATE(2008,5,15), 1000000, 1014420, 2)
}
Retourne le taux d’actualisation d’une obligation selon les termes spécifiés ci-dessus.
[Valeur]
0,05768
Commentaires
Cette page a-t-elle été utile ? Yes No
IPMT
Article • 20/10/2023
Retourne les intérêts payés sur une période donnée pour un investissement avec des
paiements périodiques constants et un taux d’intérêt constant.
Syntaxe
DAX
Paramètres
Terme Définition
per Période pour laquelle vous souhaitez déterminer l’intérêt. Doit être comprise entre 1 et
nper (inclus).
fv (Facultatif) Valeur capitalisée ou solde de caisse que vous souhaitez obtenir après le
dernier paiement. Si fv est omis, sa valeur présumée est BLANK.
type (Facultatif) Valeur 0 ou 1 qui indique à quel moment les paiements sont dus. Si type est
omis, la valeur par défaut est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
1 Au début de la période
Valeur de retour
Paiement des intérêts pour la période donnée.
Notes
Au moment de spécifier rate et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un prêt de quatre ans à un
taux d’intérêt annuel de 12 %, spécifiez 0,12/12 pour rate et 4*12 pour nper. Si
vous effectuez des paiements annuels pour le même prêt, utilisez 0,12 pour rate et
4 pour nper.
Pour tous les arguments, les décaissements, tels que les dépôts sur un compte
d’épargne, sont représentés par des nombres négatifs alors que les encaissements,
tels que les versements de dividendes, sont représentés par des nombres positifs.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Données Description
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
IPMT(0.1/12, 1, 3*12, 8000)
}
Retourne les intérêts mensuels dus le premier mois pour un prêt avec les conditions
spécifiées ci-dessus.
[Valeur]
-66,6666666666667
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
IPMT(0.1, 3, 3, 8000)
}
Retourne les intérêts annuels dus la dernière année pour un prêt avec les conditions
spécifiées ci-dessus, où les remboursements sont effectués annuellement.
[Valeur]
-292,447129909366
Commentaires
Cette page a-t-elle été utile ? Yes No
ISPMT
Article • 20/10/2023
Calcule les intérêts payés (ou reçus) pour la période spécifiée d’un prêt (ou d’un
investissement) avec des paiements de principal identiques.
Syntaxe
DAX
Paramètres
Terme Définition
per Période pour laquelle vous souhaitez trouver l’intérêt. Doit être comprise entre 0 et nper-
1 (inclus).
Valeur de retour
Intérêts payés (ou reçus) pour la période spécifiée.
Notes
Au moment de spécifier rate et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un emprunt de quatre ans
à un taux d’intérêt annuel de 12 %, spécifiez 0,12/12 pour rate et 4*12 pour nper.
Si vous effectuez des paiements annuels pour le même prêt, utilisez 0,12 pour rate
et 4 pour nper.
Pour tous les arguments, les décaissements, tels que les dépôts sur un compte
d’épargne ou tout autre retrait, sont représentés par des nombres négatifs alors
que les encaissements, tels que les chèques de dividendes et autres dépôts, sont
représentés par des nombres positifs.
ISPMT compte chaque période commençant par zéro, et non pas un.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
4 Nombre de périodes
10 % Tarif
Pour vous montrer quand utiliser ISPMT, le tableau d’amortissement ci-dessous utilise
un calendrier de remboursement du principal avec des paiements identiques selon les
termes spécifiés ci-dessus. Les frais d’intérêt pour chaque période sont calculés en
multipliant le taux par le solde impayé de la période précédente. Quant au paiement
pour chaque période, il est égal au montant du principal (identique d’une période à
l’autre) plus l’intérêt pour la période.
4 000,00
DAX
DEFINE
VAR NumPaymentPeriods = 4
VAR PaymentPeriods = GENERATESERIES(0, NumPaymentPeriods-1)
EVALUATE
ADDCOLUMNS (
PaymentPeriods,
"Interest Payment",
ISPMT(0.1, [Value], NumPaymentPeriods, 4000)
)
0 -400
1 -300
2 -200
3 -100
Commentaires
Cette page a-t-elle été utile ? Yes No
MDURATION
Article • 20/10/2023
Retourne la durée de Macauley modifiée pour un titre ayant une valeur nominale
hypothétique de 100 USD.
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Durée de Macauley modifiée.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
DURATION
MDURATION =
Market yield
1 + ( )
Coupon payments per year
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
8% Coupon en pourcentage
9% Taux de rendement
DAX
EVALUATE
{
MDURATION(DATE(2008,1,1), DATE(2016,1,1), 0.08, 0.09, 2, 1)
}
Retourne la durée de Macaulay modifiée pour une obligation aux conditions spécifiées
ci-dessus.
[Valeur]
5,73566981391884
Commentaires
Cette page a-t-elle été utile ? Yes No
NOMINAL
Article • 20/10/2023
Syntaxe
DAX
NOMINAL(<effect_rate>, <npery>)
Paramètres
Terme Définition
Valeur de retour
Taux d’intérêt annuel nominal.
Notes
La relation entre NOMINAL et EFFET est illustrée dans l’équation suivante :
nominal_rate npery
EFFECT = (1 + ) − 1
npery
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
DAX
EVALUATE
{
NOMINAL(0.053543, 4)
}
[Valeur]
0,052500319868356
Commentaires
Cette page a-t-elle été utile ? Yes No
NPER
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
pmt Paiement effectué à chaque période ; il ne peut pas changer pendant la durée de
l’annuité. En général, pmt inclut le principal et les intérêts, mais pas d’autres frais ou
taxes.
fv (Facultatif) Valeur capitalisée ou solde de caisse que vous souhaitez obtenir après le
dernier paiement. Si fv est omis, sa valeur présumée est BLANK.
type (Facultatif) Valeur 0 ou 1 qui indique à quel moment les paiements sont dus. Si type est
omis, la valeur par défaut est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
1 Au début de la période
Valeur de retour
Nombre de périodes d’un investissement.
Notes
type est arrondi à l’entier le plus proche.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
DAX
EVALUATE
{
NPER(0.12/12, -100, -1000, 10000, 1)
}
Retourne le nombre de périodes de l’investissement décrit par les termes spécifiés ci-
dessus.
[Valeur]
59,6738656742946
Commentaires
Cette page a-t-elle été utile ? Yes No
ODDFPRICE
Article • 20/10/2023
Retourne le cours par valeur nominale de 100 USD d’un titre dont la première période est décalée (courte ou longue).
Syntaxe
DAX
Paramètres
Terme Définition
settlement Date de règlement du titre. La date de règlement du titre correspond à la date suivant la date d’émission, quand le titre est cédé à l’acheteur.
maturity Date d’échéance du titre. La date d’échéance correspond à la date d’expiration du titre.
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency = 1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel,
frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa valeur supposée est 0. Les valeurs acceptées sont listées en
dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Cours par valeur nominale de 100 USD.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à pouvoir être utilisées dans les calculs. Dans DAX, le
30 décembre 1899 correspond au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le 30 décembre 1899.
La date de règlement (settlement) est la date à laquelle un acheteur achète un coupon, par exemple une obligation. La date
d’échéance (maturity) correspond à la date d’expiration du coupon. Par exemple, supposez qu’une obligation d’une durée de 30 ans a
été émise le 1er janvier 2008 et qu’elle a été achetée six mois plus tard. La date d’émission est le 1er janvier 2008, la date de
règlement (settlement) est le 1er juillet 2008 et la date d’échéance (maturity) est le 1er janvier 2038, soit 30 ans après le
1er janvier 2008, la date d’émission.
où :
A = nombre de jours entre le début de la période de coupon et la date de règlement (jours courus).
DSC = nombre de jours entre le règlement et la date du prochain coupon.
DFC = nombre de jours entre le début du premier coupon décalé et la date du premier coupon.
E = nombre de jours dans la période de coupon.
N = nombre de coupons payables entre la date de règlement et la date de rachat. (Si ce nombre contient une fraction, il est
arrondi au nombre entier supérieur.)
rate NC DC i
rate
100 × × [∑ ] N
100 ×
redemption f requency i=1 NL i f requency
ODDFPRICE = [ ] + [ ] + [∑ ] − [100 ×
DSC DSC DSC
yld yld yld
(N+N q + ) (N q + ) (k−N q + ) f re
(1 + ) E
(1 + ) E
k=1 (1 + ) E
f requency f requency f requency
où :
Ai = nombre de jours depuis le début de la i ou dernière période de quasi-coupon dans la période décalée.
e
DC i = nombre de jours entre la date de valeur (ou date d’émission) et le premier quasi-coupon (i = 1 ) ou nombre de jours dans
le quasi-coupon (i = 2 ,..., i = NC ).
DSC = nombre de jours entre le règlement et la date du prochain coupon.
E = nombre de jours dans la période de coupon.
N = nombre de coupons payables entre la date du premier coupon réel et la date de rachat. (Si ce nombre contient une fraction, il
est arrondi au nombre entier supérieur.)
NC = nombre de périodes de quasi-coupon comprises dans la période décalée. (Si ce nombre contient une fraction, il est arrondi
au nombre entier supérieur.)
NL i = longueur normale en jours de la dernière ou i période complète de quasi-coupon dans la période décalée.
e
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des colonnes calculées
ou des règles de sécurité au niveau des lignes (RLS).
Exemple
Données Description des arguments
2 Fréquence semestrielle
1 Base Réel/réel
La requête DAX suivante :
DAX
EVALUATE
{
ODDFPRICE(DATE(2008,11,11), DATE(2021,3,1), DATE(2008,10,15), DATE(2009,3,1), 0.0785, 0.0625, 100.00, 2, 1)
}
Retourne le cours par valeur nominale de 100 USD d’un titre dont la première période est décalée (courte ou longue) selon les termes
spécifiés ci-dessus.
[Valeur]
113,597717474079
Commentaires
Cette page a-t-elle été utile ? Yes No
ODDFYIELD
Article • 20/10/2023
Retourne le rendement d’un titre dont la première période est inhabituelle (courte ou
longue).
Syntaxe
DAX
Paramètres
Terme Définition
pr Prix du titre.
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Rendement du titre.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
ODDFYIELD se calcule selon une méthode itérative. Elle utilise la méthode Newton
basée sur la formule employée pour la fonction ODDFPRICE. Le rendement change
en 100 itérations jusqu’à ce que le prix estimé avec le rendement donné soit
proche du prix. Consultez ODDFPRICE pour connaître la formule utilisée par
ODDFYIELD.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description des arguments
84,50 Price
2 Fréquence semestrielle
0 Base 30/360
DAX
EVALUATE
{
ODDFYIELD(DATE(2008,11,11), DATE(2021,3,1), DATE(2008,10,15),
DATE(2009,3,1), 0.0575, 84.50, 100, 2, 0)
}
Retourne le rendement d’un titre dont la première période est inhabituelle (courte ou
longue), selon les conditions spécifiées ci-dessus.
[Valeur]
0,0772455415972989
Commentaires
Cette page a-t-elle été utile ? Yes No
ODDLPRICE
Article • 20/10/2023
Retourne le prix par valeur nominale de 100 USD d’un titre dont la période du dernier
coupon est inhabituelle (courte ou longue).
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
Base Base de comptage des jours
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Cours par valeur nominale de 100 USD.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante :
2 Fréquence semestrielle
0 Base 30/360
DAX
EVALUATE
{
ODDLPRICE(DATE(2008,2,7), DATE(2008,6,15), DATE(2007,10,15), 0.0375,
0.0405, 100, 2, 0)
}
Retourne le prix par valeur nominale de 100 USD d’un titre dont la période du dernier
coupon est inhabituelle (courte ou longue), selon les termes spécifiés ci-dessus.
[Valeur]
99,8782860147213
Commentaires
Cette page a-t-elle été utile ? Yes No
ODDLYIELD
Article • 20/10/2023
Retourne le rendement d’un titre dont la dernière période est inhabituelle (courte ou longue).
Syntaxe
DAX
Paramètres
Terme Définition
settlement Date de règlement du titre. La date de règlement du titre correspond à la date suivant la date d’émission, quand le titre est
cédé à l’acheteur.
maturity Date d’échéance du titre. La date d’échéance correspond à la date d’expiration du titre.
pr Prix du titre.
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency = 1 ; s’il est semestriel, frequency = 2 ; et s’il
est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa valeur supposée est 0. Les valeurs acceptées
sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Rendement du titre.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à pouvoir être utilisées dans les calculs.
Dans DAX, le 30 décembre 1899 correspond au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour
après le 30 décembre 1899.
La date de règlement (settlement) est la date à laquelle un acheteur achète un coupon, par exemple une obligation. La
date d’échéance (maturity) correspond à la date d’expiration du coupon. Par exemple, supposez qu’une obligation
d’une durée de 30 ans a été émise le 1er janvier 2008 et qu’elle a été achetée six mois plus tard. La date d’émission est
le 1er janvier 2008, la date de règlement (settlement) le 1er juillet 2008 et la date d’échéance (maturity) le
1er janvier 2038, soit 30 ans après le 1er janvier 2008, date d’émission.
NC DC i 100×rate NC Ai 100×rate
(redemption + ((∑ ) × )) − (par + ((∑ ) × ))
i=1 NL i f requency i=1 NL i f requency f requency
ODDLYIELD = [ ] × [ ]
NC Ai 100×rate NC DSC i
par + ((∑ ) × ) (∑ )
i=1 NL i f requency i=1 NL i
où :
Ai = nombre de jours courus pour la i ou dernière période de quasi-coupon incluse dans la période irrégulière, en
e
irrégulière.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des
colonnes calculées ou des règles de sécurité au niveau des lignes (RLS).
Exemple
La requête DAX suivante :
$99.875 Price
2 Fréquence semestrielle
0 Base 30/360
DAX
EVALUATE
{
ODDLYIELD(DATE(2008,4,20), DATE(2008,6,15), DATE(2007,12,24), 0.0375, 99.875, 100, 2, 0)
}
Retourne le rendement d’un titre dont la dernière période est inhabituelle (courte ou longue), selon les conditions spécifiées
ci-dessus.
[Valeur]
0,0451922356291692
Commentaires
Cette page a-t-elle été utile ? Yes No
PDURATION
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Nombre de périodes.
Notes
PDURATION utilise l’équation suivante :
log(f v) − log(pv)
PDURATION =
log(1 + rate)
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
PDURATION(0.025, 2000, 2200)
}
[Valeur]
3,85986616262266
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
PDURATION(0.025/12, 1000, 1200)
}
Retourne le nombre de mois requis pour qu’un investissement de 1 000 USD, rapportant
2,5 % par an, atteigne 1 200 USD.
[Valeur]
87,6054764193714
Commentaires
Cette page a-t-elle été utile ? Yes No
PMT
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
pv Valeur actuelle ou montant total que représente à la date d’aujourd’hui une série de
remboursements futurs ; il s’agit du capital.
fv (Facultatif) Valeur capitalisée ou solde de caisse que vous souhaitez obtenir après le
dernier paiement. Si fv est omis, sa valeur présumée est BLANK.
type (Facultatif) Valeur 0 ou 1 qui indique à quel moment les paiements sont dus. Si type est
omis, la valeur par défaut est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
1 Au début de la période
Remarque : Pour une description plus complète des arguments de PMT, consultez la
fonction PV.
Valeur de retour
Montant d’un seul remboursement d’emprunt.
Notes
Le paiement retourné par PMT comprend le capital et les intérêts, mais pas les
taxes, les paiements de réserves ni les frais parfois associés aux prêts.
Au moment de spécifier rate et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un emprunt de quatre ans
à un taux d’intérêt annuel de 12 %, spécifiez 0,12/12 pour rate et 4*12 pour nper.
Si vous effectuez des paiements annuels pour le même emprunt, utilisez 0,12 pour
rate et 4 pour nper.
Conseil : Pour déterminer le montant total payé sur la durée de l’emprunt, multipliez la
valeur PMT retournée par nper.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Exemple 1
Données Description
DAX
EVALUATE
{
PMT(0.08/12, 10, 10000, 0, 1)
}
[Valeur]
-1030,16432717797
Exemple 2
Données Description
DAX
EVALUATE
{
PMT(0.06/12, 18*12, 0, 50000)
}
[Valeur]
-129,081160867991
Retourne le montant à épargner chaque mois pour disposer de 50 000 USD au bout de
18 ans, selon les termes spécifiés ci-dessus.
Commentaires
Cette page a-t-elle été utile ? Yes No
PPMT
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
fv (Facultatif) Valeur capitalisée ou solde de caisse que vous souhaitez obtenir après le
dernier paiement. Si fv est omis, sa valeur présumée est BLANK.
type (Facultatif) Valeur 0 ou 1 qui indique à quel moment les paiements sont dus. Si type est
omis, la valeur par défaut est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
1 Au début de la période
Remarque : Pour obtenir une description plus complète des arguments dans PPMT,
consultez la fonction PV.
Valeur de retour
Paiement sur le principal pour une période donnée.
Notes
Au moment de spécifier rate et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un emprunt de quatre ans
à un taux d’intérêt annuel de 12 %, spécifiez 0,12/12 pour rate et 4*12 pour nper.
Si vous effectuez des paiements annuels pour le même emprunt, utilisez 0,12 pour
rate et 4 pour nper.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
Données Description des arguments
DAX
EVALUATE
{
PPMT(0.1/12, 1, 2*12, 2000.00)
}
Retourne le paiement du principal effectué au cours du premier mois d’un prêt selon les
termes spécifiés ci-dessus.
[Valeur]
-75,6231860083663
Exemple 2
Données Description des arguments
DAX
EVALUATE
{
PPMT(0.08, 10, 10, 200000.00)
}
Retourne le paiement du principal effectué au cours de la 10e année d’un prêt selon les
termes spécifiés ci-dessus.
[Valeur]
-27598,0534624214
Commentaires
Cette page a-t-elle été utile ? Yes No
PRICE
Article • 20/10/2023
Retourne le prix par valeur nominale de 100 USD d’un titre rapportant des intérêts périodiques.
Syntaxe
DAX
Paramètres
Terme Définition
settlement Date de règlement du titre. La date de règlement du titre correspond à la date suivant la date d’émission,
quand le titre est cédé à l’acheteur.
maturity Date d’échéance du titre. La date d’échéance correspond à la date d’expiration du titre.
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency = 1 ; s’il est semestriel,
frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa valeur supposée est 0. Les
valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Cours par valeur nominale de 100 USD.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à pouvoir être utilisées
dans les calculs. Dans DAX, le 30 décembre 1899 correspond au jour 0 et le 1er janvier 2008 au jour
39 448, car c’est le 39 448 e jour après le 30 décembre 1899.
La date de règlement (settlement) est la date à laquelle un acheteur achète un coupon, par exemple
une obligation. La date d’échéance (maturity) correspond à la date d’expiration du coupon. Par
exemple, supposez qu’une obligation d’une durée de 30 ans a été émise le 1er janvier 2008 et qu’elle a
été achetée six mois plus tard. La date d’émission est le 1er janvier 2008, la date de règlement
(settlement) le 1er juillet 2008 et la date d’échéance (maturity) le 1er janvier 2038, soit 30 ans après la
date d’émission, le 1er janvier 2008.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est
utilisée dans des colonnes calculées ou des règles de sécurité au niveau des lignes (RLS).
Important :
Quand N > 1, où N est le nombre de coupons payables entre la date de règlement (settlement) et la
date de rachat (redemption), PRICE est calculé comme suit :
rate
N 100 ×
redemption f requency rate A
PRICE = [ ] + [∑ ] − [100 × × ]
DSC DSC
yld yld
(N −1+ ) (k−1+ ) f requency E
(1 + ) E ) k=1 (1 + ) E
f requency f requency
DSR = E − A
rate
T1 = 100 × + redemption
f requency
yld DSR
T2 = × + 1
f requency E
rate A
T3 = 100 × ×
f requency E
T1
PRICE = − T3
T2
où :
DSC = nombre de jours entre le règlement (settlement) et la date du prochain coupon.
E = nombre de jours dans la période du coupon qui contient la date de règlement (settlement).
A = nombre de jours entre le début de la période du coupon et la date de règlement (settlement).
Exemple
Données Description des arguments
2 Fréquence semestrielle
0 Base 30/360
DAX
EVALUATE
{
PRICE(DATE(2008,2,15), DATE(2017,11,15), 0.0575, 0.065, 100, 2, 0)
}
[Valeur]
94,6343616213221
Commentaires
Cette page a-t-elle été utile ? Yes No
PRICEDISC
Article • 20/10/2023
Retourne le cours par valeur nominale de 100 USD pour un titre au-dessous du pair.
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Cours par valeur nominale de 100 USD.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
DSM
PRICEDISC = redemption − discount × redemption ×
B
où :
B = nombre de jours dans une année, qui dépend de la base annuelle.
DIM = nombre de jours entre le règlement (settlement) et l’échéance
(maturity).
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description des arguments
2 Base Réel/360
DAX
EVALUATE
{
PRICEDISC(DATE(2008,2,16), DATE(2008,3,1), 0.0525, 100, 2)
}
Retourne le cours par valeur nominale de 100 USD pour l’obligation dont les termes
sont spécifiés ci-dessus.
[Valeur]
99,7958333333333
Commentaires
Cette page a-t-elle été utile ? Yes No
PRICEMAT
Article • 20/10/2023
Retourne le cours par valeur nominale de 100 USD d’un titre rapportant des intérêts à
l’échéance.
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Cours par valeur nominale de 100 USD.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
DIM
100 + ( × rate × 100) A
B
PRICEMAT = − ( × rate × 100)
DSM
1 + ( × yld) B
B
où :
B = nombre de jours dans une année, qui dépend de la base annuelle.
DIM = nombre de jours entre le règlement (settlement) et l’échéance
(maturity).
DIM = nombre de jours entre l’émission (issue) et l’échéance (maturity).
A = nombre de jours entre l’émission (issue) et le règlement (settlement).
Exemple
La requête DAX suivante :
Données Description
0 Base 30/360
DAX
EVALUATE
{
PRICEMAT(DATE(2008,2,15), DATE(2008,4,13), DATE(2007,11,11), 0.061, 0.061,
0)
}
Retourne le cours par valeur nominale de 100 USD d’un titre dont les termes sont
spécifiés ci-dessus.
[Valeur]
99,9844988755569
Commentaires
Cette page a-t-elle été utile ? Yes No
PV
Article • 20/10/2023
Calcule la valeur actuelle d’un emprunt ou d’un investissement sur la base d’un taux
d’intérêt constant. Vous pouvez utiliser la fonction PV avec des paiements périodiques
constants (tels qu’un crédit immobilier ou un autre emprunt) et/ou une valeur future qui
correspond à votre objectif d’investissement.
Syntaxe
DAX
Paramètres
Terme Définition
rate Taux d’intérêt par période. Par exemple, si vous obtenez un crédit automobile à un taux
d’intérêt annuel de 10 % et que vous effectuez des remboursements mensuels, votre
taux d’intérêt par mois est de 0,1/12, soit 0,0083. Vous devez entrer 0,1/12 ou 0,0083
dans la formule pour rate.
nper Nombre total de périodes de remboursement dans une annuité. Par exemple, si vous
obtenez un crédit auto d’une durée de quatre ans et que vous effectuez des
remboursements mensuels, votre prêt comptera 4*12 (ou 48) périodes. Vous devez
entrer 48 dans la formule pour nper.
pmt Paiement effectué à chaque période qui ne peut pas changer pendant la durée de
l’annuité. En règle générale, pmt inclut le capital et les intérêts, mais pas d’autres frais ou
taxes. Par exemple, le montant des remboursements mensuels pour un crédit auto de
10 000 USD sur quatre ans à 12 pour cent est de 263,33 USD. Vous devez entrer -263,33
dans la formule pour pmt.
fv (Facultatif) Valeur capitalisée ou solde de caisse que vous souhaitez obtenir après le
dernier paiement. Si fv est omis, sa valeur présumée est BLANK. Par exemple, si vous
souhaitez épargner 50 000 USD pour financer un projet spécial dans 18 ans, 50 000 USD
est la valeur capitalisée. Vous pouvez ensuite faire une estimation à partir d’un taux
d’intérêt raisonnable pour déterminer le montant que vous devez épargner chaque mois.
type (Facultatif) Valeur 0 ou 1 qui indique à quel moment les paiements sont dus. Si type est
omis, la valeur par défaut est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
Le paramètre type accepte les valeurs suivantes :
1 Au début de la période
Valeur de retour
Valeur actuelle d’un emprunt ou investissement.
Notes
Au moment de spécifier rate et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un prêt de quatre ans à un
taux d’intérêt annuel de 12 %, spécifiez 0,12/12 pour rate et 4*12 pour nper. Si
vous effectuez des paiements annuels pour le même emprunt, utilisez 0,12 pour
rate et 4 pour nper.
Une annuité est une série de paiements comptants fixes effectués sur une période
continue. Par exemple, un crédit automobile ou un crédit immobilier est une
annuité. Pour plus d’informations, consultez la description de chaque fonction
d’annuité.
Dans les fonctions d’annuité, les montants que vous déboursez, par un versement
au titre d’un placement, sont représentées par un nombre négatif ; les montants
que vous recevez, par exemple un chèque de dividendes, sont représentés par un
nombre positif. Par exemple, un montant de 1 000 USD déposé à la banque serait
représenté par l’argument -1000 si vous étiez le déposant et par l’argument 1000
si vous étiez la banque.
(pmt × nper) + pv + f v = 0
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
$500.00 Somme déboursée au titre d’une annuité d’assurance à la fin de chaque mois.
DAX
EVALUATE
{
PV(0.08/12, 12*20, 500.00, 0, 0)
}
Retourne la valeur actuelle d’une annuité selon les termes spécifiés ci-dessus.
[Valeur]
-59777,1458511878
Commentaires
Cette page a-t-elle été utile ? Yes No
RATE
Article • 20/10/2023
Retourne le taux d’intérêt par période d’une annuité. RATE est calculé par itération et
peut avoir zéro ou plusieurs solutions. Si les résultats successifs de RATE ne convergent
pas après 20 itérations (avec une précision de 0,0000001), une erreur est retournée.
Syntaxe
DAX
Paramètres
Terme Définition
pmt Paiement effectué à chaque période qui ne peut pas changer pendant la durée de
l’annuité. En général, pmt inclut le principal et les intérêts, mais pas d’autres frais ou
taxes.
fv (Facultatif) Valeur capitalisée ou solde de caisse que vous souhaitez obtenir après le
dernier paiement. Si fv est omis, la valeur par défaut est 0 (la valeur future d’un prêt, par
exemple, est 0).
type (Facultatif) Valeur 0 ou 1 qui indique à quel moment les paiements sont dus. Si type est
omis, la valeur par défaut est 0. Les valeurs acceptées sont listées en dessous de ce
tableau.
1 Au début de la période
Valeur de retour
Taux d’intérêt par période.
Notes
Au moment de spécifier guess et nper, veillez à la cohérence des unités que vous
utilisez. Si vous effectuez des paiements mensuels pour un prêt de quatre ans à un
taux d’intérêt annuel de 12 %, spécifiez 0,12/12 pour guess et 4*12 pour nper. Si
vous effectuez des paiements annuels pour le même prêt, utilisez 0,12 pour guess
et 4 pour nper.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Données Description
4 Années du prêt
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
RATE(4*12, -200, 8000)
}
[Valeur]
0,00770147248820137
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
RATE(4*12, -200, 8000) * 12
}
[Valeur]
0,0924176698584164
Commentaires
Cette page a-t-elle été utile ? Yes No
RECEIVED
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Montant reçu à l’échéance.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
investment
RECEIVED =
DIM
1 − (discount × )
B
où :
B = nombre de jours dans une année, selon la base annuelle.
DIM = nombre de jours entre la date d’émission (issue) et la date d’échéance
(maturity).
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante :
Données Description
$1,000,000.00 Investissement
2 Base Réel/360
DAX
EVALUATE
{
RECEIVED(DATE(2008,2,15), DATE(2008,5,15), 1000000.00, 0.0575, 2)
}
Retourne le montant total à recevoir à l’échéance, pour une obligation avec les
conditions spécifiées ci-dessus.
[Valeur]
1014584,6544071
Commentaires
Cette page a-t-elle été utile ? Yes No
RRI
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Taux d’intérêt équivalent.
Notes
RRI retourne le taux d’intérêt calculé à l’aide de l’équation suivante, où nper est le
nombre de périodes, pv la valeur actuelle et f v la valeur future :
1
( )
nper
fv
( ) − 1
pv
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
4 Années investies
DAX
EVALUATE
{
RRI(4*12, 10000, 21000)
}
Retourne un taux d’intérêt équivalent pour la croissance d’un investissement selon les
termes spécifiés ci-dessus.
[Valeur]
0,0155771057566627
Commentaires
Cette page a-t-elle été utile ? Yes No
AmorLin
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
à faire parler vos Nombre de périodes à l’issue desquelles le bien est amorti (parfois appelé
données durée de vie utile du bien).
Valeur de retour
Amortissement linéaire d’un bien pour une période.
Notes
Une erreur est retournée si :
life = 0.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
$30,000 Coût
DAX
EVALUATE
{
SLN(30000, 7500, 10)
}
Retourne la provision pour amortissement annuelle en utilisant les termes spécifiés ci-
dessus.
[Valeur]
2 250
Commentaires
Cette page a-t-elle été utile ? Yes No
SYD
Article • 20/10/2023
Retourne l’amortissement d’un actif pour une période spécifiée, calculé selon la
méthode de l’amortissement proportionnel à l’ordre numérique inversé des années.
Syntaxe
DAX
Paramètres
Terme Définition
à faire parler vos Nombre de périodes à l’issue desquelles l’actif est amorti (parfois appelé
données durée de vie utile de l’actif).
per Période. Doit être spécifiée dans les mêmes unités que life. Doit être
comprise entre 1 et la valeur de life (incluse).
Valeur de retour
Amortissement pour une période spécifiée, calculé selon la méthode de l’amortissement
proportionnel à l’ordre numérique inversé des années.
Notes
SYD se calcule comme suit :
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Données Description
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
SYD(30000.00, 7500.00, 10, 1)
}
[Valeur]
4090,90909090909
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
SYD(30000.00, 7500.00, 10, 10)
}
[Valeur]
409,090909090909
Commentaires
Cette page a-t-elle été utile ? Yes No
TBILLEQ
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Rendement équivalent à une obligation du bon du Trésor.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. En DAX, le 30 décembre 1899 correspond au
jour 0 et le 1er janvier 2008 correspond au jour 39 448, car il s’agit du 39 448 e jour
après le 30 décembre 1899.
365 × discount
TBILLEQ =
360 − (discount × DSM)
où :
DSM est le nombre de jours entre le règlement (settlement) et l’échéance
(maturity) calculé sur la base d’une année de 360 jours.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
DAX
EVALUATE
{
TBILLEQ(DATE(2008,3,31), DATE(2008,6,1), 0.0914)
}
Retourne le rendement équivalent à une obligation d’un bon du Trésor selon les termes
spécifiés ci-dessus.
[Valeur]
0,094151493565943
Commentaires
Cette page a-t-elle été utile ? Yes No
TBILLPRICE
Article • 20/10/2023
Retourne le cours par valeur nominale de 100 USD pour un bon du Trésor.
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Cours du bon du Trésor par valeur nominale de 100 USD.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. En DAX, le 30 décembre 1899 correspond au
jour 0 et le 1er janvier 2008 correspond au jour 39 448, car il s’agit du 39 448 e jour
après le 30 décembre 1899.
discount × DSM
TBILLPRICE = 100 × (1 − )
360
où :
DSM = nombre de jours entre le règlement (settlement) et l’échéance
(maturity), à l’exclusion de toute date d’échéance postérieure de plus d’une
année civile à la date de règlement.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
DAX
EVALUATE
{
TBILLPRICE(DATE(2008,3,31), DATE(2008,6,1), 0.09)
}
Retourne le cours du bon du Trésor par valeur nominale de 100 USD, selon les termes
spécifiés ci-dessus.
[Valeur]
98,45
Commentaires
Cette page a-t-elle été utile ? Yes No
TBILLYIELD
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Rendement du bon du Trésor.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. En DAX, le 30 décembre 1899 correspond au
jour 0 et le 1er janvier 2008 correspond au jour 39 448, car il s’agit du 39 448 e jour
après le 30 décembre 1899.
100 − pr 360
TBILLYIELD = ×
pr DSM
où :
DSM = nombre de jours entre le règlement (settlement) et l’échéance
(maturity), à l’exclusion de toute date d’échéance postérieure de plus d’une
année civile à la date de règlement.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante :
Données Description
DAX
EVALUATE
{
TBILLYIELD(DATE(2008,3,31), DATE(2008,6,1), 98.45)
}
Retourne le rendement d’un bon du Trésor selon les termes spécifiés ci-dessus.
[Valeur]
0,0914169629253426
Commentaires
Cette page a-t-elle été utile ? Yes No
VDB
Article • 20/10/2023
Retourne l’amortissement d’un actif pour une période donnée (périodes partielles
incluses), calculé selon la méthode de l’amortissement dégressif à taux double ou une
autre méthode que vous spécifiez. VDB est l’acronyme de Variable Declining Balance
(solde dégressif variable).
Syntaxe
DAX
Paramètres
Terme Définition
à faire parler Nombre de périodes pendant lesquelles l’actif est amorti (parfois appelé durée
vos données de vie utile de l’actif).
end_period Période de fin pour laquelle vous souhaitez calculer l’amortissement. end_period
doit utiliser les mêmes unités que life. Doit être comprise entre start_period et
life (inclus).
facteur (Facultatif) Taux auquel le solde diminue. Si factor est omis, la valeur par défaut
est 2 (méthode de l’amortissement dégressif à taux double). Modifiez factor si
vous ne souhaitez pas utiliser la méthode de l’amortissement dégressif à taux
double. Pour obtenir une description de la méthode de l’amortissement
dégressif à taux double, consultez DDB.
Valeur de retour
Amortissement sur la période spécifiée.
Notes
Une erreur est retournée si :
cost < 0.
salvage < 0.
life < 1.
start_period < 1 ou start_period > end_period.
end_period < start_period ou end_period > life.
factor < 0.
no_switch ne correspond pas à la valeur TRUE ou FALSE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Données Description
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{
VDB(2400, 300, 10*365, 0, 1)
}
[Valeur]
1,31506849315068
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
VDB(2400, 300, 10*12, 6, 18, 3)
}
facteur de 3.
[Valeur]
540,185558199698
Exemple 3
La requête DAX suivante :
DAX
EVALUATE
{
VDB(2400, 300, 10, 0, 0.875, 1.5)
}
Retourne l’amortissement d’un actif au cours du premier exercice après son acquisition,
en supposant que les lois fiscales vous limitent à 150 % d’amortissement du solde
dégressif. L’actif est acquis au milieu du premier trimestre de l’exercice.
[Valeur]
315
Commentaires
Cette page a-t-elle été utile ? Yes No
XIRR
Article • 20/10/2023
Retourne le taux de retour interne pour une planification de flux de trésorerie qui n'est
pas nécessairement périodique.
Syntaxe
DAX
Paramètres
Terme Définition
tableau Table pour laquelle les expressions de valeurs et de dates doivent être calculées.
values Expression qui retourne la valeur de flux de trésorerie pour chaque ligne de la
table.
dates Expression qui retourne la date de flux de trésorerie pour chaque ligne de la
table.
alternateResult (Facultatif) Valeur retournée à la place d’une erreur lorsqu’une solution ne peut
pas être déterminée.
Valeur de retour
Taux de retour interne pour les entrées données. Si le calcul ne parvient pas à retourner
un résultat valide, une erreur ou une valeur spécifiée en tant que alternateResult est
retournée.
Remarques
La valeur est calculée comme taux qui satisfait la fonction suivante :
N
Pj
∑
d −d
j 1
Où :
Pj est le j paiement
e
Évitez d’utiliser les fonctions ISERROR ou IFERROR pour capturer une erreur
retournée par XIRR. Si certaines entrées de la fonction peuvent entraîner une
erreur sans solution, le fait de fournir un paramètre alternateResult est le moyen le
plus fiable et le plus performant pour gérer l’erreur.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule suivante calcule le taux de retour interne de la table CashFlows :
DAX
Date Paiement
1/1/2014 -10000
1/3/2014 2750
30/10/2014 4250
15/02/2015 3250
1/4/2015 2750
Retourne la valeur actuelle pour une planification de flux de trésorerie qui n’est pas
nécessairement périodique.
Syntaxe
DAX
Paramètres
Terme Définition
tableau Table pour laquelle les expressions de valeurs et de dates doivent être calculées.
values Expression qui retourne la valeur de flux de trésorerie pour chaque ligne de la table.
dates Expression qui retourne la date de flux de trésorerie pour chaque ligne de la table.
rate Taux de remise à appliquer au cash flow pour chaque ligne de la table.
Valeur de retour
Valeur nette actuelle.
Remarques
La valeur est calculée comme suit :
N
Pj
∑
d −d
j 1
Où :
Pj est le j paiement
e
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant calcule la valeur actuelle de la table CashFlows :
DAX
Date Paiement
1/1/2014 -10000
1/3/2014 2750
30/10/2014 4250
15/02/2015 3250
1/4/2015 2750
Commentaires
Cette page a-t-elle été utile ? Yes No
YIELD
Article • 20/10/2023
Retourne le rendement d’un titre qui rapporte des intérêts périodiques. Utilisez YIELD
pour calculer le rendement d’une obligation.
Syntaxe
DAX
Paramètres
Terme Définition
frequency Nombre de versements de coupons par an. Si le paiement est annuel, frequency =
1 ; s’il est semestriel, frequency = 2 ; et s’il est trimestriel, frequency = 4.
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
Base Base de comptage des jours
3 Réel/365
4 Européen 30/360
Valeur de retour
Rendement du titre.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
S’il existe une période de coupon ou moins avant le rachat, YIELD se calcule
comme suit :
où :
A = nombre de jours entre le début de la période de coupon et la date de
règlement (jours courus).
DSR = nombre de jours entre la date de règlement (settlement) et la date de
rachat (redemption).
E = nombre de jours dans la période de coupon.
S’il existe plusieurs périodes de coupon avant le rachat, YIELD se calcule par une
centaine d’itérations. La résolution utilise la méthode Newton, basée sur la formule
utilisée pour la fonction PRICE. Le rendement change tant que le cours estimé par
rapport au rendement n’est pas proche du cours.
settlement et maturity sont tronqués en entiers.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
95,04287 Prx
DAX
EVALUATE
{
YIELD(DATE(2008,2,15), DATE(2016,11,15), 0.0575, 95.04287, 100, 2,0)
}
0,0650000068807314
Commentaires
Cette page a-t-elle été utile ? Yes No
YIELDDISC
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Rendement annuel.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données -
99,795 Price
2 Base Réel/360
DAX
EVALUATE
{
YIELDDISC(DATE(2008,2,16), DATE(2008,3,1), 99.795, 100, 2)
}
Retourne le rendement annuel du titre, compte tenu des termes spécifiés ci-dessus.
[Valeur]
0,0528225719868583
Commentaires
Cette page a-t-elle été utile ? Yes No
YIELDMAT
Article • 20/10/2023
Retourne le rendement annuel d’un titre qui rapporte des intérêts à l’échéance.
Syntaxe
DAX
Paramètres
Terme Définition
basis (Facultatif) Type de la base de comptage des jours à utiliser. Si basis est omis, sa
valeur supposée est 0. Les valeurs acceptées sont listées en dessous de ce tableau.
1 Réel/réel
2 Réel/360
3 Réel/365
4 Européen 30/360
Valeur de retour
Rendement annuel.
Notes
Les dates sont stockées sous forme de numéros de série séquentiels de façon à
pouvoir être utilisées dans les calculs. Dans DAX, le 30 décembre 1899 correspond
au jour 0 et le 1er janvier 2008 au jour 39 448, car c’est le 39 448 e jour après le
30 décembre 1899.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Données Description
100,0123 Price
DAX
EVALUATE
{
YIELDMAT(DATE(2008,3,15), DATE(2008,11,3), DATE(2007,11,8), 0.0625,
100.0123, 0)
}
[Valeur]
0,0609543336915387
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions d'information
Article • 20/10/2023
Les fonctions d’information DAX examinent la cellule ou la ligne qui est fournie comme
argument, puis indique si la valeur correspond au type attendu. Par exemple, la fonction
ISERROR retourne TRUE si la valeur que vous référencez contient une erreur.
ISLOGICAL Vérifie si une valeur est une valeur logique (TRUE ou FALSE)
et retourne TRUE ou FALSE.
ISNONTEXT Vérifie si une valeur n’est pas du texte (les cellules vides ne
sont pas du texte), puis retourne TRUE ou FALSE.
Commentaires
Cette page a-t-elle été utile ? Yes No
COLUMNSTATISTICS
Article • 20/10/2023
Syntaxe
DAX
COLUMNSTATISTICS ()
Paramètres
Cette fonction ne prend aucun paramètre.
Valeur de retour
Table de statistiques. Chaque ligne de cette table représente une colonne différente
dans le modèle. Les colonnes de la table sont :
Notes
Les colonnes dans un état d’erreur et les colonnes des tables calculées requête-
étendue n’apparaissent pas dans la table de résultats.
Exemple
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
DEFINE
TABLE FilteredProduct =
FILTER (
Product,
[Color] == "Blue"
)
COLUMN Customer[Location] = [State-Province] & " " & [Country-Region]
EVALUATE
COLUMNSTATISTICS ()
Retourne une table avec des statistiques concernant toutes les colonnes de toutes les
tables du modèle. La table comprend également des statistiques pour la colonne
calculée requête-étendue, Customer[Location]. Par contre, la table ne comprend pas les
colonnes de la table calculée requête-étendue, FilteredProduct.
Voir aussi
Contexte de filtre
CALCULATETABLE, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
CONTAINS
Article • 20/10/2023
Retourne la valeur TRUE si les valeurs de toutes les colonnes référencées existent ou
sont contenues dans ces colonnes ; sinon, la fonction retourne la valeur FALSE.
Syntaxe
DAX
Paramètres
Terme Définition
columnName Nom d’une colonne existante, spécifié avec la syntaxe DAX standard. Il ne peut
pas s’agir d’une expression.
valeur Toute expression DAX qui retourne une valeur scalaire unique à rechercher dans
columnName. L’expression doit être évaluée une seule fois et avant d’être passée
à la liste d’arguments.
Valeur de retour
Valeur TRUE si chaque valeur (value) spécifiée peut être trouvée ou est contenue dans la
colonne (columnName) correspondante ; sinon, la fonction retourne FALSE.
Remarques
Les arguments columnName et value doivent être fournis ensemble ; sinon, une
erreur est retournée.
columnName doit appartenir à la table spécifiée ou à une autre table qui est
associée à cette table.
Si columnName référence une colonne d’une table associée, le nom complet doit
être fourni ; sinon, une erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant crée une mesure calculée qui indique si des ventes sur Internet ont
été enregistrées à la fois pour le produit 214 et le client 11185.
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonction CONTAINSROW
Article • 20/10/2023
Renvoie TRUE s'il existe au moins une ligne où toutes les colonnes ont des valeurs
spécifiées.
Syntaxe
DAX
Paramètres
Terme Définition
Valeur Toute expression DAX valide qui retourne une valeur scalaire.
Valeur renvoyée
TRUE ou FALSE.
Notes
À l’exception de leur syntaxe, l’opérateur IN et la fonction CONTAINSROW sont
équivalents sur un plan fonctionnel.
DAX
<scalarExpr> IN <tableExpr>
( <scalarExpr1>, <scalarExpr2>, … ) IN <tableExpr>
Exemples
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
Exemple 1
Les requêtes DAX suivantes :
DAX
EVALUATE
FILTER (
ALL ( Product[Color] ),
( [Color] )
IN {
"Red",
"Yellow",
"Blue"
}
)
ORDER BY [Color]
et
DAX
EVALUATE
FILTER (
ALL ( Product[Color] ),
CONTAINSROW (
{
"Red",
"Yellow",
"Blue"
},
[Color]
)
)
ORDER BY [Color]
Bleu
Rouge
Jaune
Exemple 2
Les requêtes DAX équivalentes suivantes :
DAX
EVALUATE
FILTER (
ALL ( Product[Color] ),
NOT [Color]
IN {
"Red",
"Yellow",
"Blue"
}
)
ORDER BY [Color]
et
DAX
EVALUATE
FILTER (
ALL ( Product[Color] ),
NOT CONTAINSROW (
{
"Red",
"Yellow",
"Blue"
},
[Color]
)
)
ORDER BY [Color]
[Color]
Noir
[Color]
Grey
Multiple
N/D
Argent
Silver\Black
White
Voir aussi
opérateur IN
Requêtes DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
CONTAINSSTRING
Article • 20/10/2023
Retourne TRUE ou FALSE indiquant si une chaîne contient une autre chaîne.
Syntaxe
DAX
CONTAINSSTRING(<within_text>, <find_text>)
Paramètres
Terme Définition
Valeur renvoyée
TRUE si find_text est une sous-chaîne de within_text ; sinon, FALSE.
Notes
CONTAINSSTRING ne respecte pas la casse.
Vous pouvez utiliser les caractères génériques ? et * . Utilisez ~ pour échapper les
caractères génériques.
Exemple
Requête DAX
DAX
EVALUATE
ROW(
"Case 1", CONTAINSSTRING("abcd", "bc"),
"Case 2", CONTAINSSTRING("abcd", "BC"),
"Case 3", CONTAINSSTRING("abcd", "a*d"),
"Case 4", CONTAINSSTRING("abcd", "ef")
)
retourne :
Commentaires
Cette page a-t-elle été utile ? Yes No
CONTAINSSTRINGEXACT
Article • 20/10/2023
Retourne TRUE ou FALSE indiquant si une chaîne contient une autre chaîne.
Syntaxe
DAX
CONTAINSSTRINGEXACT(<within_text>, <find_text>)
Paramètres
Terme Définition
Valeur renvoyée
TRUE si find_text est une sous-chaîne de within_text ; sinon, FALSE.
Notes
CONTAINSSTRINGEXACT est sensible à la casse.
Exemple
Requête DAX
DAX
EVALUATE
ROW(
"Case 1", CONTAINSSTRINGEXACT("abcd", "bc"),
"Case 2", CONTAINSSTRINGEXACT("abcd", "BC"),
"Case 3", CONTAINSSTRINGEXACT("abcd", "a*d"),
"Case 4", CONTAINSSTRINGEXACT("abcd", "ef")
)
retourne :
Commentaires
Cette page a-t-elle été utile ? Yes No
CUSTOMDATA
Article • 20/10/2023
Syntaxe
DAX
CUSTOMDATA()
Valeur de retour
Contenu de la propriété CustomData dans la chaîne de connexion.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
La formule DAX suivante vérifie si la propriété CustomData a été définie sur "OK" .
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
HASONEFILTER
Article • 20/10/2023
Retourne TRUE quand le nombre de valeurs directement filtrées sur columnName est
égal à un ; sinon, retourne FALSE.
Syntaxe
DAX
HASONEFILTER(<columnName>)
Paramètres
Terme Définition
columnName Nom d’une colonne existante, spécifié avec la syntaxe DAX standard. Il ne peut
pas s’agir d’une expression.
Valeur de retour
TRUE quand le nombre de valeurs directement filtrées sur columnName est égal à un ;
sinon, retourne FALSE.
Notes
Cette fonction est similaire à HASONEVALUE(), à la différence que HASONEVALUE()
fonctionne selon un filtrage croisé alors que HASONEFILTER() fonctionne par un
filtre direct.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant montre comment utiliser HASONEFILTER() afin de retourner le filtre
pour ResellerSales_USD[ProductKey]) s’il existe un filtre, ou afin de retourner BLANK s’il
n’y a pas de filtre ou s’il existe plusieurs filtres sur ResellerSales_USD[ProductKey]).
DAX
=
IF(HASONEFILTER(ResellerSales_USD[ProductKey]),FILTERS(ResellerSales_USD[Pro
ductKey]),BLANK())
Commentaires
Cette page a-t-elle été utile ? Yes No
HASONEVALUE
Article • 20/10/2023
Retourne TRUE quand il ne reste qu’une valeur distincte après filtrage du contexte pour
columnName. Sinon, FALSE.
Syntaxe
HTML
HASONEVALUE(<columnName>)
Paramètres
Terme Définition
columnName Nom d’une colonne existante, spécifié avec la syntaxe DAX standard. Il ne peut
pas s’agir d’une expression.
Valeur de retour
TRUE quand il ne reste qu’une valeur distincte après filtrage du contexte pour
columnName. Sinon, FALSE.
Remarques
Une expression équivalente pour HASONEVALUE() est
COUNTROWS(VALUES(<columnName>)) = 1 .
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule de mesure suivante vérifie si le contexte est découpé par une valeur afin
d’estimer un pourcentage par rapport à un scénario prédéfini. Dans ce cas, vous
souhaitez comparer les ventes du revendeur aux ventes de 2007, puis vous devez savoir
si le contexte est filtré par des années individuelles. En outre, si la comparaison n’a pas
de sens, vous souhaitez retourner BLANK.
DAX
=
IF(HASONEVALUE(DateTime[CalendarYear]),SUM(ResellerSales_USD[SalesAmount_USD
])/CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]),DateTime[CalendarYear]=
2007),BLANK())
Commentaires
Cette page a-t-elle été utile ? Yes No
ISAFTER
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
scalar_expression Toute expression qui retourne une valeur scalaire comme une référence de
colonne, un entier ou une valeur de chaîne. En général, le premier paramètre
est une référence de colonne et le deuxième est une valeur scalaire.
Valeur de retour
True ou False
Notes
Cette fonction est similaire à ISONORAFTER. La différence est que la fonction ISAFTER
retourne true pour les valeurs triées de façon stricte après les valeurs de filtre, tandis que
la fonction ISONORAFTER retourne la valeur true pour les valeurs triées sur ou après les
valeurs de filtre.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Nom de la table : 'Info'
IND JK 20 800
IND MH 25 1 000
IND WB 10 900
États-Unis CA 5 500
États-Unis WA 10 900
L’expression suivante :
DAX
FILTER (
Info,
ISAFTER (
Info[Country], "IND", ASC,
Info[State], "MH", ASC )
)
IND WB 10 900
États-Unis CA 5 500
États-Unis WA 10 900
Voir aussi
ISONORAFTER
Commentaires
Cette page a-t-elle été utile ? Yes No
ISBLANK
Article • 20/10/2023
Syntaxe
DAX
ISBLANK(<value>)
Paramètres
Terme Définition
Valeur renvoyée
Valeur booléenne TRUE si la valeur est vide ; sinon, FALSE.
Remarques
Pour en savoir plus sur les meilleures pratiques lorsque vous travaillez avec des valeurs
vides (BLANK), consultez Éviter de convertir des valeurs vides (BLANK) en valeurs dans
DAX.
Exemple
Cette formule calcule le taux d’augmentation ou de baisse des ventes par rapport à
l’année précédente. L’exemple utilise la fonction IF pour vérifier la valeur des ventes de
l’année précédente afin d’éviter une erreur de division par zéro.
DAX
= IF( ISBLANK('CalculatedMeasures'[PreviousYearTotalSales])
, BLANK()
, ( 'CalculatedMeasures'[Total Sales]-
'CalculatedMeasures'[PreviousYearTotalSales] )
/'CalculatedMeasures'[PreviousYearTotalSales])
Result,
2005 $10,209,985.08
Voir aussi
Fonctions d'information
Commentaires
Cette page a-t-elle été utile ? Yes No
ISCROSSFILTERED
Article • 20/10/2023
Syntaxe
DAX
ISCROSSFILTERED(<TableNameOrColumnName>)
Paramètres
Terme Définition
TableNameOrColumnName Nom d’une table ou d’une colonne existante. Il ne peut pas s’agir
d’une expression.
Valeur de retour
TRUE quand ColumnName ou une colonne de TableName a un filtrage croisé. Sinon,
retourne la valeur FALSE.
Notes
Une colonne ou une table est dite à filtrage croisé quand un filtre est appliqué à
ColumnName, à une colonne de TableName ou à une colonne d’une table
associée.
Une colonne ou une table est dite filtrée directement quand un filtre est appliqué à
ColumnName ou à une colonne de TableName. Par conséquent, la fonction
ISFILTERED retourne également TRUE quand ColumnName ou une colonne de
TableName sont filtrés.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
ISFILTERED, fonction
FILTERS, fonction
HASONEFILTER, fonction
HASONEVALUE, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ISEMPTY
Article • 20/10/2023
Syntaxe
DAX
ISEMPTY(<table_expression>)
Paramètres
Terme Définition
Valeur de retour
TRUE si la table est vide (ne contient aucune ligne) ; sinon, FALSE.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Pour la table ci-dessous nommée « Info » :
IND JK 20 800
IND MH 25 1 000
IND WB 10 900
États-Unis CA 5 500
Pays/région State County Total
États-Unis WA 10 900
DAX
EVALUATE
ROW("Any countries with count > 25?", NOT(ISEMPTY(FILTER(Info,
[County]>25))))
Commentaires
Cette page a-t-elle été utile ? Yes No
ISERROR
Article • 20/10/2023
Syntaxe
DAX
ISERROR(<value>)
Paramètres
Terme Définition
Valeur renvoyée
Valeur booléenne TRUE si la valeur est erronée ; sinon, FALSE.
Notes
Pour connaître les meilleures pratiques lors de l’utilisation de ISERROR, consultez
Utilisation appropriée des fonctions d’erreur.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant calcule le ratio du total des ventes sur Internet par rapport au total
des ventes du revendeur. La fonction ISERROR est utilisée pour rechercher des erreurs,
telles que la division par zéro. En cas d’erreur, une valeur vide est retournée ; sinon, le
ratio est retourné.
DAX
= IF( ISERROR(
SUM('ResellerSales_USD'[SalesAmount_USD])
/SUM('InternetSales_USD'[SalesAmount_USD])
)
, BLANK()
, SUM('ResellerSales_USD'[SalesAmount_USD])
/SUM('InternetSales_USD'[SalesAmount_USD])
)
Voir aussi
Fonctions d'information
IFERROR, fonction
IF, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ISEVEN
Article • 20/10/2023
Syntaxe
DAX
ISEVEN(number)
Paramètres
Terme Définition
nombre Valeur à tester. S’il ne s’agit pas d’un entier, elle est tronquée.
Valeur renvoyée
Retourne TRUE si le nombre est pair ou FALSE si le nombre est impair.
Notes
Si nombre n’est pas numérique, ISEVEN retourne la valeur d’erreur #NUM!.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
ISFILTERED
Article • 20/10/2023
Syntaxe
DAX
ISFILTERED(<TableNameOrColumnName>)
Paramètres
Terme Définition
TableNameOrColumnName Nom d’une table ou d’une colonne existante. Il ne peut pas s’agir
d’une expression.
Valeur de retour
TRUE quand ColumnName ou une colonne de TableName est filtrée directement. Sinon,
retourne la valeur FALSE.
Notes
Une colonne ou une table est dite filtrée directement quand un filtre est appliqué à
ColumnName ou à une colonne de TableName.
Une colonne ou une table est dite à filtrage croisé quand un filtre est appliqué à
ColumnName, à une colonne de TableName ou à une colonne d’une table
associée. Par conséquent, la fonction ISCROSSFILTERED retourne également TRUE
quand ColumnName, une colonne de TableName ou une colonne d’une table
associée sont filtrés.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
ISCROSSFILTERED, fonction
FILTERS, fonction
HASONEFILTER, fonction
HASONEVALUE, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ISINSCOPE
Article • 20/10/2023
Retourne la valeur true quand la colonne spécifiée est le niveau dans une hiérarchie de
niveaux.
Syntaxe
DAX
ISINSCOPE(<columnName>)
Paramètres
Terme Définition
columnName Nom d’une colonne existante, spécifié avec la syntaxe DAX standard. Il ne peut pas
s’agir d’une expression.
Valeur de retour
TRUE quand la colonne spécifiée est le niveau dans une hiérarchie de niveaux.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle
est utilisée dans des colonnes calculées ou des règles de sécurité au niveau des lignes (RLS).
Exemple
DAX
DEFINE
MEASURE FactInternetSales[% of Parent] =
SWITCH (TRUE(),
ISINSCOPE(DimProduct[Subcategory]),
DIVIDE(
SUM(FactInternetSales[Sales Amount]),
CALCULATE(
SUM(FactInternetSales[Sales Amount]),
ALLSELECTED(DimProduct[Subcategory]))
),
ISINSCOPE(DimProduct[Category]),
DIVIDE(
SUM(FactInternetSales[Sales Amount]),
CALCULATE(
SUM(FactInternetSales[Sales Amount]),
ALLSELECTED(DimProduct[Category]))
),
1
) * 100
EVALUATE
SUMMARIZECOLUMNS
(
ROLLUPADDISSUBTOTAL
(
DimProduct[Category], "Category Subtotal",
DimProduct[Subcategory], "Subcategory Subtotal"
),
TREATAS(
{"Bike Racks", "Bike Stands", "Mountain Bikes", "Road Bikes", "Touring
Bikes"},
DimProduct[Subcategory]),
"Sales", SUM(FactInternetSales[Sales Amount]),
"% of Parent", [% of Parent]
)
ORDER BY
[Category Subtotal] DESC, [Category],
[Subcategory Subtotal] DESC, [Subcategory]
Retourne :
Voir aussi
SUMMARIZECOLUMNS
CALCULATE, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ISLOGICAL
Article • 20/10/2023
Vérifie si une valeur est une valeur logique (TRUE ou FALSE) et retourne TRUE ou FALSE.
Syntaxe
DAX
ISLOGICAL(<value>)
Paramètres
Terme Définition
Valeur renvoyée
TRUE si la valeur est une valeur logique ; FALSE pour toute valeur autre que TRUE ou
FALSE.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Les trois exemples suivants illustrent le comportement de la fonction ISLOGICAL.
DAX
Voir aussi
Fonctions d'information
Commentaires
Cette page a-t-elle été utile ? Yes No
ISNONTEXT
Article • 20/10/2023
Vérifie si une valeur n’est pas du texte (les cellules vides ne sont pas du texte), puis
retourne TRUE ou FALSE.
Syntaxe
DAX
ISNONTEXT(<value>)
Paramètres
Terme Définition
Valeur renvoyée
TRUE si la valeur n’est pas du texte ou si elle est vide ; FALSE si la valeur est du texte.
Notes
Une chaîne vide est considérée comme du texte.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Les exemples suivants illustrent le comportement de la fonction ISNONTEXT.
DAX
//RETURNS: Is Non-Text
= IF(ISNONTEXT(1), "Is Non-Text", "Is Text")
//RETURNS: Is Non-Text
= IF(ISNONTEXT(BLANK()), "Is Non-Text", "Is Text")
//RETURNS: Is Text
= IF(ISNONTEXT(""), "Is Non-Text", "Is Text")
Voir aussi
Fonctions d'information
Commentaires
Cette page a-t-elle été utile ? Yes No
ISNUMBER
Article • 20/10/2023
Syntaxe
DAX
ISNUMBER(<value>)
Paramètres
Terme Définition
Valeur renvoyée
TRUE si la valeur est numérique ; sinon, FALSE.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Les trois exemples suivants illustrent le comportement de la fonction ISNUMBER.
DAX
//RETURNS: Is number
= IF(ISNUMBER(0), "Is number", "Is Not number")
//RETURNS: Is number
= IF(ISNUMBER(3.1E-1),"Is number", "Is Not number")
//RETURNS: Is Not number
= IF(ISNUMBER("123"), "Is number", "Is Not number")
Voir aussi
Fonctions d'information
Commentaires
Cette page a-t-elle été utile ? Yes No
ISODD
Article • 20/10/2023
Syntaxe
DAX
ISODD(number)
Paramètres
Terme Définition
nombre Valeur à tester. S’il ne s’agit pas d’un entier, elle est tronquée.
Valeur renvoyée
Retourne TRUE si le nombre est impair ou FALSE si le nombre est pair.
Notes
Si le paramètre number n’est pas numérique, ISODD retourne la valeur d’erreur
#VALUE! #NUM!.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
ISONORAFTER
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
scalar_expression Toute expression qui retourne une valeur scalaire comme une référence de
colonne, un entier ou une valeur de chaîne. En général, le premier paramètre
est une référence de colonne et le deuxième est une valeur scalaire.
Valeur de retour
True ou False
Notes
Cette fonction est similaire à ISAFTER. La différence est que la fonction ISONORAFTER
retourne la valeur true pour les valeurs triées sur ou après les valeurs de filtre, tandis que
la fonction ISAFTER retourne la valeur true pour les valeurs triées strictement après les
valeurs de filtre.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Pour le tableau suivant nommé, Info :
IND JK 20 800
IND MH 25 1 000
IND WB 10 900
États-Unis CA 5 500
États-Unis WA 10 900
L’expression suivante :
DAX
FILTER (
Info,
ISONORAFTER (
Info[Country], "IND", ASC,
Info[State], "MH", ASC )
)
IND MH 25 1 000
IND WB 10 900
États-Unis CA 5 500
États-Unis WA 10 900
Voir aussi
ISAFTER
Commentaires
Cette page a-t-elle été utile ? Yes No
ISSELECTEDMEASURE
Article • 20/10/2023
Utilisée par les expressions d’éléments de calcul pour déterminer si la mesure dans le
contexte est l’une des mesures spécifiées dans une liste de mesures.
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Valeur booléenne indiquant si la mesure actuellement dans le contexte est l’une des
mesures spécifiées dans la liste de paramètres.
Remarques
Ne peut être référencée que dans l’expression d’un élément de calcul.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’expression d’élément de calcul suivante vérifie si la mesure actuelle est l’une des
mesures spécifiées dans la liste de paramètres. Si les mesures sont renommées, la
correction de la formule reflète les changements de nom dans l’expression.
DAX
IF (
ISSELECTEDMEASURE ( [Expense Ratio 1], [Expense Ratio 2] ),
SELECTEDMEASURE (),
DIVIDE ( SELECTEDMEASURE (), COUNTROWS ( DimDate ) )
)
Voir aussi
SELECTEDMEASURE
SELECTEDMEASURENAME
Commentaires
Cette page a-t-elle été utile ? Yes No
ISSUBTOTAL
Article • 20/10/2023
Crée une autre colonne dans une expression SUMMARIZE qui retourne True si la ligne
contient des valeurs de sous-total pour la colonne fournie comme argument, False dans
l’autre cas.
Syntaxe
DAX
ISSUBTOTAL(<columnName>)
Avec SUMMARIZE,
DAX
Paramètres
Terme Définition
Valeur renvoyée
Valeur True si la ligne contient une valeur de sous-total pour la colonne fournie comme
argument, False dans l’autre cas.
Notes
ISSUBTOTAL peut uniquement être utilisé dans l’expression d’une fonction
SUMMARIZE.
Commentaires
Cette page a-t-elle été utile ? Yes No
ISTEXT
Article • 20/10/2023
Syntaxe
DAX
ISTEXT(<value>)
Paramètres
Terme Définition
Valeur renvoyée
TRUE si la valeur est du texte ; sinon, FALSE.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Les exemples suivants illustrent le comportement de la fonction ISTEXT.
DAX
//RETURNS: Is Text
= IF(ISTEXT("text"), "Is Text", "Is Non-Text")
//RETURNS: Is Text
= IF(ISTEXT(""), "Is Text", "Is Non-Text")
//RETURNS: Is Non-Text
= IF(ISTEXT(1), "Is Text", "Is Non-Text")
//RETURNS: Is Non-Text
= IF(ISTEXT(BLANK()), "Is Text", "Is Non-Text")
Voir aussi
Fonctions d'information
Commentaires
Cette page a-t-elle été utile ? Yes No
NONVISUAL
Article • 20/10/2023
Syntaxe
DAX
NONVISUAL(<expression>)
Paramètres
Terme Définition
expression Toute expression DAX qui retourne une seule valeur (et non une table).
Valeur renvoyée
Table de valeurs.
Notes
Marque un filtre de valeur dans SUMMARIZECOLUMNS comme n’affectant pas les
valeurs de mesure, mais uniquement comme s’appliquant à des colonnes groupBy.
Exemple
Consultez SUMMARIZECOLUMNS.
Commentaires
Cette page a-t-elle été utile ? Yes No
SELECTEDMEASURE
Article • 20/10/2023
Fonction utilisée par les expressions pour les éléments de calcul ou les chaînes à format
dynamique afin de référencer la mesure qui est dans le contexte.
Syntaxe
DAX
SELECTEDMEASURE()
Paramètres
Aucune
Valeur de retour
Référence à la mesure qui est dans le contexte au moment de l’évaluation de l’élément
de calcul ou de la chaîne de format.
Notes
Ne peut être référencée que dans l’expression pour un élément de calcul ou une
chaîne de format.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’expression d’élément de calcul suivante calcule le cumul annuel jusqu’à ce jour pour la
mesure qui est dans le contexte.
DAX
CALCULATE(SELECTEDMEASURE(), DATESYTD(DimDate[Date]))
L’expression suivante peut être utilisée pour ajuster dynamiquement la chaîne de format
d’une mesure selon qu’une valeur est égale à des centaines, des milliers ou des millions.
DAX
SWITCH(
TRUE(),
SELECTEDMEASURE() < 1000,"$#,##0", //Values less than 1000 have
no text after them
SELECTEDMEASURE() < 1000000, "$#,##0,.0 K", //Values between 1000 and
1000000 are formatted as #.## K
"$#,##0,,.0 M" //Values greater than 1000000
are formatted as #.## M
)
Voir aussi
SELECTEDMEASURENAME
ISSELECTEDMEASURE
Commentaires
Cette page a-t-elle été utile ? Yes No
SELECTEDMEASUREFORMATSTRING
Article • 20/10/2023
Utilisé par les expressions d’éléments de calcul pour récupérer la chaîne de format de la
mesure qui est dans le contexte.
Syntaxe
DAX
SELECTEDMEASUREFORMATSTRING()
Paramètres
Aucune
Valeur de retour
Chaîne contenant la chaîne de format de la mesure qui est dans le contexte au moment
de l’évaluation de l’élément de calcul.
Remarques
Cette fonction peut être référencée uniquement dans des expressions d’éléments
de calcul dans des groupes de calcul. Elle est conçue pour être utilisée par la
propriété Expression de chaîne de format des éléments de calcul.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’expression suivante est évaluée par la propriété Expression de chaîne de format pour
un élément de calcul. S’il y a une seule devise dans le contexte de filtre, la chaîne de
format est récupérée de la colonne DimCurrency[FormatString] ; sinon, la chaîne de
format de la mesure actuellement dans le contexte est utilisée.
DAX
Voir aussi
SELECTEDMEASURE
ISSELECTEDMEASURE
Commentaires
Cette page a-t-elle été utile ? Yes No
SELECTEDMEASURENAME
Article • 20/10/2023
Utilisée par les expressions d’éléments de calcul pour déterminer la mesure qui est dans
le contexte par nom.
Syntaxe
DAX
SELECTEDMEASURENAME()
Paramètres
Aucune
Valeur de retour
Valeur de chaîne contenant le nom de la mesure actuellement dans le contexte quand
l’élément de calcul est évalué.
Remarques
Ne peut être référencée que dans l’expression d’un élément de calcul.
Cette fonction est souvent utilisée à des fins de débogage lors de la création de
groupes de calcul.
Exemple
L’expression d’élément de calcul suivante vérifie si la mesure actuelle correspond à
« Expense Ratio » et applique la logique de calcul de manière conditionnelle. Étant
donné que la vérification est basée sur une comparaison de chaînes, elle ne bénéficie
pas de la correction de formule et de la répercussion automatique du renommage
d’objet. Pour une comparaison similaire bénéficiant de la correction de formule,
reportez-vous à la fonction ISSLECTEDMEASURE.
DAX
IF (
SELECTEDMEASURENAME = "Expense Ratio",
SELECTEDMEASURE (),
DIVIDE ( SELECTEDMEASURE (), COUNTROWS ( DimDate ) )
)
Voir aussi
SELECTEDMEASURE
ISSELECTEDMEASURE
Commentaires
Cette page a-t-elle été utile ? Yes No
USERCULTURE
Article • 20/10/2023
Remarque : Cette fonction est actuellement prise en charge dans Power BI Premium par
capacité, Power BI Premium par utilisateur et Power BI Embedded uniquement.
Syntaxe
DAX
USERCULTURE()
Paramètres
Cette expression n’a pas de paramètres.
Valeur de retour
Paramètres régionaux sous forme de chaîne.
Notes
Dans le service Power BI, les paramètres régionaux sont déterminés par
Paramètres>Langue>Paramètres de langue. La valeur par défaut est déterminée
par le paramètre de langue du navigateur de l’utilisateur.
Quand il est utilisé dans les expressions de table calculée et de colonne calculée, le
résultat peut différer selon que la table est en mode DirectQuery ou Importation.
En mode DirectQuery, le résultat est déterminé par la langue (paramètres
régionaux) spécifiée dans Paramètres de langue dans le service Power BI. La valeur
par défaut dans Paramètres de langue qui spécifie les paramètres régionaux est
déterminée par le paramètre de langue du navigateur de l’utilisateur, ce qui
signifie que la même table ou colonne calculée peut retourner des résultats
différents en fonction des paramètres de langue du navigateur de chaque
utilisateur. En mode Importation, le résultat est déterminé statiquement pendant
l’actualisation et ne varie pas au moment de la requête. Pour les actualisations
gérées, c’est-à-dire planifiées ou interactives, les paramètres régionaux ne sont pas
basés sur le paramètre de langue du navigateur de l’utilisateur, mais utilisent des
paramètres régionaux invariants. Toutefois, les paramètres régionaux invariants
peuvent être remplacés en utilisant le point de terminaison XMLA pour spécifier
des paramètres régionaux personnalisés.
Dans les rapports Live Connect, USERCULTURE peut ne pas retourner les
paramètres régionaux utilisateur appropriés lorsqu’il est appelé à partir d’une
expression de mesure de rapport.
Exemple
Pour l’expression suivante,
DAX
de-DE Dienstag
fr-FR Tuesday
Paramètres régionaux Jour de la semaine mis en forme
es-ES_tradnl martes
eu-ES asteartea
it-IT martedì
nl-NL dinsdag
pl-PL wtorek
ro-RO marți
ru-RU вторник
uk-UA вівторок
Voir aussi
Titres basés sur des expressions dans Power BI
USERNAME
USERPRINCIPALNAME
USEROBJECTID
Commentaires
Cette page a-t-elle été utile ? Yes No
USERNAME
Article • 20/10/2023
Syntaxe
DAX
USERNAME()
Paramètres
Cette expression n’a pas de paramètres.
Valeur de retour
Nom d’utilisateur provenant des informations d’identification fournies au système au
moment de la connexion
Exemple
La formule suivante vérifie si la connexion de l’utilisateur fait partie de UsersTable.
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
USEROBJECTID
Article • 25/10/2023
Syntaxe
DAX
USEROBJECTID()
Paramètres
Cette expression n’a pas de paramètres.
Valeur retournée
ID d’objet de l’utilisateur actuel provenant de modèles Microsoft Entra ID pour Power BI
ou Azure Analysis Services ou bien de SID pour modèles SQL Server Analysis Services.
Commentaires
Cette page a-t-elle été utile ? Yes No
USERPRINCIPALNAME
Article • 20/10/2023
Syntaxe
DAX
USERPRINCIPALNAME()
Paramètres
Cette expression n’a pas de paramètres.
Valeur de retour
UserPrincipalName au moment de la connexion.
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions logiques
Article • 20/10/2023
Les fonctions logiques agissent sur une expression pour retourner des informations sur
les valeurs ou les jeux de l’expression. Par exemple, vous pouvez utiliser la fonction IF
pour vérifier le résultat d’une expression et créer des résultats conditionnels.
AND Vérifie si les deux arguments ont la valeur TRUE, puis retourne TRUE si tel est le cas.
BITLSHIFT Retourne un nombre décalé vers la gauche selon le nombre de bits spécifié.
BITRSHIFT Retourne un nombre décalé vers la droite selon le nombre de bits spécifié.
COALESCE Retourne la première expression qui ne donne pas la valeur BLANK (vide).
IF Vérifie une condition et retourne une valeur si TRUE ; sinon, retourne une deuxième
valeur.
IF.EAGER Vérifie une condition et retourne une valeur si TRUE ; sinon, retourne une deuxième
valeur. Utilise un plan d’exécution eager qui exécute toujours les expressions de
branche, quelle que soit l’expression de condition.
IFERROR Évalue une expression et retourne une valeur spécifiée si l’expression retourne une
erreur
SWITCH Évalue une expression par rapport à une liste de valeurs et retourne l’une des
différentes expressions de résultat possibles.
Vérifie si les deux arguments ont la valeur TRUE, puis retourne TRUE si tel est le cas.
Sinon, retourne FALSE.
Syntaxe
DAX
AND(<logical1>,<logical2>)
Paramètres
Terme Définition
Valeur de retour
Retourne true ou false en fonction de la combinaison des valeurs testées.
Remarques
La fonction DAX AND accepte uniquement deux (2) arguments. Si vous devez effectuer
une opération AND sur plusieurs expressions, vous pouvez créer une série de calculs ou,
mieux, utiliser l’opérateur AND ( && ) pour les joindre toutes dans une expression plus
simple.
Exemple 1
La formule suivante illustre la syntaxe de la fonction AND.
DAX
= IF(AND(10 > 9, -10 < -1), "All true", "One or more false"
Étant donné que les deux conditions passées comme arguments de la fonction AND ont
la valeur true, la formule retourne « All True ».
Exemple 2
L’exemple suivant utilise la fonction AND avec des formules imbriquées pour comparer
deux jeux de calculs simultanément. Pour chaque catégorie de produit, la formule
détermine si les ventes Internet de l’année en cours et de l’année précédente sont
supérieures à celles du réseau de revendeurs sur les mêmes périodes. Si les deux
conditions sont vraies, pour chaque catégorie, la formule retourne la valeur « Internet
Hit ».
DAX
retourne :
Cuissards
Porte-vélos
Jeux de pédalier
Freins
Casquettes
Chaînes
Produits d’entretien
Pédaliers
Étiquettes de ligne 2005 2006 2007 2008 - Total général
Dérailleurs
Fourches
Gants
Guidons
Jeux de direction
Casques
Sacs à eau
Jerseys
Feux
Verrous
VTT
Cadres de VTT
Sacoches
Pédales
Pompes
Vélos de route
Selles
Shorts
Chaussettes
Collants
Vélos de tourisme
Gilets
Étiquettes de ligne 2005 2006 2007 2008 - Total général
Roues
Total général
Voir aussi
Fonctions logiques
Commentaires
Cette page a-t-elle été utile ? Yes No
BITAND
Article • 20/10/2023
Syntaxe
DAX
BITAND(<number>, <number>)
Paramètres
Terme Définition
Nombre Toute expression scalaire qui retourne un nombre. Si la valeur n’est pas un entier, elle
est tronquée.
Valeur retournée
Au niveau du bit AND de deux nombres.
Remarques
Cette fonction prend en charge les nombres positifs et négatifs.
Exemple
La requête DAX suivante :
DAX
Retourne 9.
Voir aussi
BITLSHIFT
BITRSHIFT
BITOR
BITXOR
Commentaires
Cette page a-t-elle été utile ? Yes No
BITLSHIFT
Article • 20/10/2023
Syntaxe
DAX
BITLSHIFT(<Number>, <Shift_Amount>)
Paramètres
Terme Définition
Valeur retournée
Valeur entière.
Remarques
Veillez à bien comprendre la nature des opérations de décalage de bits et le
dépassement de capacité positif ou négatif des entiers avant d’utiliser les fonctions
DAX de décalage de bits.
Si Shift_Amount est négatif, le décalage s’effectue dans la direction opposée.
Si la valeur absolue de Shift_Amount est supérieure à 64, aucune erreur n’est
générée, mais cela entraîne un dépassement de capacité positif/négatif.
Il n’existe aucune limite sur le nombre, mais le résultat peut correspondre à un
dépassement de capacité positif/négatif.
Exemples
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{ BITLSHIFT(2, 3) }
Retourne 16.
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{ BITLSHIFT(128, -1) }
Retourne 64.
Exemple 3
La requête DAX suivante :
DAX
Define
Measure Sales[LeftShift] = BITLSHIFT(SELECTEDVALUE(Sales[Amount]), 3)
EVALUATE
SUMMARIZECOLUMNS(
Sales[Amount],
"LEFTSHIFT",
[LeftShift]
)
Décale vers la gauche chaque montant de vente avec 3 bits et retourne le volume de
ventes décalé en bits.
Voir aussi
BITRSHIFT
BITAND
BITOR
BITXOR
Commentaires
Cette page a-t-elle été utile ? Yes No
BITOR
Article • 20/10/2023
Syntaxe
DAX
BITOR(<number>, <number>)
Paramètres
Terme Définition
Nombre Toute expression scalaire qui retourne un nombre. Si la valeur n’est pas un entier, elle
est tronquée.
Valeur retournée
Au niveau du bit OR de deux nombres.
Remarques
Cette fonction prend en charge les nombres positifs et négatifs.
Exemple
La requête DAX suivante :
DAX
EVALUATE
{ BITOR(9, 10) }
Retourne 11.
Voir aussi
BITAND
BITXOR
BITLSHIFT
BITRSHIFT
Commentaires
Cette page a-t-elle été utile ? Yes No
BITRSHIFT
Article • 20/10/2023
Syntaxe
DAX
BITRSHIFT(<Number>, <Shift_Amount>)
Paramètres
Terme Définition
Valeur retournée
Valeur entière.
Remarques
Veillez à bien comprendre la nature des opérations de décalage de bits et le
dépassement de capacité positif ou négatif des entiers avant d’utiliser les fonctions
DAX de décalage de bits.
Si Shift_Amount est négatif, le décalage s’effectue dans la direction opposée.
Si la valeur absolue de Shift_Amount est supérieure à 64, aucune erreur n’est
générée, mais cela entraîne un dépassement de capacité positif/négatif.
Il n’existe aucune limite sur le nombre, mais le résultat peut correspondre à un
dépassement de capacité positif/négatif.
Exemples
Exemple 1
La requête DAX suivante :
DAX
EVALUATE
{ BITRSHIFT(16, 3) }
Retourne 2.
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{ BITRSHIFT(1024, -3) }
Retourne 8192.
Exemple 3
La requête DAX suivante :
DAX
Define
Measure Sales[RightShift] = BITRSHIFT(SELECTEDVALUE(Sales[Amount]), 3)
EVALUATE
SUMMARIZECOLUMNS(
Sales[Amount],
"RIGHTSHIFT",
[RightShift]
)
Décale vers la droite chaque montant de vente avec 3 bits et retourne le volume de
ventes décalé en bits.
Voir aussi
BITLSHIFT
BITAND
BITOR
BITXOR
Commentaires
Cette page a-t-elle été utile ? Yes No
BITXOR
Article • 20/10/2023
Syntaxe
DAX
BITXOR(<number>, <number>)
Paramètres
Terme Définition
Nombre Toute expression scalaire qui retourne un nombre. Si la valeur n’est pas un entier, elle
est tronquée.
Valeur retournée
Au niveau du bit XOR de deux nombres.
Remarques
Cette fonction prend en charge les nombres positifs et négatifs.
Exemple
La requête DAX suivante :
DAX
Retourne 3.
Voir aussi
BITOR
BITAND
BITLSHIFT
BITRSHIFT
Commentaires
Cette page a-t-elle été utile ? Yes No
COALESCE
Article • 20/10/2023
Retourne la première expression qui ne donne pas la valeur BLANK (vide). Si toutes les
expressions prennent la valeur BLANK, la valeur BLANK est retournée.
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Valeur scalaire provenant de l’une des expressions ou BLANK (vide) si toutes les
expressions donnent la valeur BLANK.
Remarques
Les expressions d’entrée peuvent être de différents types de données.
Exemple 1
La requête DAX suivante :
DAX
DAX
= COALESCE(SUM(FactInternetSales[SalesAmount]), 0)
Commentaires
Cette page a-t-elle été utile ? Yes No
FALSE
Article • 20/10/2023
Syntaxe
DAX
FALSE()
Valeur de retour
Toujours FALSE.
Remarques
Le mot FALSE est également interprété comme la valeur logique FALSE.
Exemple
La formule retourne la valeur logique FALSE quand la valeur dans la colonne,
'InternetSales_USD'[SalesAmount_USD], est inférieure ou égale à 200000.
DAX
La table suivante montre les résultats quand l’exemple de formule est utilisé avec
'ProductCategory'[ProductCategoryName] dans Étiquettes de ligne et
'DateTime'[CalendarYear] dans Étiquettes de colonne.
Voir aussi
TRUE, fonction
NOT, fonction
IF, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
IF
Article • 20/10/2023
Vérifie une condition et retourne une valeur quand sa valeur est TRUE ; sinon, retourne
une deuxième valeur.
Syntaxe
DAX
Paramètres
Terme Définition
logical_test Valeur ou expression dont le résultat de l’évaluation peut être TRUE ou FALSE.
value_if_false (Facultatif) Valeur retournée si le test logique est FALSE. S’il n’est pas spécifié, la
valeur BLANK est retournée.
Valeur renvoyée
value_if_true, value_if_false ou BLANK.
Notes
La fonction IF peut retourner un type de données Variant si value_if_true et
value_if_false sont de types de données différents, mais la fonction tente de
retourner un type de données unique si value_if_true et value_if_false sont tous
deux de types de données numériques. Dans ce dernier cas, la fonction IF
convertira implicitement les types de données de façon à gérer les deux valeurs.
Exemples
Les définitions de colonnes calculées de la table Product suivantes utilisent la fonction IF
de différentes façons pour classifer chaque produit en fonction de son prix catalogue.
Le premier exemple teste si la valeur de la colonne List Price est inférieure à 500. Si cette
condition est true, la valeur Low est retournée. Étant donné qu’il n’y a pas de valeur
value_if_false, BLANK est retourné.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
Price Group =
IF(
'Product'[List Price] < 500,
"Low"
)
Le deuxième exemple utilise le même test, mais cette fois-ci avec une valeur
value_if_false. La formule classifie donc chaque produit comme suit : Low ou High.
DAX
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
"High"
)
Le troisième exemple utilise le même test, mais cette fois imbrique une fonction IF pour
effectuer un test supplémentaire. La formule classifie donc chaque produit comme suit :
Low, Medium ou High.
DAX
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
IF(
'Product'[List Price] < 1500,
"Medium",
"High"
)
)
Conseil
Si vous devez imbriquer plusieurs fonctions IF, il peut être préférable d’utiliser la
fonction SWITCH. Cette fonction permet d’écrire plus élégamment une expression
qui retourne plus de deux valeurs possibles.
Voir aussi
IF.EAGER, fonction
SWITCH, fonction (DAX)
Fonctions logiques
Commentaires
Cette page a-t-elle été utile ? Yes No
IF.EAGER
Article • 20/10/2023
Vérifie une condition et retourne une valeur si TRUE ; sinon, retourne une deuxième
valeur. Il utilise un plan d’exécution eager qui exécute toujours les expressions de
branche, quelle que soit l’expression de condition.
Syntaxe
DAX
Paramètres
Terme Définition
logical_test Valeur ou expression dont le résultat de l’évaluation peut être TRUE ou FALSE.
value_if_false (Facultatif) Valeur retournée si le test logique est FALSE. S’il n’est pas spécifié, la
valeur BLANK est retournée.
Valeur renvoyée
value_if_true, value_if_false ou BLANK.
Notes
La fonction IF.EAGER peut retourner un type de données Variant si value_if_true et
value_if_false sont de types de données différents, mais la fonction tente de
retourner un type de données unique si value_if_true et value_if_false sont tous
deux de types de données numériques. Dans ce dernier cas, la fonction IF.EAGER
convertira implicitement les types de données de façon à gérer les deux valeurs.
DAX
Exemples
Consultez Exemples IF.
Voir aussi
IF, fonction
Fonctions logiques
Commentaires
Cette page a-t-elle été utile ? Yes No
IFERROR
Article • 20/10/2023
Évalue une expression et retourne une valeur spécifiée si l’expression retourne une
erreur. Sinon, retourne la valeur de l’expression elle-même.
Syntaxe
DAX
IFERROR(value, value_if_error)
Paramètres
Terme Définition
Valeur de retour
Scalaire du même type que value
Remarques
Vous pouvez utiliser la fonction IFERROR pour intercepter et gérer les erreurs dans
une expression.
Si value ou value_if_error est une cellule vide, IFERROR la traite comme une valeur
de chaîne vide ("").
La fonction IFERROR est basée sur la fonction IF et utilise les mêmes messages
d’erreur. Toutefois, elle a moins d’arguments. La relation entre la fonction IFERROR
et la fonction IF est la suivante :
IFERROR(A,B) := IF(ISERROR(A), B, A)
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant retourne 9999 si l’expression 25/0 donne une erreur. Si l’expression
retourne une valeur autre qu’une erreur, cette valeur est passée à l’expression appelante.
DAX
= IFERROR(25/0,9999)
Voir aussi
Fonctions logiques
Commentaires
Cette page a-t-elle été utile ? Yes No
NOT
Article • 20/10/2023
Syntaxe
DAX
NOT(<logical>)
Paramètres
Terme Définition
Valeur de retour
TRUE OU FALSE.
Exemple
L’exemple suivant récupère des valeurs de la colonne calculée qui a été créée pour
illustrer la fonction IF. Pour cet exemple, la colonne calculée a été nommée en utilisant le
nom par défaut, Calculated Column1, et contient la formule suivante : = IF([Orders]
<300,"true","false")
À présent, créez une colonne calculée, Calculated Column2, puis tapez la formule
suivante.
DAX
= NOT([CalculatedColumn1])
Pour chaque ligne de Calculated Column1, les valeurs « true » et « false » sont
interprétées comme les valeurs logiques TRUE ou FALSE, et la fonction NOT retourne
l’opposé logique de cette valeur.
Voir aussi
TRUE, fonction
FALSE, fonction
IF, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
OR
Article • 20/10/2023
Vérifie si l’un des arguments a la valeur TRUE pour retourner TRUE. La fonction retourne
FALSE si les deux arguments ont la valeur FALSE.
Syntaxe
DAX
OR(<logical1>,<logical2>)
Paramètres
Terme Définition
Valeur de retour
Valeur booléenne. La valeur est TRUE si l’un des deux arguments a la valeur TRUE ; la
valeur est FALSE si les deux arguments ont la valeur FALSE.
Notes
La fonction OR dans DAX n’accepte que deux (2) arguments. Si vous devez
effectuer une opération OR sur plusieurs expressions, vous pouvez créer une série
de calculs ou, mieux, utiliser l’opérateur OR ( || ) pour joindre tous les calculs dans
une expression plus simple.
La fonction évalue les arguments jusqu’au premier argument TRUE, puis retourne
TRUE.
Exemple
L’exemple suivant montre comment utiliser la fonction OR pour obtenir les vendeurs
appartenant au cercle d’excellence (« Circle of Excellence »). Ce cercle regroupe les
vendeurs dont les ventes de vélos de cyclotourisme (« Touring Bikes ») totalisent plus
d’un million de dollars ou dont les ventes totales dépassent deux millions et demi de
dollars en 2007.
DAX
retourne :
Abbas, Syed
E
Alberts, Amy
E
Ansman-
Wolfe,
Pamela O
Campbell,
David R
Ito, Shu K
Jiang,
Stephen Y
Mensa-
Annan, Tete
A
Reiter, Tsvi
Michael
Tsoflias, Lynn
N
Valdez,
Rachel B
Vargas,
Garrett R
Varkey Circle of
Chudukatil, Excellence
Ranjit R
Voir aussi
Fonctions logiques
Commentaires
Cette page a-t-elle été utile ? Yes No
SWITCH
Article • 20/10/2023
Évalue une expression par rapport à une liste de valeurs et retourne l’une des différentes
expressions de résultat possibles. Cette fonction peut être utilisée pour éviter d'avoir
plusieurs instructions SI imbriquées.
Syntaxe
DAX
Paramètres
Terme Définition
expression Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée plusieurs fois (pour chaque ligne/contexte).
Valeur renvoyée
S’il existe une correspondance avec une valeur, une valeur scalaire du résultat
correspondant est renvoyée. S’il n’y a pas de correspondance avec une valeur, une
valeur d’autre est retournée. Si aucune des valeurs ne correspond et qu’aucune autre
n’est spécifiée, BLANK est retourné.
Remarques
L’expression à évaluer peut être une valeur constante ou une expression. Une
utilisation courante de cette fonction consiste à fixer le premier paramètre à TRUE.
Voir les exemples ci-dessous.
Toutes les expressions de résultat et l’expression else doivent être du même type
de données.
L’ordre des conditions est important. Dès qu’une valeur correspond, le résultat
correspondant est retourné et les autres valeurs suivantes ne sont pas évaluées.
Assurez-vous que les valeurs les plus restrictives à évaluer sont spécifiées avant les
valeurs moins restrictives. Voir les exemples ci-dessous.
Exemples
Une utilisation courante de SWITCH consiste à comparer l’expression avec des valeurs
constantes. L’exemple suivant crée une colonne calculée de noms de mois :
DAX
= SWITCH (
[Month Number Of Year],
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"Unknown month number"
)
DAX
= SWITCH (
TRUE,
[Reorder Point] > [Safety Stock Level], "Good: Safety stock level
exceeded",
[Reorder Point] = [Safety Stock Level], "Minimal: Safety stock level
met",
[Reorder Point] < [Safety Stock Level], "At risk: Safety stock level
not met",
ISBLANK ( [Reorder Point] ), "Incomplete: Reorder point not set",
ISBLANK ( [Safety Stock Level] ), "Incomplete: Safety stock level
not set",
"Unknown"
)
L’ordre des valeurs est important. Dans l’exemple suivant, le deuxième résultat n’est
jamais retourné, car la première valeur est moins restrictive que la seconde. Le résultat
de cet exemple est toujours « A » ou « C », mais jamais « B ».
DAX
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
L’instruction suivante retourne une erreur, car les types de données dans les arguments
de résultat sont différents. N’oubliez pas que les types de données dans tous les
arguments de résultat et d’autres doivent être identiques.
DAX
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)
Commentaires
Cette page a-t-elle été utile ? Yes No
TRUE
Article • 20/10/2023
Syntaxe
DAX
TRUE()
Valeur de retour
Toujours TRUE.
Remarques
Le mot TRUE est également interprété comme la valeur logique TRUE.
Exemple
La formule retourne la valeur logique TRUE quand la valeur dans la colonne,
'InternetSales_USD'[SalesAmount_USD], est supérieure à 200000.
DAX
Le tableau suivant présente les résultats obtenus quand l’exemple de formule est utilisé
dans un rapport, avec 'ProductCategory'[ProductCategoryName] en étiquettes de ligne
et 'DateTime'[CalendarYear] en étiquettes de colonne.
Voir aussi
FALSE
NOT
IF
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions mathématiques et
trigonométriques
Article • 20/10/2023
DIVIDE Effectue une division et retourne un autre résultat ou BLANK() lors d'une
division par 0.
GCD Retourne le plus grand commun diviseur (PGCD) de deux entiers ou plus.
LOG Retourne le logarithme d’un nombre dans la base que vous spécifiez.
MOD Retourne le reste d’une division d’un nombre par un diviseur. Le résultat a
toujours le même signe que le diviseur.
RANDBETWEEN Retourne un nombre aléatoire compris entre les nombres que vous spécifiez.
SIGN Détermine le signe d’un nombre, le résultat d’un calcul ou une valeur dans une
colonne.
Commentaires
Cette page a-t-elle été utile ? Yes No
ABS
Article • 20/10/2023
Syntaxe
DAX
ABS(<number>)
Paramètres
Terme Définition
Valeur de retour
Nombre décimal.
Remarques
La valeur absolue d’un nombre est un nombre décimal, entier ou décimal, sans son
signe. Vous pouvez utiliser la fonction ABS pour faire en sorte que seuls des nombres
non négatifs soient retournés d’expressions quand elles sont imbriquées dans des
fonctions qui exigent un nombre positif.
Exemple
L’exemple suivant retourne la valeur absolue de la différence entre le prix catalogue et le
prix du détaillant, que vous pouvez utiliser dans une nouvelle colonne calculée,
DealerMarkup.
DAX
= ABS([DealerPrice]-[ListPrice])
Voir aussi
Fonctions mathématiques et trigonométriques
SIGN (fonction)
Commentaires
Cette page a-t-elle été utile ? Yes No
ACOS
Article • 20/10/2023
Retourne l’arc cosinus, ou le cosinus inverse, d’un nombre. L’arc cosinus correspond à
l’angle dont le cosinus est l’argument number. L’angle retourné est exprimé en radians,
dans une plage comprise entre 0 (zéro) et pi.
Syntaxe
DAX
ACOS(number)
Paramètres
Terme Définition
Valeur de retour
Retourne l’arc cosinus, ou le cosinus inverse, d’un nombre.
Remarques
Si vous souhaitez convertir en degrés un résultat en radians, multipliez-le par 180/PI() ou
utilisez la fonction DEGREES.
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
ACOSH
Article • 20/10/2023
Retourne le cosinus hyperbolique inverse d’un nombre. Le nombre doit être supérieur
ou égal à 1. Le cosinus hyperbolique inverse est la valeur dont le cosinus hyperbolique
est le nombre (number). ACOSH(COSH(number)) est donc égal à ce dernier.
Syntaxe
DAX
ACOSH(number)
Paramètres
Terme Définition
Valeur de retour
Retourne le cosinus hyperbolique inverse d’un nombre.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Formule Description Résultats
Syntaxe
DAX
ACOT(number)
Paramètres
Terme Définition
Valeur renvoyée
Valeur décimale unique.
Commentaires
Cette page a-t-elle été utile ? Yes No
ACOTH
Article • 20/10/2023
Syntaxe
DAX
ACOTH(number)
Paramètres
Terme Définition
Valeur renvoyée
Valeur décimale unique.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
ASIN
Article • 20/10/2023
Retourne l’arc sinus, ou sinus inverse, d’un nombre. L’arc sinus correspond à l’angle dont
le sinus est le nombre (number). L’angle retourné est exprimé en radians, dans une plage
comprise entre -pi/2 et pi/2.
Syntaxe
DAX
ASIN(number)
Paramètres
Terme Définition
Valeur de retour
Retourne l’arc sinus, ou le sinus inverse, d’un nombre.
Remarques
Pour exprimer l’arc sinus en degrés, multipliez le résultat par 180/PI( ) ou utilisez la
fonction DEGREES.
Exemple
Formule Description Résultat
Retourne le sinus hyperbolique inverse d’un nombre. Le sinus hyperbolique inverse est
la valeur dont le sinus hyperbolique est le nombre (number) : ASINH(SINH(number)) est
égal à number.
Syntaxe
DAX
ASINH(number)
Paramètres
Terme Définition
Valeur de retour
Retourne le sinus hyperbolique inverse d’un nombre.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Formule Description Résultats
Retourne l’arc tangente, ou la tangente inverse, d’un nombre. L’arc tangente correspond
à l’angle dont la tangente est l’argument number. L’angle retourné est exprimé en
radians, dans une plage comprise entre -pi/2 et pi/2.
Syntaxe
DAX
ATAN(number)
Paramètres
Terme Définition
Valeur de retour
Retourne la tangente hyperbolique inverse d’un nombre.
Remarques
Pour exprimer l’arc tangente en degrés, multipliez le résultat par 180/PI( ) ou utilisez la
fonction DEGREES.
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
ATANH
Article • 20/10/2023
Syntaxe
DAX
ATANH(number)
Paramètres
Terme Définition
Valeur de retour
Retourne la tangente hyperbolique inverse d’un nombre.
Remarques
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Formule Description Résultats
= ATANH(-0.1) -0,100335348
Voir aussi
ATAN, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
CEILING
Article • 20/10/2023
Syntaxe
DAX
CEILING(<number>, <significance>)
Paramètres
Terme Définition
nombre Nombre que vous souhaitez arrondir ou référence à une colonne contenant des
nombres.
significance Multiple de précision auquel vous voulez arrondir. Par exemple, pour arrondir à
l’entier le plus proche, entrez 1.
Valeur de retour
Nombre arrondi tel que spécifié.
Remarques
Il existe deux fonctions CEILING dans DAX. Elles diffèrent par les aspects suivants :
La fonction CEILING émule le comportement de la fonction CEILING dans Excel.
La fonction ISO.CEILING suit le comportement défini par la norme ISO pour
déterminer la valeur de plafond.
Les deux fonctions retournent la même valeur pour les nombres positifs, mais des
valeurs différentes pour les nombres négatifs. Quand vous utilisez un multiple de
précision positif, les fonctions CEILING et ISO.CEILING arrondissent les nombres
négatifs à la valeur supérieure (vers l’infini positif). Quand vous utilisez un multiple
de précision négatif, la fonction CEILING arrondit les nombres négatifs à la valeur
inférieure (vers l’infini négatif) et la fonction ISO.CEILING arrondit les nombres
négatifs à la valeur supérieure (vers l’infini positif).
Le type de retour est généralement du même type que l’argument de précision,
avec les exceptions suivantes :
Si le type d’argument de nombre est devise, le type de retour est devise.
Si le type d’argument de précision est booléen, le type de retour est entier.
Si le type d’argument de précision est non numérique, le type de retour est réel.
Exemple 1
La formule suivante retourne 4.45. Elle peut être utile si vous souhaitez éviter d’utiliser
des unités inférieures dans vos tarifs. Si un produit existant est au prix de 4,42 $, vous
pouvez utiliser CEILING pour arrondir les prix à l’unité supérieure la plus proche de cinq
cents.
DAX
= CEILING(4.42,0.05)
Exemple 2
La formule suivante retourne des résultats similaires à l’exemple précédent, mais utilise
des valeurs numériques stockées dans la colonne, ProductPrice.
DAX
= CEILING([ProductPrice],0.05)
Voir aussi
Fonctions mathématiques et trigonométriques
FLOOR, fonction
ISO.CEILING, fonction
ROUNDUP, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
CONVERT
Article • 20/10/2023
Syntaxe
DAX
CONVERT(<Expression>, <Datatype>)
Paramètres
Terme Définition
Valeur de retour
Retourne la valeur de <Expression > convertie en <Datatype>.
Remarques
La fonction retourne une erreur lorsqu’une valeur ne peut pas être convertie dans
le type de données spécifié.
Les colonnes calculées DAX doivent être d’un type de données unique. Dans la
mesure où les fonctions MEDIAN et MEDIANX sur une colonne d’entiers
retournent des types de données mixtes, de type integer ou double, l’expression
de colonne calculée suivante retourne une erreur comme résultat :
MedianNumberCarsOwned = MEDIAN(DimCustomer[NumberCarsOwned]) .
Pour éviter les types de données mixtes, modifiez l’expression pour qu’elle
retourne toujours le type de données double, par exemple :
MedianNumberCarsOwned = MEDIANX(DimCustomer, CONVERT([NumberCarsOwned],
DOUBLE)) .
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Requête DAX
DAX
retourne :
[Value]
Commentaires
Cette page a-t-elle été utile ? Yes No
COS
Article • 20/10/2023
Syntaxe
DAX
COS(number)
Paramètres
Terme Définition
Valeur de retour
Retourne le cosinus de l’angle donné.
Remarques
Si l’angle est exprimé en degrés, multipliez l’angle par PI()/180 ou utilisez la fonction
RADIANS pour convertir l’angle en radians.
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
COSH
Article • 20/10/2023
Syntaxe
DAX
COSH(number)
Paramètres
Terme Définition
nombre Obligatoire. Tout nombre réel pour lequel vous souhaitez trouver le cosinus
hyperbolique.
Valeur de retour
Cosinus hyperbolique d’un nombre.
Remarques
La formule du cosinus hyperbolique est la suivante :
z −z
e + e
COSH(z) =
2
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
COT
Article • 20/10/2023
Syntaxe
DAX
COT (<number>)
Paramètres
Terme Définition
Valeur de retour
Cotangente de l’angle donné.
Remarques
La valeur absolue du nombre doit être inférieure à 2^27 et ne peut pas être égale
à 0.
Si le nombre n’est pas une valeur numérique, une erreur est retournée.
Exemple
La requête DAX suivante :
DAX
EVALUATE { COT(30) }
retourne :
[Value]
-0.156119952161659
Commentaires
Cette page a-t-elle été utile ? Yes No
COTH
Article • 20/10/2023
Syntaxe
DAX
COTH (<number>)
Paramètres
Terme Définition
nombre Angle hyperbolique en radians pour lequel vous voulez obtenir la cotangente
hyperbolique.
Valeur de retour
Cotangente hyperbolique de l’angle donné.
Remarques
La cotangente hyperbolique est une analogue de la cotangente ordinaire
(circulaire).
Si le nombre n’est pas une valeur numérique, une erreur est retournée.
N −N
1 COSH(N) e + e
COTH(N ) = = =
N −N
TANH(N ) SINH(N) e − e
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante :
DAX
EVALUATE { COTH(2) }
retourne :
[Value]
1.03731472072755
Commentaires
Cette page a-t-elle été utile ? Yes No
DEVISE
Article • 20/10/2023
Syntaxe
DAX
CURRENCY(<value>)
Paramètres
Terme Définition
valeur Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit être
évaluée une seule fois avant toutes les autres opérations.
Valeur renvoyée
Valeur de l’expression évaluée et retournée comme valeur de type monétaire.
Notes
La fonction CURRENCY arrondit à la cinquième décimale significative, en valeur,
pour retourner le quatrième chiffre décimal. L’arrondi est effectué si la 5e décimale
significative est égale ou supérieure à 5. Par exemple, si la valeur est
3,6666666666666, la conversion en devise retourne $3.6667. Par contre, si la valeur
est 3,0123456789, la conversion en devise retourne $3.0123.
Exemple
Convertit le nombre 1234.56 en type de données monétaire.
DAX
= CURRENCY(1234.56)
Commentaires
Cette page a-t-elle été utile ? Yes No
DEGREES
Article • 20/10/2023
Syntaxe
DAX
DEGREES(angle)
Paramètres
Terme Définition
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
DIVIDE
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
alternateresult (Facultatif) Valeur retournée quand une division par zéro génère une erreur.
Quand elle est omise, la valeur par défaut est BLANK().
Valeur de retour
Nombre décimal.
Remarques
Le résultat alternatif en cas de division par 0 doit être une constante.
Exemple
L’exemple suivant retourne 2.5.
DAX
= DIVIDE(5,2)
Exemple 1
L’exemple suivant retourne BLANK.
DAX
= DIVIDE(5,0)
Exemple 2
L’exemple suivant retourne 1.
DAX
= DIVIDE(5,0,1)
Voir aussi
QUOTIENT, fonction
Fonctions mathématiques et trigonométriques
Commentaires
Cette page a-t-elle été utile ? Yes No
EVEN
Article • 20/10/2023
Syntaxe
DAX
EVEN(number)
Paramètres
Terme Définition
Valeur de retour
Retourne le nombre arrondi à l’entier pair immédiatement supérieur.
Remarques
Si nombre n’est pas numérique, EVEN retourne la valeur d’erreur #VALUE! #NUM!.
Quel que soit le signe du nombre, une valeur est arrondie vers le haut en
s’éloignant de zéro. Si le nombre est un entier pair, il n’est pas arrondi.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
EXP
Article • 20/10/2023
Syntaxe
DAX
EXP(<number>)
Paramètres
Terme Définition
Valeur de retour
Nombre décimal.
Exceptions
Remarques
EXP est l’inverse de LN, qui est le logarithme népérien du nombre donné.
Pour calculer les puissances de bases autres que e, utilisez l’opérateur d’élévation à
une puissance (^). Pour plus d’informations, consultez Référence des opérateurs
DAX.
Exemple
La formule suivante calcule e élevé à la puissance du nombre contenu dans la colonne
[Power] .
DAX
= EXP([Power])
Voir aussi
Fonctions mathématiques et trigonométriques
LN, fonction
EXP (fonction)
LOG, fonction
LOG, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
FACT
Article • 20/10/2023
Syntaxe
DAX
FACT(<number>)
Paramètres
Terme Définition
nombre Nombre non négatif pour lequel vous souhaitez calculer la factorielle.
Valeur de retour
Nombre décimal.
Remarques
Si le nombre n’est pas un entier, il est tronqué et une erreur est retournée. Si le
résultat est trop grand, une erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule suivante retourne la factorielle pour la série d’entiers de la colonne,
[Values] .
DAX
= FACT([Values])
Valeurs Résultats
0 1
1 1
2 2
3 6
4 24
5 120
170 7,257415615308E+306
Voir aussi
Fonctions mathématiques et trigonométriques
TRUNC, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
FLOOR
Article • 20/10/2023
Syntaxe
DAX
FLOOR(<number>, <significance>)
Paramètres
Terme Définition
significance Multiple auquel vous voulez arrondir. Les arguments number et significance
doivent être tous les deux positifs ou tous les deux négatifs.
Valeur de retour
Nombre décimal.
Remarques
Si l’un des arguments n’est pas numérique, FLOOR retourne la valeur d’erreur
*#VALUE!**.
Quel que soit le signe du nombre, une valeur est arrondie en s’éloignant de zéro.
Si le nombre est un multiple exact de précision, aucun arrondi n’est effectué.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule suivante prend les valeurs de la colonne [Coût total du produit] de la table,
InternetSales, et arrondit au multiple de 0,1 le plus proche.
DAX
Le tableau suivant montre les résultats attendus pour certains exemples de valeurs :
10.8423 10.8
8.0373 8
2.9733 2.9
Voir aussi
Fonctions mathématiques et trigonométriques
Commentaires
Cette page a-t-elle été utile ? Yes No
GCD
Article • 20/10/2023
Retourne le plus grand commun diviseur (PGCD) de deux entiers ou plus. Le plus grand
commun diviseur est le plus grand entier qui divise à la fois number1 et number2 sans
reste.
Syntaxe
DAX
Paramètres
Terme Définition
number1, Number1 est obligatoire, les nombres suivants sont facultatifs. Valeurs de 1 à
number2, ... 255. Si une valeur n’est pas un entier, elle est tronquée.
Valeur de retour
Plus grand commun diviseur de deux entiers ou plus.
Remarques
Si un argument n’est pas numérique, le PGCD retourne la valeur d’erreur #VALUE!
#NUM!.
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
INT
Article • 20/10/2023
Syntaxe
DAX
INT(<number>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier.
Remarques
Les fonctions TRUNC et INT sont similaires en ce sens que les deux retournent des
entiers. TRUNC supprime la partie fractionnaire du nombre. INT arrondit les nombres à
l’entier immédiatement inférieur, en fonction de la valeur de la partie fractionnaire du
nombre. INT et TRUNC ne sont différentes que lorsque vous utilisez des nombres
négatifs : TRUNC(-4.3) retourne -4, mais INT(-4.3) retourne -5, car -5 est le nombre
inférieur.
Exemple
L’expression suivante arrondit la valeur à 1. Si vous utilisez la fonction ROUND, le
résultat est 2.
DAX
= INT(1.5)
Voir aussi
Fonctions mathématiques et trigonométriques
ROUND, fonction
ROUNDUP, fonction
ROUNDDOWN, fonction
MROUND, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ISO.CEILING
Article • 20/10/2023
Syntaxe
DAX
ISO.CEILING(<number>[, <significance>])
Paramètres
Terme Définition
nombre Nombre que vous souhaitez arrondir ou référence à une colonne contenant des
nombres.
significance (Facultatif) Multiple de précision auquel vous voulez arrondir le nombre. Par
exemple, pour arrondir à l’entier le plus proche, entrez 1. Si l’unité de précision n’est
pas spécifiée, le nombre est arrondi à l’entier le plus proche.
Valeur de retour
Nombre, du même type que l’argument number, arrondi comme spécifié.
Remarques
Il existe deux fonctions CEILING dans DAX. Elles diffèrent par les aspects suivants :
Les deux fonctions retournent la même valeur pour les nombres positifs, mais des
valeurs différentes pour les nombres négatifs. Quand vous utilisez un multiple de
précision positif, les fonctions CEILING et ISO.CEILING arrondissent les nombres négatifs
à la valeur supérieure (vers l’infini positif). Quand vous utilisez un multiple de précision
négatif, la fonction CEILING arrondit les nombres négatifs à la valeur inférieure (vers
l’infini négatif) et la fonction ISO.CEILING arrondit les nombres négatifs à la valeur
supérieure (vers l’infini positif).
Si l’argument de précision n’est pas de type numérique, le résultat est de type réel.
DAX
= ISO.CEILING(4.42,0.05)
DAX
= ISO.CEILING(-4.42,0.05)
Voir aussi
Fonctions mathématiques et trigonométriques
FLOOR, fonction
CEILING, fonction
ROUNDUP, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
LCM
Article • 20/10/2023
Retourne le plus petit commun multiple des entiers. Le plus petit commun multiple est
l’entier positif le plus petit qui est un multiple de tous les entiers en argument number1,
number2, etc. Utilisez LCM pour ajouter des fractions avec des dénominateurs différents.
Syntaxe
DAX
Paramètres
Terme Définition
number1, number1 est obligatoire, les nombres suivants sont facultatifs. Valeurs 1 à 255
number2, ... dont vous voulez le plus petit commun multiple. Si la valeur n’est pas un entier,
elle est tronquée.
Valeur de retour
Retourne le plus petit commun multiple des entiers.
Remarques
Si un argument n’est pas numérique, LCM retourne la valeur d’erreur #NUM!.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
LN
Article • 20/10/2023
Retourne le logarithme naturel d’un nombre. Les logarithmes naturels sont basés sur la
constante e (2,71828182845904).
Syntaxe
DAX
LN(<number>)
Paramètres
Terme Définition
Valeur de retour
Nombre décimal.
Remarques
La fonction LN est l’inverse de la fonction EXP.
Exemple
L’exemple suivant retourne le logarithme naturel du nombre dans la colonne, [Values] .
DAX
= LN([Values])
Voir aussi
Fonctions mathématiques et trigonométriques
EXP (fonction)
Commentaires
Cette page a-t-elle été utile ? Yes No
LOG
Article • 20/10/2023
Syntaxe
DAX
LOG(<number>,<base>)
Paramètres
Terme Définition
Valeur de retour
Nombre décimal.
Remarques
Vous pouvez recevoir une erreur si la valeur est trop grande pour être affichée.
La fonction LOG10 est similaire, mais retourne toujours le logarithme commun, c’est-à-
dire le logarithme de base 10.
Exemple
Les formules suivantes retournent le même résultat, 2.
DAX
= LOG(100,10)
= LOG(100)
= LOG10(100)
Voir aussi
Fonctions mathématiques et trigonométriques
EXP (fonction)
LOG, fonction
LOG, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
LOG10
Article • 20/10/2023
Syntaxe
DAX
LOG10(<number>)
Paramètres
Terme Définition
nombre Nombre positif dont vous voulez obtenir le logarithme de base 10.
Valeur de retour
Nombre décimal.
Remarques
La fonction LOG vous permet de changer la base du logarithme, au lieu d’utiliser la
base 10.
Exemple
Les formules suivantes retournent le même résultat, 2 :
DAX
= LOG(100,10)
= LOG(100)
= LOG10(100)
Voir aussi
Fonctions mathématiques et trigonométriques
EXP (fonction)
LOG, fonction
LOG, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
MOD
Article • 20/10/2023
Retourne le reste d’une division d’un nombre par un diviseur. Le résultat a toujours le
même signe que le diviseur.
Syntaxe
DAX
MOD(<number>, <divisor>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier.
Remarques
Si le diviseur a la valeur 0 (zéro), MOD retourne une erreur. Vous ne pouvez pas
diviser par 0.
La fonction MOD peut être exprimée dans les termes de la fonction INT : MOD(n,
d) = n - d*INT(n/d)
Exemple 1
La formule suivante retourne 1, le reste de 3 divisé par 2.
DAX
= MOD(3,2)
Exemple 2
La formule suivante retourne -1, le reste de 3 divisé par 2. Notez que le signe est
toujours identique au signe du diviseur.
DAX
= MOD(-3,-2)
Voir aussi
Fonctions mathématiques et trigonométriques
ROUND, fonction
ROUNDUP, fonction
ROUNDDOWN, fonction
MROUND, fonction
INT, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
MROUND
Article • 20/10/2023
Syntaxe
DAX
MROUND(<number>, <multiple>)
Paramètres
Terme Définition
Valeur de retour
Nombre décimal.
Remarques
MROUND arrondit au nombre supérieur, à l’opposé de zéro, si le reste de la division de
number par la valeur de multiple spécifiée est supérieur ou égal à la moitié de la valeur
de multiple.
DAX
= MROUND(1.3,0.2)
Exemple : nombres négatifs
L’expression suivante arrondit -10 au multiple le plus proche de 0,3. Le résultat attendu
est -9.
DAX
= MROUND(-10,-3)
Exemple : erreur
L’expression suivante retourne une erreur, car les nombres ont des signes différents.
DAX
= MROUND(5,-2)
Voir aussi
Fonctions mathématiques et trigonométriques
ROUND, fonction
ROUNDUP, fonction
ROUNDDOWN, fonction
MROUND, fonction
INT, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ODD
Article • 20/10/2023
Syntaxe
DAX
ODD(number)
Paramètres
Terme Définition
Valeur de retour
Retourne le nombre arrondi à l’entier impair immédiatement supérieur.
Remarques
Si nombre n’est pas numérique, ODD retourne la valeur d’erreur #NUM!.
Quel que soit le signe du nombre, une valeur est arrondie vers le haut en
s’éloignant de zéro. Si le nombre est un entier impair, aucun arrondi n’est effectué.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
PI
Article • 20/10/2023
Syntaxe
DAX
PI()
Valeur de retour
Nombre décimal avec la valeur de Pi, 3,14159265358979, avec une précision de
15 chiffres.
Remarques
Pi est une constante mathématique. Dans DAX, Pi est représenté sous la forme d’un
nombre réel d’une précision de 15 chiffres, comme dans Excel.
Exemple
La formule suivante calcule l’aire d’un cercle à partir du rayon indiqué dans la colonne,
[Radius] .
DAX
= PI()*([Radius]*2)
Voir aussi
Fonctions mathématiques et trigonométriques
Commentaires
Cette page a-t-elle été utile ? Yes No
POWER
Article • 20/10/2023
Syntaxe
DAX
POWER(<number>, <power>)
Paramètres
Terme Définition
nombre Nombre de base, qui peut être n’importe quel nombre réel.
Valeur de retour
Nombre décimal.
Exemple
L’exemple suivant retourne 25.
DAX
= POWER(5,2)
Voir aussi
Fonctions mathématiques et trigonométriques
Commentaires
Cette page a-t-elle été utile ? Yes No
QUOTIENT
Article • 20/10/2023
Effectue une division et retourne uniquement la partie entière du résultat. Utilisez cette
fonction quand vous souhaitez ignorer le reste de la division.
Syntaxe
DAX
QUOTIENT(<numerator>, <denominator>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier.
Remarques
Si l’un des arguments est non numérique, QUOTIENT retourne la valeur d’erreur
#VALUE!.
Vous pouvez utiliser une référence de colonne au lieu d’une valeur littérale pour
l’un ou l’autre des arguments. Toutefois, si la colonne que vous référencez contient
un 0 (zéro), une erreur est retournée pour l’ensemble de la colonne de valeurs.
Exemple
Les formules suivantes retournent le même résultat, 2.
DAX
= QUOTIENT(5,2)
DAX
= QUOTIENT(10/2,2)
Voir aussi
Fonctions mathématiques et trigonométriques
Commentaires
Cette page a-t-elle été utile ? Yes No
RADIANS
Article • 20/10/2023
Syntaxe
DAX
RADIANS(angle)
Paramètres
Terme Définition
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
RAND
Article • 20/10/2023
Syntaxe
DAX
RAND()
Valeur renvoyée
Nombre décimal.
Remarques
Le recalcul dépend de différents facteurs, notamment du mode de recalcul du
modèle (Manuel ou Automatique) et de l’actualisation (ou non) des données.
Comme d’autres fonctions volatiles qui n’ont pas de valeurs fixes, la fonction RAND
n’est pas toujours recalculée. Par exemple, en général, l’exécution d’une requête ou
un filtrage n’entraîne pas la réévaluation de ces fonctions. Toutefois, les résultats
de ces fonctions sont recalculés quand la colonne entière est recalculée. Ceci se
produit notamment lors d’une actualisation à partir d’une source de données
externe ou de la modification manuelle de données entraînant la réévaluation des
formules qui contiennent ces fonctions.
La fonction RAND est toujours recalculée si elle est utilisée dans la définition d’une
mesure.
La fonction RAND ne peut pas retourner le résultat zéro, pour éviter des erreurs
telles qu’une division par zéro.
Exemples
Pour générer un nombre réel aléatoire compris entre deux autres nombres, utilisez :
DAX
= RAND()*(b-a)+a
DAX
= RAND()
DAX
= RAND()*100
DAX
INT(RAND()*100)
Voir aussi
Fonctions mathématiques et trigonométriques
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
RANDBETWEEN
Article • 20/10/2023
Retourne un nombre aléatoire compris entre les nombres que vous spécifiez.
Syntaxe
DAX
RANDBETWEEN(<bottom>,<top>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier.
Remarques
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
La formule suivante retourne un nombre aléatoire compris entre 1 et 10.
DAX
= RANDBETWEEN(1,10)
Voir aussi
Fonctions mathématiques et trigonométriques
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
ROUND
Article • 20/10/2023
Syntaxe
DAX
ROUND(<number>, <num_digits>)
Paramètres
Terme Définition
num_digits Nombre de chiffres auquel arrondir le nombre. Une valeur négative arrondit les
chiffres à gauche de la décimale. La valeur zéro arrondit le nombre à l’entier le plus
proche.
Valeur de retour
Nombre décimal.
Remarques
Si num_digits est supérieur à 0 (zéro), le nombre est arrondi selon le nombre
spécifié de décimales.
Fonctions connexes
Pour arrondir systématiquement vers le haut (en s’éloignant de zéro), utilisez la
fonction ROUNDUP.
Pour arrondir systématiquement vers le bas (vers zéro), utilisez la fonction
ROUNDDOWN.
Pour arrondir un nombre à un multiple spécifique (par exemple, au multiple
de 0,5 le plus proche), utilisez la fonction MROUND.
Utilisez les fonctions TRUNC et INT pour obtenir la partie entière du nombre.
Exemple 1
La formule suivante arrondit la valeur 2.15 à une décimale vers le haut. Le résultat
attendu est 2.2.
DAX
= ROUND(2.15,1)
Exemple 2
La formule suivante arrondit la valeur 21.5 à gauche de la décimale. Le résultat attendu
est 20.
DAX
= ROUND(21.5,-1)
Voir aussi
Fonctions mathématiques et trigonométriques
ROUND
ROUNDDOWN
MROUND
INT
TRUNC
Commentaires
Cette page a-t-elle été utile ? Yes No
ROUNDDOWN
Article • 20/10/2023
Syntaxe
DAX
ROUNDDOWN(<number>, <num_digits>)
Paramètres
Terme Définition
num_digits Nombre de chiffres auquel arrondir le nombre. Une valeur négative arrondit à
gauche de la virgule décimale ; la valeur zéro arrondit à l’entier le plus proche.
Valeur de retour
Nombre décimal.
Remarques
Si num_digits est supérieur à 0 (zéro), la valeur de number est arrondie à l’entier
inférieur selon le nombre spécifié de décimales.
DAX
= ROUNDDOWN(3.14159,3)
Exemple 2
L’exemple suivant arrondit la valeur de 31415,92654 à 2 décimales à gauche de la
virgule décimale. Le résultat attendu est 31400.
DAX
= ROUNDDOWN(31415.92654, -2)
Voir aussi
Fonctions mathématiques et trigonométriques
ROUND
ROUNDUP
ROUNDDOWN
MROUND
INT
Commentaires
Cette page a-t-elle été utile ? Yes No
ROUNDUP
Article • 20/10/2023
Syntaxe
DAX
ROUNDUP(<number>, <num_digits>)
Paramètres
Terme Définition
num_digits Nombre de chiffres souhaité pour le nombre arrondi. Si la valeur de num_digits est
négative, l’arrondi s’effectue à gauche de la décimale. Si num_digits est égal à zéro
ou est omis, le nombre (number) est arrondi à l’entier le plus proche.
Valeur de retour
Nombre décimal.
Remarques
Si num_digits est supérieur à 0 (zéro), le nombre est arrondi vers le haut selon le
nombre spécifié de décimales.
Si num_digits est égal à 0, le nombre est arrondi à l’entier supérieur le plus proche.
Exemple
La formule suivante arrondit Pi à quatre décimales. Le résultat attendu est 3,1416.
DAX
= ROUNDUP(PI(),4)
DAX
= ROUNDUP(1.3,0.2)
DAX
= ROUNDUP([Values],-1)
13.25 20
2.45 10
25.56 30
1.34 10
345.01 350
Voir aussi
Fonctions mathématiques et trigonométriques
ROUND
ROUNDDOWN
MROUND
INT
Commentaires
Cette page a-t-elle été utile ? Yes No
SIGN
Article • 20/10/2023
Détermine le signe d’un nombre, le résultat d’un calcul ou une valeur dans une colonne.
La fonction retourne 1 si le nombre est positif, 0 (zéro) si le nombre est zéro ou -1 si le
nombre est négatif.
Syntaxe
DAX
SIGN(<number>)
Paramètres
Terme Définition
nombre N’importe quel nombre réel, une colonne qui contient des nombres ou une expression
qui prend la valeur d’un nombre.
Valeur de retour
Nombre entier. Les valeurs de retour possibles sont 1, 0 et -1.
Exemple
La formule suivante retourne le signe du résultat de l’expression qui calcule le prix de
vente moins le coût.
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
SIN
Article • 20/10/2023
Syntaxe
DAX
SIN(number)
Paramètres
Terme Définition
Valeur de retour
Retourne le sinus de l’angle donné.
Remarques
Si un argument est exprimé en degrés, multipliez-le par PI()/180 ou utilisez la fonction
RADIANS pour le convertir en radians.
Exemple
Formule Description Résultat
Syntaxe
DAX
SINH(number)
Paramètres
Terme Définition
Valeur de retour
Retourne le sinus hyperbolique d’un nombre.
Remarques
La formule du sinus hyperbolique est la suivante :
z −z
e − e
SINH(z) =
2
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Probabilité d’obtention d’un résultat inférieur à 1.03 secondes.
DAX
= 2.868*SINH(0.0342\*1.03)
Retourne 0,1010491
Commentaires
Cette page a-t-elle été utile ? Yes No
SQRT
Article • 20/10/2023
Syntaxe
DAX
SQRT(<number>)
Paramètres
Terme Définition
nombre Nombre dont vous voulez obtenir la racine carrée, une colonne qui contient des
nombres ou une expression qui prend la valeur d’un nombre.
Valeur de retour
Nombre décimal.
Remarques
Si le nombre est négatif, la fonction SQRT retourne une erreur.
Exemple
La formule suivante,
DAX
= SQRT(25)
Voir aussi
Fonctions mathématiques et trigonométriques
Commentaires
Cette page a-t-elle été utile ? Yes No
SQRTPI
Article • 20/10/2023
Syntaxe
DAX
SQRTPI(number)
Paramètres
Terme Définition
Valeur de retour
Retourne la racine carrée de (number * pi).
Exemple
Formule Description Résultats
Commentaires
Cette page a-t-elle été utile ? Yes No
TAN
Article • 20/10/2023
Syntaxe
DAX
TAN(number)
Paramètres
Terme Définition
Valeur de retour
Retourne la tangente de l’angle donné.
Remarques
Si l’argument est exprimé en degrés, multipliez-le par PI()/180 ou utilisez la fonction
RADIANS pour le convertir en radians.
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
TANH
Article • 20/10/2023
Syntaxe
DAX
TANH(number)
Paramètres
Terme Définition
Valeur de retour
Retourne la tangente hyperbolique d’un nombre.
Remarques
La formule de la tangente hyperbolique est la suivante :
SINH(z)
TANH(z) =
COSH(z)
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
TRUNC
Article • 20/10/2023
Syntaxe
DAX
TRUNC(<number>,<num_digits>)
Paramètres
Terme Définition
Valeur de retour
Nombre entier.
Remarques
Les fonctions TRUNC et INT sont similaires en ce sens que les deux retournent des
entiers. TRUNC supprime la partie fractionnaire du nombre. INT arrondit les nombres à
l’entier immédiatement inférieur en fonction de la valeur de la partie fractionnaire du
nombre. Les fonctions INT et TRUNC ne sont différentes que si vous utilisez des
nombres négatifs : TRUNC(-4.3) retourne -4, mais INT(-4.3) retourne -5, car -5 est le
nombre inférieur.
Exemple 1
La formule suivante retourne la valeur 3, soit la partie entière de pi.
DAX
= TRUNC(PI())
Exemple 2
La formule suivante retourne la valeur -8, soit la partie entière de -8.9.
DAX
= TRUNC(-8.9)
Voir aussi
Fonctions mathématiques et trigonométriques
ROUND
ROUNDUP
ROUNDDOWN
MROUND
INT
Commentaires
Cette page a-t-elle été utile ? Yes No
Autres fonctions
Article • 20/10/2023
Ces fonctions effectuent des actions uniques qui n’entrent dans aucune des catégories.
Commentaires
Cette page a-t-elle été utile ? Yes No
BLANK
Article • 20/10/2023
Retourne un espace.
Syntaxe
DAX
BLANK()
Valeur de retour
Espace.
Remarques
Les espaces ne sont pas équivalents aux valeurs Null. DAX utilise des espaces pour
les valeurs Null de base de données et pour les cellules vides dans Excel.
Exemple
L’exemple suivant montre comment vous pouvez utiliser des espaces dans des formules.
La formule calcule le ratio des ventes entre les canaux Revendeurs et Internet. Toutefois,
avant d’essayer de calculer le ratio, il convient de rechercher les valeurs zéro pour le
dénominateur. Si le dénominateur a la valeur zéro, une valeur vide doit être retournée ;
dans le cas contraire, le ratio est calculé.
DAX
Dans la source de données d’origine, la colonne évaluée par la fonction BLANK peut
comporter du texte, des chaînes vides ou des valeurs Null. Si la source de données
d’origine était une base de données SQL Server, les valeurs Null et les chaînes vides sont
différents types de données. Toutefois, pour cette opération, un cast de type implicite
est effectué et DAX les traite comme étant identiques.
Voir aussi
Fonctions de texte
ISBLANK, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ERROR
Article • 20/10/2023
Syntaxe
DAX
ERROR(<text>)
Paramètres
Terme Définition
Valeur de retour
Aucune
Remarques
La fonction ERROR peut être placée dans une expression DAX partout où une
valeur scalaire est attendue.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
La requête DAX suivante :
DAX
DEFINE
MEASURE DimProduct[Measure] =
IF(
SELECTEDVALUE(DimProduct[Color]) = "Red",
ERROR("red color encountered"),
SELECTEDVALUE(DimProduct[Color])
)
EVALUATE SUMMARIZECOLUMNS(DimProduct[Color], "Measure", [Measure])
ORDER BY [Color]
Exemple 2
La requête DAX suivante :
DAX
DEFINE
MEASURE DimProduct[Measure] =
IF(
SELECTEDVALUE(DimProduct[Color]) = "Magenta",
ERROR("magenta color encountered"),
SELECTEDVALUE(DimProduct[Color])
)
EVALUATE SUMMARIZECOLUMNS(DimProduct[Color], "Measure", [Measure])
ORDER BY [Color]
DimProduct[Color] [Measure]
Noir Noir
Bleu Blue
Grey Grey
Multiple Multi
N/D N/A
Rouge Red
Argent Silver
Silver\Black Silver\Black
White White
Jaune Yellow
Comme Magenta ne figure pas parmi les couleurs de produit, la fonction ERROR n’est
pas exécutée.
Commentaires
Cette page a-t-elle été utile ? Yes No
EVALUATEANDLOG
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Étiquette (Facultatif) Chaîne constante incluse dans le texte json et la colonne Label de
l’événement de journal d’évaluation DAX qui peut être utilisée pour identifier
facilement une instance de l’appel de fonction.
MaxRows (Facultatif) Nombre maximal de lignes dans le texte json de l’événement de journal
d’évaluation DAX quand le premier argument est une expression de table. La valeur
par défaut est 10.
Valeur renvoyée
Valeur du premier argument.
Remarques
Les événements de trace peuvent être capturés avec SQL Server Profiler et de
l’outil open source DAX Debug Output .
Cette fonction peut être utilisée avec presque n’importe quelle sous-expression
dans une expression DAX, sans que cela affecte la validité de l’ensemble de
l’expression.
Quand le premier argument est évalué plusieurs fois dans une requête unique, la
fonction génère un seul événement de journal d’évaluation DAX qui contient à la
fois les valeurs d’entrée et les valeurs de sortie correspondantes.
Quand le paramètre label est spécifié, sa valeur est retournée dans la sortie json et
dans la colonne Label de l’événement de journal d’évaluation DAX.
Si le premier argument est une expression de table, seules les lignes MaxRows
supérieures sont affichées dans l’événement de journal d’évaluation DAX.
Dans certains cas, cette fonction n’est pas exécutée en raison d’optimisations.
Exemple 1
La requête DAX suivante :
DAX
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
JSON
{
"expression": "FILTER(Sales, [ProductKey] = 528)",
"inputs": [],
"outputs": ["'Sales'[SalesOrderLineKey]", "'Sales'[ResellerKey]",
"'Sales'[CustomerKey]", "'Sales'[ProductKey]", "'Sales'[OrderDateKey]",
"'Sales'[DueDateKey]", "'Sales'[ShipDateKey]", "'Sales'[SalesTerritoryKey]",
"'Sales'[Order Quantity]", "'Sales'[Unit Price]", "'Sales'[Extended
Amount]", "'Sales'[Product Standard Cost]", "'Sales'[Total Product Cost]",
"'Sales'[Sales Amount]", "'Sales'[Unit Price Discount Pct]"],
"data": [
{
"input": [],
"rowCount": 3095,
"output": [
[52174001, -1, 23785, 528, 20190707, 20190717, 20190714, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52173001, -1, 26278, 528, 20190707, 20190717, 20190714, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52082001, -1, 23831, 528, 20190705, 20190715, 20190712, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52054002, -1, 11207, 528, 20190704, 20190714, 20190711, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52036001, -1, 25337, 528, 20190704, 20190714, 20190711, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51939002, -1, 23670, 528, 20190702, 20190712, 20190709, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51911002, -1, 11746, 528, 20190701, 20190711, 20190708, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51379003, -1, 13745, 528, 20190612, 20190622, 20190619, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51264002, -1, 11282, 528, 20190605, 20190615, 20190612, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51184003, -1, 11263, 528, 20190531, 20190610, 20190607, 1,
1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0]
]
}
]
}
Exemple 2
La requête DAX suivante avec un argument scalaire et différents attributs :
DAX
evaluate
SELECTCOLUMNS(
TOPN(5, Customer),
[Customer],
"Customer",
EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)
JSON
{
"expression": "[Customer] & \", \" & [Country-Region]",
"label": "customerLog",
"inputs": ["'Customer'[Customer]", "'Customer'[Country-Region]"],
"data": [
{
"input": ["Russell Xie", "United States"],
"output": "Russell Xie, United States"
},
{
"input": ["Savannah Baker", "United States"],
"output": "Savannah Baker, United States"
},
{
"input": ["Maurice Tang", "United States"],
"output": "Maurice Tang, United States"
},
{
"input": ["Emily Wood", "United States"],
"output": "Emily Wood, United States"
},
{
"input": ["Meghan Hernandez", "United States"],
"output": "Meghan Hernandez, United States"
}
]
}
Voir aussi
TOCSV
TOJSON
Commentaires
Cette page a-t-elle été utile ? Yes No
TOCSV
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur renvoyée
Chaîne avec une représentation CSV de la table.
Exemple
La requête DAX suivante :
DAX
EVALUATE
{TOCSV(DimSalesTerritory)}
Retourne :
'DimSalesTerritory'[SalesTerritoryKey],'DimSalesTerritory'[SalesTerritoryAlt
ernateKey],'DimSalesTerritory'[SalesTerritoryRegion],'DimSalesTerritory'[Sal
esTerritoryCountry],'DimSalesTerritory'[SalesTerritoryGroup]
1,1,Northwest,United States,North America
2,2,Northeast,United States,North America
3,3,Central,United States,North America
4,4,Southwest,United States,North America
5,5,Southeast,United States,North America
6,6,Canada,Canada,North America
7,7,France,France,Europe
8,8,Germany,Germany,Europe
9,9,Australia,Australia,Pacific
10,10,United Kingdom,United Kingdom,Europe
Voir aussi
TOJSON
EVALUATEANDLOG
Commentaires
Cette page a-t-elle été utile ? Yes No
TOJSON
Article • 20/10/2023
Syntaxe
DAX
TOJSON(<Table>, [MaxRows])
Paramètres
Terme Définition
Valeur renvoyée
Chaîne avec une représentation JSON de la table. La représentation contient les noms
de colonnes en tant que « header », le nombre de lignes en tant que « rowCount » et les
valeurs en tant que « data ».
Exemple
La requête DAX suivante :
DAX
EVALUATE
{TOJSON(DimSalesTerritory)}
Retourne :
JSON
{
"header": ["'DimSalesTerritory'[SalesTerritoryKey]",
"'DimSalesTerritory'[SalesTerritoryAlternateKey]",
"'DimSalesTerritory'[SalesTerritoryRegion]",
"'DimSalesTerritory'[SalesTerritoryCountry]",
"'DimSalesTerritory'[SalesTerritoryGroup]"],<br>
"rowCount": 11,
"data": [
[1, 1, "Northwest", "United States", "North America"],
[2, 2, "Northeast", "United States", "North America"],
[3, 3, "Central", "United States", "North America"],
[4, 4, "Southwest", "United States", "North America"],
[5, 5, "Southeast", "United States", "North America"],
[6, 6, "Canada", "Canada", "North America"],
[7, 7, "France", "France", "Europe"],
[8, 8, "Germany", "Germany", "Europe"],
[9, 9, "Australia", "Australia", "Pacific"],
[10, 10, "United Kingdom", "United Kingdom", "Europe"]
]
}
Voir aussi
TOCSV
EVALUATEANDLOG
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions parents et enfants
Article • 20/10/2023
Ces fonctions gèrent les données présentées sous forme de hiérarchies parent/enfant.
Pour en savoir plus, consultez Présentation des fonctions pour les hiérarchies parent-
enfant dans DAX.
PATH Retourne une chaîne de texte délimitée avec les identificateurs de tous les
parents de l’identificateur actuel.
PATHCONTAINS Retourne la valeur TRUE si l’élément spécifié existe dans le chemin spécifié.
Commentaires
Cette page a-t-elle été utile ? Yes No
Présentation des fonctions pour les
hiérarchies parent-enfant dans DAX
Article • 20/10/2023
DAX fournit cinq fonctions pour aider les utilisateurs à gérer les données qui se
présentent sous la forme d’une hiérarchie parent-enfant dans leurs modèles. Grâce à ces
fonctions, un utilisateur peut obtenir l’intégralité du lignage des parents d’une ligne, le
nombre de niveaux du lignage jusqu’au parent supérieur, l’identité du parent situé
n niveaux au-dessus de la ligne actuelle et l’identité du nième descendant à partir du
sommet de la hiérarchie de la ligne actuelle. Il est aussi possible de savoir si un parent
donné est un parent dans la hiérarchie de la ligne actuelle.
EmployeeKey ParentEmployeeKey
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162
Dans la table ci-dessus, vous pouvez voir qu’aucun parent n’est défini pour
l’employé 112, que l’employé 14 a pour responsable l’employé 112
(ParentEmployeeKey), que l’employé 3 a pour responsable l’employé 14 et que les
employés 11, 13 et 162 ont pour responsable l’employé 3. L’exemple ci-dessus nous
permet de comprendre que l’employé 112 n’a aucun supérieur et qu’il est en charge de
tous les employés indiqués ici. Par ailleurs, l’employé 3 relève de l’employé 14 et les
employés 11, 13 et 162 de l’employé 3.
La table suivante présente les fonctions disponibles, une brève description de la fonction
et un exemple de la fonction sur les mêmes données que celles indiquées ci-dessus.
Fonction PATH – Retourne un texte délimité contenant les identificateurs de tous les
parents de la ligne actuelle, en commençant par le niveau le plus ancien ou le plus élevé
jusqu’au niveau actuel.
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
81 162 112|14|3|162|81
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
EmployeeKey ParentEmployeeKey Chemin PathLength
81 162 112|14|3|162|81 5
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
112 112
14 112 112|14
EmployeeKey ParentEmployeeKey Chemin PathItemReverse - 3e élément à
partir de la droite
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
81 162 112|14|3|162|81 3
3 14 112|14|3 FAUX
11 3 112|14|3|11 FAUX
13 3 112|14|3|13 FAUX
Commentaires
Cette page a-t-elle été utile ? Yes No
PATH
Article • 20/10/2023
Retourne une chaîne de texte délimitée contenant les identificateurs de tous les parents
de l’identificateur actuel, en commençant par le niveau le plus ancien et en continuant
jusqu’au niveau actuel.
Syntaxe
DAX
PATH(<ID_columnName>, <parent_columnName>)
Paramètres
Terme Définition
ID_columnName Nom d’une colonne existante contenant l’identificateur unique des lignes
de la table. Il ne peut pas s’agir d’une expression. La valeur
ID_columnName doit être de type texte ou entier. Son type de données
doit également correspondre à celui de la colonne référencée dans
parent_columnName.
Valeur renvoyée
Chaîne de texte délimitée avec les identificateurs de tous les parents de l’identificateur
actuel.
Notes
Cette fonction est utilisée dans les tables possédant un type de hiérarchie interne
pour retourner les éléments associés à la valeur de ligne actuelle. Par exemple,
dans une table d’employés contenant des employés, les responsables des
employés et les responsables des responsables, vous pouvez retourner le chemin
qui connecte un employé à son ou sa responsable.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant crée une colonne calculée qui liste tous les responsables de chaque
employé.
DAX
= PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey])
Commentaires
Cette page a-t-elle été utile ? Yes No
PATHCONTAINS
Article • 20/10/2023
Retourne TRUE si l’élément (item) spécifié existe dans le chemin (path) spécifié.
Syntaxe
DAX
PATHCONTAINS(<path>, <item>)
Paramètres
Terme Définition
Valeur renvoyée
Valeur TRUE si item existe dans path ; sinon, FALSE.
Notes
Si item est un nombre entier, il est converti en texte, puis la fonction est évaluée.
En cas d’échec de la conversion, la fonction retourne une erreur.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant crée une colonne calculée qui prend un ID de responsable et vérifie
un ensemble d’employés. Si l’ID de responsable fait partie de la liste de responsables
retournée par la fonction PATH, la fonction PATHCONTAINS retourne la valeur true ;
sinon, elle retourne la valeur false.
DAX
= PATHCONTAINS(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]),
"23")
Commentaires
Cette page a-t-elle été utile ? Yes No
PATHITEM
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
path Chaîne de texte sous la forme des résultats d’une fonction PATH.
énumération de type
Valeur renvoyée
Identificateur retourné par la fonction PATH à la position spécifiée dans la liste
d’identificateurs. Les éléments retournés par la fonction PATH sont classés du plus
éloigné à l’actuel.
Notes
Cette fonction peut être utilisée pour retourner un niveau spécifique à partir d’une
hiérarchie retournée par une fonction PATH. Par exemple, vous pouvez retourner
uniquement les responsables de niveau supérieur pour tous les employés.
Si vous spécifiez un nombre pour position qui est inférieur à un (1) ou supérieur au
nombre d’éléments dans path, la fonction PATHITEM retourne une valeur vide
(BLANK).
Si type n’est pas un élément d’énumération valide, une erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant retourne le responsable de troisième niveau de l’employé actuel ; il
prend les ID de l’employé et du responsable comme entrée d’une fonction PATH qui
retourne une chaîne avec la hiérarchie des parents à l’employé actuel. À partir de cette
chaîne, PATHITEM retourne la troisième entrée sous la forme d’un entier.
DAX
= PATHITEM(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), 3, 1)
Commentaires
Cette page a-t-elle été utile ? Yes No
PATHITEMREVERSE
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
énumération de type
Valeur renvoyée
Ascendant à la position n dans le chemin donné, en comptant de la position actuelle
vers la plus ancienne.
Notes
Cette fonction peut être utilisée pour obtenir un élément individuel d’une
hiérarchie résultant d’une fonction PATH.
Cette fonction inverse l’ordre standard de la hiérarchie afin que les éléments les
plus proches soient listés en premier. Par exemple, si la fonction PATH retourne
une liste de responsables au-dessus d’un employé dans une hiérarchie, la fonction
PATHITEMREVERSE retourne le responsable immédiat de l’employé à la position 2,
car la position 1 contient l’ID de l’employé.
Si type n’est pas un élément d’énumération valide, une erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant utilise une colonne d’ID d’employé comme entrée d’une fonction
PATH et inverse la liste des éléments grands-parents qui sont retournés. La position
spécifiée est 3 et le type de retour est 1. La fonction PATHITEMREVERSE retourne donc
un entier représentant le responsable situé deux niveaux hiérarchiques au-dessus de
l’employé.
DAX
= PATHITEMREVERSE(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]),
3, 1)
Commentaires
Cette page a-t-elle été utile ? Yes No
PATHLENGTH
Article • 20/10/2023
Syntaxe
DAX
PATHLENGTH(<path>)
Paramètres
Terme Définition
Valeur renvoyée
Nombre d’éléments parents de l’élément spécifié dans un résultat PATH donné, y
compris l’élément spécifié.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
L’exemple suivant prend un ID d’employé comme entrée pour une fonction PATH et
retourne la liste des responsables au-dessus de cet employé dans la hiérarchie. La
fonction PATHLENGTH prend ce résultat et compte les différents niveaux d’employés et
de responsables, y compris celui de l’employé avec lequel vous avez commencé.
DAX
= PATHLENGTH(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]))
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions de relation
Article • 20/10/2023
Les fonctions de cette catégorie permettent de gérer et d’utiliser les relations entre les
tables.
CROSSFILTER Spécifie la direction du filtrage croisé à utiliser dans un calcul pour une
relation existant entre deux colonnes.
RELATEDTABLE Évalue une expression de table dans un contexte modifié par les filtres
spécifiés.
USERELATIONSHIP Spécifie la relation à utiliser dans un calcul spécifique, comme celle qui existe
entre columnName1 et columnName2.
Commentaires
Cette page a-t-elle été utile ? Yes No
CROSSFILTER
Article • 20/10/2023
Spécifie la direction du filtrage croisé à utiliser dans un calcul pour une relation existant
entre deux colonnes.
Syntaxe
DAX
Paramètres
Terme Définition
columnName1 Nom complet d’une colonne existante spécifié avec la syntaxe DAX standard. Il
représente généralement le côté « plusieurs » de la relation à utiliser. Si les
arguments sont fournis dans l’ordre inverse, la fonction les permute avant de les
utiliser. Cet argument ne peut pas être une expression.
columnName2 Nom complet d’une colonne existante spécifié avec la syntaxe DAX standard. Il
représente généralement le côté « un » ou le côté de la recherche de la relation
à utiliser. Si les arguments sont fournis dans l’ordre inverse, la fonction les
permute avant de les utiliser. Cet argument ne peut pas être une expression.
Direction Direction du filtre croisé à utiliser. Doit prendre l'une des valeurs suivantes :
Both : Les filtres sur les deux côtés filtrent l’autre côté.
OneWay : Les filtres sur un côté ou le côté de la recherche d’une relation filtrent
l’autre côté. Cette option ne peut pas être utilisée avec une relation un-à-un.
N’utilisez pas cette option sur une relation plusieurs-à-plusieurs, car il est
impossible de déterminer le côté de la recherche. Utilisez plutôt
OneWay_LeftFiltersRight ou OneWay_RightFiltersLeft.
côté de <columnName1>. Cette option ne peut pas être utilisée avec une
relation un-à-un ou plusieurs-à-un.
Valeur renvoyée
La fonction ne retourne aucune valeur. Elle définit uniquement la direction du filtrage
croisé pour la relation indiquée et pour la durée de la requête.
Notes
Dans le cas d’une relation 1:1, il n’y a pas de différence entre les directions one et
both.
CROSSFILTER peut être utilisé uniquement dans les fonctions qui utilisent un filtre
comme argument, par exemple : CALCULATE, CALCULATETABLE,
CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR,
OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER,
OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD et TOTALYTD.
Avec la fonction CROSSFILTER, la définition du filtrage croisé d’une relation n’a pas
d’importance. Le fait de définir la relation pour filtrer sur une ou deux directions
dans le modèle n’affecte pas l’utilisation de la fonction. La fonction CROSSFILTER
remplace toute définition de filtrage croisé existante.
Une erreur est retournée si l’une des colonnes nommées comme argument ne fait
pas partie d’une relation ou si les arguments appartiennent à des relations
différentes.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Dans le modèle de diagramme suivant, DimProduct et DimDate présentent une relation
de direction unique avec FactInternetSales.
Activez le filtrage croisé bidirectionnel sur la relation. Cela modifiera la façon dont
fonctionnent les filtres pour toutes les données entre ces deux tables.
Avec DAX, vous pouvez utiliser la fonction CROSSFILTER pour modifier le comportement
de la direction du filtre croisé entre deux colonnes définies par une relation. Dans ce cas,
l’expression DAX se présente comme suit :
DAX
BiDi:= CALCULATE([Distinct Count of ProductKey],
CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))
Commentaires
Cette page a-t-elle été utile ? Yes No
RELATED
Article • 20/10/2023
Syntaxe
DAX
RELATED(<column>)
Paramètres
Terme Définition
Valeur de retour
Valeur unique associée à la ligne actuelle.
Remarques
La fonction RELATED nécessite une relation entre la table actuelle et la table avec
les informations associées. Vous spécifiez la colonne contenant les données
désirées, et la fonction suit une relation plusieurs-à-un pour extraire la valeur de la
colonne spécifiée dans la table associée. En l’absence de relation, vous devez en
créer une.
Quand la fonction RELATED effectue une recherche, elle examine toutes les valeurs
dans la table spécifiée, quels que soient les filtres qui ont pu être appliqués.
La fonction RELATED ayant besoin d’un contexte de ligne, elle peut uniquement
être utilisée dans une expression de colonne calculée, où le contexte de ligne
actuel n’est pas ambigu, ou comme fonction imbriquée dans une expression qui
utilise une fonction d’analyse de table. Une fonction d’analyse de table telle que
SUMX obtient la valeur de la ligne actuelle, puis analyse une autre table à la
recherche d’instances de cette valeur.
La fonction RELATED ne peut pas être utilisée pour extraire une colonne dans une
relation limitée.
Exemple
Dans l’exemple suivant, la mesure Ventes sur Internet hors États-Unis est créée pour
produire un rapport de ventes excluant les ventes aux États-Unis. Pour créer la mesure,
la table InternetSales_USD doit être filtrée pour exclure toutes les ventes appartenant
aux États-Unis dans la table SalesTerritory. Les États-Unis, en tant que pays, apparaissent
5 fois dans la table SalesTerritory ; une fois pour chacune des régions suivantes : Nord-
Ouest, Nord-Est, Centre, Sud-Ouest et Sud-Est.
Pour filtrer les ventes sur Internet et créer la mesure, une première approche peut être
d’ajouter une expression de filtre, comme ceci :
DAX
FILTER('InternetSales_USD'
, 'InternetSales_USD'[SalesTerritoryKey]<>1 &&
'InternetSales_USD'[SalesTerritoryKey]<>2 &&
'InternetSales_USD'[SalesTerritoryKey]<>3 &&
'InternetSales_USD'[SalesTerritoryKey]<>4 &&
'InternetSales_USD'[SalesTerritoryKey]<>5)
Cependant, cette approche n’est pas intuitive, est sujette aux erreurs de frappe et peut
ne pas fonctionner si l’une des régions existantes est amenée à être divisée à l’avenir.
DAX
FILTER( 'InternetSales_USD',
RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
Cette expression utilise la fonction RELATED pour rechercher la valeur du pays dans la
table SalesTerritory, en commençant par la valeur de la colonne clé, SalesTerritoryKey,
dans la table InternetSales_USD. Le résultat de la recherche est utilisé par la fonction
Filter pour déterminer si la ligne InternetSales_USD est filtrée ou non.
7 Notes
Si l’exemple ne fonctionne pas, vous devrez peut-être créer une relation entre les
tables.
DAX
= SUMX(FILTER( 'InternetSales_USD'
, RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States"
)
,'InternetSales_USD'[SalesAmount_USD])
La table suivante affiche uniquement les totaux de chaque région pour prouver que
l’expression de filtre dans la mesure, Ventes sur Internet hors États-Unis, fonctionne
comme prévu.
La table suivante montre un exemple de résultat si vous utilisiez cette mesure dans un
visuel de table de rapport :
Total général 384 639,63 $ 16 107 890,23 $ 172 817,81 $ 16 665 347,67 $
Voir aussi
RELATEDTABLE
Fonctions de filtrage
Commentaires
Cette page a-t-elle été utile ? Yes No
RELATEDTABLE
Article • 20/10/2023
Évalue une expression de table dans un contexte modifié par les filtres spécifiés.
Syntaxe
DAX
RELATEDTABLE(<tableName>)
Paramètres
Terme Définition
tableName Nom d’une table existante, spécifié avec la syntaxe DAX standard. Il ne peut pas
s’agir d’une expression.
Valeur de retour
Table de valeurs.
Notes
La fonction RELATEDTABLE change le contexte dans lequel les données sont filtrées
et évalue l’expression dans le nouveau contexte spécifié.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant utilise la fonction RELATEDTABLE pour créer une colonne calculée
avec les ventes sur Internet dans la table Product Category :
DAX
= SUMX( RELATEDTABLE('InternetSales_USD')
, [SalesAmount_USD])
1 1 Bikes $28,318,144.65
2 2 Components
3 3 Clothing $339,772.61
4 4 Accessories $700,759.96
Voir aussi
CALCULATETABLE
Fonctions de filtrage
Commentaires
Cette page a-t-elle été utile ? Yes No
USERELATIONSHIP
Article • 20/10/2023
Spécifie la relation à utiliser dans un calcul spécifique, comme celle qui existe entre
columnName1 et columnName2.
Syntaxe
DAX
USERELATIONSHIP(<columnName1>,<columnName2>)
Paramètres
Terme Définition
columnName1 Nom complet d’une colonne existante spécifié avec la syntaxe DAX standard. Il
représente généralement le côté « plusieurs » de la relation à utiliser. Si les
arguments sont fournis dans l’ordre inverse, la fonction les permute avant de les
utiliser. Cet argument ne peut pas être une expression.
columnName2 Nom complet d’une colonne existante spécifié avec la syntaxe DAX standard. Il
représente généralement le côté « un » ou le côté de la recherche de la relation
à utiliser. Si les arguments sont fournis dans l’ordre inverse, la fonction les
permute avant de les utiliser. Cet argument ne peut pas être une expression.
Valeur de retour
La fonction ne retourne aucune valeur. Elle autorise uniquement la relation indiquée
pendant la durée du calcul.
Remarques
USERELATIONSHIP peut être utilisé uniquement dans les fonctions qui utilisent un
filtre comme argument, par exemple : CALCULATE, CALCULATETABLE,
CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR,
OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER,
OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD et TOTALYTD.
USERELATIONSHIP ne peut pas être utilisé quand la sécurité au niveau des lignes
est définie pour la table dans laquelle la mesure est incluse. Par exemple,
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey],
DimCustomer[CustomerKey])) retourne une erreur si la sécurité au niveau des lignes
Dans USERELATIONSHIP, l’état d’une relation n’a pas d’importance. Autrement dit,
que la relation soit active ou non, cela n’a pas d’effet sur l’utilisation de la fonction.
Même si la relation est inactive, elle est utilisée et remplace les autres relations
actives qui peuvent être présentes dans le modèle, mais qui ne sont pas
mentionnées dans les arguments de la fonction.
Une erreur est retournée si l’une des colonnes nommées comme argument ne fait
pas partie d’une relation ou si les arguments appartiennent à des relations
différentes.
Exemple
L’exemple suivant montre comment remplacer la relation par défaut active entre les
tables InternetSales et DateTime. La relation par défaut existe entre la colonne
OrderDate de la table InternetSales et la colonne Date de la table DateTime.
Pour calculer la somme des ventes Internet et autoriser un découpage par date
d’expédition (ShippingDate) et non par la traditionnelle date de commande (OrderDate),
créez une mesure, [InternetSales par ShippingDate], à l’aide de l’expression suivante :
DAX
= CALCULATE(SUM(InternetSales[SalesAmount]),
USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions statistiques
Article • 20/10/2023
Les fonctions statistiques calculent des valeurs liées aux distributions statistiques et à la
probabilité, telles que l’écart type et le nombre de permutations.
LINEST Utilise la méthode des moindres carrés pour calculer une ligne droite qui
correspond le mieux aux données spécifiées.
LINESTX Utilise la méthode des moindres carrés pour calculer une ligne droite qui
correspond le mieux aux données spécifiées. Les données sont le résultat
des expressions évaluées pour chaque ligne d’une table.
Fonction Description
MEDIANX Retourne le nombre médian d’une expression évaluée pour chaque ligne
d’une table.
NORM.S.DIST Retourne la distribution normale standard (avec une moyenne égale à zéro
et un écart type égal à un).
PERCENTILE.EXC Retourne le énième centile k des valeurs d’une plage, où k se trouve dans
la plage de 0 à 1, non compris.
PERCENTILE.INC Retourne le énième centile k des valeurs d’une plage, où k se trouve dans
la plage de 0 à 1, inclus.
PERCENTILEX.EXC Retourne le centile d’une expression évaluée pour chaque ligne d’une
table.
PERCENTILEX.INC Retourne le centile d’une expression évaluée pour chaque ligne d’une
table.
RANKX Retourne le classement d’un nombre dans une liste de nombres pour
chaque ligne de l’argument table.
Commentaires
Cette page a-t-elle été utile ? Yes No
BETA.DIST
Article • 20/10/2023
Retourne la distribution Bêta. La distribution Bêta est couramment utilisée pour étudier
la variation du pourcentage d’une valeur dans des échantillons. Il peut s’agir, par
exemple, de la fraction d’une journée que des gens passent à regarder la télévision.
Syntaxe
DAX
BETA.DIST(x,alpha,beta,cumulative,[A],[B])
Paramètres
Terme Définition
Valeur renvoyée
Retourne la distribution Bêta.
Notes
Si un argument n’est pas numérique, BETA.DIST retourne la valeur d’erreur
#VALUE! #NUM!.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
BETA.INV
Article • 20/10/2023
Syntaxe
DAX
BETA.INV(probability,alpha,beta,[A],[B])
Paramètres
Terme Définition
Valeur renvoyée
Retourne l’inverse de la fonction de densité de probabilité cumulative Bêta (BETA.DIST).
Notes
Si un argument n’est pas numérique, BETA.INV retourne la valeur d’erreur #NUM!.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
CHISQ.DIST
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
cumulative Valeur logique qui détermine la forme de la fonction. Si la valeur cumulative est
TRUE, la fonction CHISQ.DIST retourne la fonction de distribution cumulative. Si la
valeur est FALSE, elle retourne la fonction de probabilité de densité.
Valeur de retour
Distribution du Khi-deux.
Remarques
Si x ou deg_freedom n’est pas numérique, une erreur est retournée.
Exemple
La requête DAX suivante :
DAX
retourne :
[Value]
0.632120558828558
Commentaires
Cette page a-t-elle été utile ? Yes No
CHISQ.DIST.RT
Article • 20/10/2023
La distribution du Khi-deux est associée à un test Khi-deux. Utilisez le test Khi-deux pour
comparer les valeurs observées et les valeurs attendues. Par exemple, une
expérimentation génétique peut prévoir que la prochaine génération de plantes
présentera un certain jeu de couleurs. En comparant les résultats observés à ceux
attendus, vous pouvez déterminer si votre hypothèse initiale est valide.
Syntaxe
DAX
CHISQ.DIST.RT(<x>, <deg_freedom>)
Paramètres
Terme Définition
Valeur de retour
Probabilité unilatérale à droite de la distribution du Khi-deux.
Remarques
Si x ou deg_freedom n’est pas numérique, une erreur est retournée.
Exemple
La requête DAX suivante :
DAX
EVALUATE { CHISQ.DIST.RT(2, 5) }
retourne :
[Value]
0.84914503608461
Commentaires
Cette page a-t-elle été utile ? Yes No
CHISQ.INV
Article • 20/10/2023
Syntaxe
DAX
CHISQ.INV(probability,deg_freedom)
Paramètres
Terme Définition
Valeur de retour
Retourne l’inverse de la probabilité unilatérale à gauche de la distribution du Khi-deux.
Remarques
Si l’argument n’est pas numérique, CHISQ.INV retourne la valeur d’erreur #VALUE!.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
CHISQ.INV.RT
Article • 20/10/2023
Syntaxe
DAX
CHISQ.INV.RT(probability,deg_freedom)
Paramètres
Terme Définition
Valeur de retour
Retourne l’inverse de la probabilité unilatérale à droite de la distribution du Khi-deux.
Notes
Si un argument n’est pas numérique, CHISQ.INV.RT retourne #VALUE! #NUM!.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
COMBIN
Article • 20/10/2023
Syntaxe
DAX
COMBIN(number, number_chosen)
Paramètres
Terme Définition
Valeur de retour
Retourne le nombre de combinaisons pour un nombre d’éléments donné.
Remarques
Les arguments numériques sont tronqués en entiers.
Où
n!
Pk,n =
(n − k)!
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultats
Commentaires
Cette page a-t-elle été utile ? Yes No
COMBINA
Article • 20/10/2023
Syntaxe
DAX
COMBINA(number, number_chosen)
Paramètres
Terme Définition
number_chosen Doit être supérieur ou égal à 0. Les valeurs non entières sont tronquées.
Valeur de retour
Retourne le nombre de combinaisons (avec les répétitions) pour un nombre d’éléments
donné.
Remarques
Si la valeur d’un argument ne respecte par les contraintes correspondantes, la
fonction COMBINA retourne la valeur d’erreur #NUM! #NUM!.
Si l’un des arguments est une valeur non numérique, la fonction COMBINA
retourne la valeur d’erreur #VALUE! #NUM!.
N + M − 1
( )
N − 1
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
CONFIDENCE.NORM
Article • 20/10/2023
Syntaxe
DAX
CONFIDENCE.NORM(alpha,standard_dev,size)
Paramètres
Terme Définition
Valeur de retour
Plage de valeurs
Remarques
Si un argument n’est pas numérique, CONFIDENCE.NORM retourne la #NUM!.
Si nous supposons que la valeur alpha est égale à 0,05, nous devons calculer la
zone sous la courbe normale standard qui est égale à (1 - alpha) ou 95 pour cent.
Cette valeur est ± 1,96. L’intervalle de confiance est donc :
σ
–
x ± 1.96( )
√n
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
CONFIDENCE.T
Article • 20/10/2023
Syntaxe
DAX
CONFIDENCE.T(alpha,standard_dev,size)
Paramètres
Terme Définition
Valeur de retour
Retourne l’intervalle de confiance pour la moyenne d’une population en utilisant une
distribution T de Student.
Remarques
Si un argument n’est pas numérique, CONFIDENCE.T retourne la valeur d’erreur
#VALUE! #NUM!.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Formule Description Résultat
Commentaires
Cette page a-t-elle été utile ? Yes No
EXPON.DIST
Article • 20/10/2023
Syntaxe
DAX
EXPON.DIST(x,lambda,cumulative)
Paramètres
Terme Définition
Valeur de retour
Retourne la distribution exponentielle.
Remarques
Si x ou lambda n’est pas numérique, EXPON.DIST retourne la #NUM!.
−λx
f (x; λ) = λe
−λx
F (x; λ) = 1 − e
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
GEOMEAN
Article • 20/10/2023
Pour retourner la moyenne géométrique d’une expression évaluée pour chaque ligne
d’une table, utilisez la fonction GEOMEANX.
Syntaxe
DAX
GEOMEAN(<column>)
Paramètres
Terme Définition
colonne Colonne contenant les nombres pour lesquels la moyenne géométrique doit être
calculée.
Valeur de retour
Nombre décimal.
Remarques
Seuls les nombres de la colonne sont comptés. Les espaces, les valeurs logiques et
le texte sont ignorés.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant calcule la moyenne géométrique de la colonne Return dans la table
Investment :
DAX
= GEOMEAN( Investment[Return] )
Voir aussi
GEOMEANX, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
GEOMEANX
Article • 20/10/2023
Retourne la moyenne géométrique d’une expression évaluée pour chaque ligne d’une
table.
Pour retourner la moyenne géométrique des nombres d’une colonne, utilisez la fonction
GEOMEAN.
Syntaxe
DAX
GEOMEANX(<table>, <expression>)
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
Valeur renvoyée
Nombre décimal.
Remarques
La fonction GEOMEANX prend une table comme premier argument ou une
expression qui retourne une table. Le deuxième argument est une colonne qui
contient les nombres dont vous voulez calculer la moyenne géométrique ou une
expression qui correspond à une colonne.
Seuls les nombres de la colonne sont comptés. Les valeurs vides, les valeurs
logiques et le texte sont ignorés.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant calcule la moyenne géométrique de la colonne ReturnPct dans la
table Investment :
DAX
Voir aussi
GEOMEAN, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
LINEST
Article • 20/10/2023
Utilise la méthode des moindres carrés pour calculer une ligne droite qui correspond le mieux aux
données spécifiées, puis retourne une table décrivant la ligne. L’équation de la ligne est sous la forme : y
= Slope1*x1 + Slope2*x2 + ... + Intercept.
Syntaxe
DAX
Paramètres
Terme Définition
colonneX Colonnes des valeurs x connues. Doit avoir un type scalaire. Au moins une doit être fournie.
const (Facultatif) Valeur TRUE/FALSE constante spécifiant s’il faut forcer la constante Intercept pour qu’elle soit
égale à 0.
Si la valeur EST TRUE ou omise, la valeur Intercept est calculée normalement ; si la valeur est FALSE, la
valeur Intercept est définie sur zéro.
Valeur retournée
Table monoligne décrivant la ligne, plus des statistiques supplémentaires. Voici les colonnes disponibles :
Notes
La <colonneY> et les <colonnesX> doivent toutes appartenir à la même table.
Exemple 1
La requête DAX suivante :
DAX
EVALUATE LINEST(
'FactInternetSales'[SalesAmount],
'FactInternetSales'[TotalProductCost]
)
Pour une vente Internet donnée, ce modèle prédit le montant de la vente selon la formule suivante :
Exemple 2
La requête DAX suivante :
DAX
EVALUATE LINEST(
'DimCustomer'[TotalSalesAmount],
'DimCustomer'[YearlyIncome],
'DimCustomer'[TotalChildren],
'DimCustomer'[BirthDate]
)
Slope1
Slope2
Slope3
Intercepter
StandardErrorSlope1
StandardErrorSlope2
StandardErrorSlope3
StandardErrorIntercept
CoefficientOfDetermination
StandardError
FStatistic
DegreesOfFreedom
RegressionSumOfSquares
ResidualSumOfSquares
Pour un client donné, ce modèle prédit le total des ventes selon la formule suivante (la date de naissance
est automatiquement convertie en nombre) :
Voir aussi
LINESTX
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
LINESTX
Article • 20/10/2023
Utilise la méthode des moindres carrés pour calculer une ligne droite qui correspond le mieux aux
données spécifiées, puis retourne une table décrivant la ligne. Les données sont le résultat des
expressions évaluées pour chaque ligne d’une table. L’équation de la ligne est sous la forme : y =
Slope1*x1 + Slope2*x2 + ... + Intercept.
Syntaxe
DAX
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles les expressions seront évaluées.
expressionY Expression à évaluer pour chaque ligne de la table, afin d’obtenir les valeurs y connues. Doit
avoir un type scalaire.
expressionY Expressions à évaluer pour chaque ligne de la table, afin d’obtenir les valeurs x connues. Doit
avoir un type scalaire. Au moins une doit être fournie.
const (Facultatif) Valeur TRUE/FALSE constante spécifiant s’il faut forcer la constante Intercept pour
qu’elle soit égale à 0.
Si la valeur EST TRUE ou omise, la valeur Intercept est calculée normalement ; si la valeur est
FALSE, la valeur Intercept est définie sur zéro.
Valeur retournée
Table monoligne décrivant la ligne, plus des statistiques supplémentaires. Voici les colonnes
disponibles :
Exemple 1
La requête DAX suivante :
DAX
Pour un territoire de vente donné, ce modèle prédit le total des ventes selon la formule suivante :
DAX
Pour un client donné, ce modèle prédit le total des ventes selon la formule suivante :
Voir aussi
LINEST
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ?
Yes No
MEDIAN
Article • 20/10/2023
Pour retourner la valeur médiane d’une expression évaluée pour chaque ligne d’une
table, utilisez la fonction MEDIANX.
Syntaxe
DAX
MEDIAN(<column>)
Paramètres
Terme Définition
colonne Colonne contenant les nombres pour lesquels la valeur médiane doit être calculée.
Valeur de retour
Nombre décimal.
Remarques
Seuls les nombres de la colonne sont comptés. Les espaces sont ignorés. Les
valeurs logiques, les dates et le texte ne sont pas pris en charge.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant calcule la valeur médiane d’une colonne nommée Age dans une table
nommée Customers :
DAX
= MEDIAN( Customers[Age] )
Voir aussi
MEDIANX, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
MEDIANX
Article • 20/10/2023
Retourne le nombre médian d’une expression évaluée pour chaque ligne d’une table.
Pour retourner la valeur médiane des nombres d’une colonne, utilisez la fonction
MEDIAN.
Syntaxe
DAX
MEDIANX(<table>, <expression>)
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
Valeur renvoyée
Nombre décimal.
Remarques
La fonction MEDIANX prend une table comme premier argument ou une
expression qui retourne une table. Le deuxième argument est une colonne qui
contient les nombres dont vous voulez calculer la valeur médiane ou une
expression qui est évaluée à une colonne.
Exemple
L’exemple suivant calcule l’âge médian des clients qui vivent aux États-Unis.
DAX
Voir aussi
MEDIAN, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
NORM.DIST
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Cumulative* Valeur logique qui détermine la forme de la fonction. Si la valeur cumulative est
TRUE, la fonction NORM.DIST retourne la fonction de distribution cumulative. Si la
valeur est FALSE, elle retourne la fonction de probabilité de densité.
Valeur renvoyée
Distribution normale pour la moyenne et l’écart type spécifiés.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
EVALUATE { NORM.DIST(42, 40, 1.5, TRUE) }
retourne :
[Value]
0.908788780274132
Voir aussi
NORM.S.DIST, fonction
NORM.INV, fonction
NORM.S.INV
Commentaires
Cette page a-t-elle été utile ? Yes No
NORM.INV
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Retourne l’inverse de la distribution cumulative normale pour la moyenne et l’écart type
spécifiés.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
retourne :
[Value]
42.00000200956628780274132
Voir aussi
NORM.S.INV
NORM.S.DIST, fonction
NORM.DIST, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
NORM.S.DIST
Article • 20/10/2023
Retourne la distribution normale standard (avec une moyenne égale à zéro et un écart
type égal à un).
Syntaxe
DAX
NORM.S.DIST(Z, Cumulative)
Paramètres
Terme Définition
Cumulative La valeur cumulative est une valeur logique qui détermine la forme de la fonction. Si
la valeur cumulative est TRUE, NORM.S.DIST retourne la fonction de distribution
cumulative ; si la valeur est FALSE, il retourne la fonction de probabilité de densité.
Valeur renvoyée
Loi normale standard (a une moyenne égale à zéro et un écart type égal à un).
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
retourne :
[Value]
0,908788725604095
Voir aussi
NORM.INV, fonction
NORM.DIST, fonction
NORM.S.INV
Commentaires
Cette page a-t-elle été utile ? Yes No
NORM.S.INV
Article • 20/10/2023
Syntaxe
DAX
NORM.S.INV(Probability)
Paramètres
Terme Définition
Valeur renvoyée
Inverse de la distribution cumulative normale standard. La distribution a une moyenne
égale à zéro et un écart type égal à un.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
EVALUATE { NORM.S.INV(0.908789) }
retourne :
[Value]
1.33333467304411
Voir aussi
NORM.INV
NORM.S.DIST, fonction
NORM.DIST, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
PERCENTILE.EXC
Article • 20/10/2023
Retourne le k-ième centile des valeurs d’une plage, k figurant dans la plage 0-1, limites
exclues.
Pour retourner le centile d’une expression évaluée pour chaque ligne d’une table,
utilisez la fonction PERCENTILEX.EXC.
Syntaxe
DAX
PERCENTILE.EXC(<column>, <k>)
Paramètres
Terme Définition
Valeur de retour
K-ième centile des valeurs d’une plage, k figurant dans la plage 0-1, limites exclues.
Remarques
Si le paramètre column est vide, la valeur BLANK() est retournée.
Si k est égal à zéro ou est une valeur vide, le classement centile 1/(n+1) retourne la
plus petite valeur. Si la valeur est zéro, elle est hors limites et une erreur est
retournée.
Si k n’est pas une valeur numérique ou n’est pas compris dans la plage 0-1, une
erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
PERCENTILEX.EXC
Commentaires
Cette page a-t-elle été utile ? Yes No
PERCENTILE.INC
Article • 20/10/2023
Retourne le énième centile k des valeurs d’une plage, où k se trouve dans la plage de 0
à 1, inclus.
Pour retourner le centile d’une expression évaluée pour chaque ligne d’une table,
utilisez la fonction PERCENTILEX.INC.
Syntaxe
DAX
PERCENTILE.INC(<column>, <k>)
Paramètres
Terme Définition
Valeur de retour
Énième centile k des valeurs d’une plage, où k se trouve dans la plage de 0 à 1, inclus.
Remarques
Si le paramètre column est vide, la valeur BLANK() est retournée.
Si k est égal à zéro ou est une valeur vide, le classement centile 1/(n+1) retourne la
plus petite valeur. Si la valeur est zéro, elle est hors limites et une erreur est
retournée.
Si k n’est pas une valeur numérique ou n’est pas compris dans la plage 0-1, une
erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
PERCENTILEX.INC
Commentaires
Cette page a-t-elle été utile ? Yes No
PERCENTILEX.EXC
Article • 20/10/2023
Retourne le centile d’une expression évaluée pour chaque ligne d’une table.
Syntaxe
DAX
PERCENTILEX.EXC(<table>, <expression>, k)
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
Valeur de retour
Centile d’une expression évaluée pour chaque ligne d’une table.
Remarques
Si k est égal à zéro ou est une valeur vide, le classement centile 1/(n+1) retourne la
plus petite valeur. Si la valeur est zéro, elle est hors limites et une erreur est
retournée.
Si k n’est pas une valeur numérique ou n’est pas compris dans la plage 0-1, une
erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
PERCENTILE.EXC
Commentaires
Cette page a-t-elle été utile ? Yes No
PERCENTILEX.INC
Article • 20/10/2023
Retourne le centile d’une expression évaluée pour chaque ligne d’une table.
Syntaxe
DAX
PERCENTILEX.INC(<table>, <expression>;, k)
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
Valeur de retour
Centile d’une expression évaluée pour chaque ligne d’une table.
Remarques
Si k est égal à zéro ou est une valeur vide, le classement centile 1/(n-1) retourne la
plus petite valeur. Si la valeur est zéro, elle est hors limites et une erreur est
retournée.
Si k n’est pas numérique ou n’est pas compris dans la plage 0-1, une erreur est
retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
PERCENTILE.INC
Commentaires
Cette page a-t-elle été utile ? Yes No
PERMUT
Article • 20/10/2023
Retourne le nombre de permutations d’un nombre donné d’objets qui peuvent être
choisis parmi des objets de nombre. Une permutation est un ensemble ou un sous-
ensemble d’objets ou d’événements dont l’ordre interne est important. Il faut distinguer
les permutations des combinaisons, pour lesquelles l’ordre interne n’est pas important.
Utilisez cette fonction pour les calculs de probabilité de type loterie.
Syntaxe
DAX
PERMUT(number, number_chosen)
Paramètres
Terme Définition
number_chosen Obligatoire. Entier qui indique le nombre d’objets dans chaque permutation.
Valeur de retour
Retourne le nombre de permutations d’un nombre donné d’objets qui peuvent être
choisis parmi des objets de nombre.
Remarques
Les deux arguments sont tronqués en entiers.
n!
Pk,n =
(n − k)!
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule suivante montre les permutations possibles pour un groupe de 3 objets où
2 sont choisis :
DAX
= PERMUT(3,2)
Result,
Commentaires
Cette page a-t-elle été utile ? Yes No
POISSON.DIST
Article • 20/10/2023
Syntaxe
DAX
POISSON.DIST(x,mean,cumulative)
Paramètres
Terme Définition
Valeur de retour
Retourne la distribution de Poisson.
Remarques
Si x n’est pas un entier, il est arrondi.
−λ x
e λ
POISSON =
x!
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
RANK.EQ
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
valeur Toute expression DAX qui retourne une valeur scalaire unique dont le classement
doit être recherché. L’expression doit être évaluée une seule fois avant l’évaluation
de la fonction, et sa valeur doit être passée à la liste d’arguments.
columnName Nom d’une colonne existante par rapport à laquelle les rangs seront déterminés. Il
ne peut pas s'agir d'une expression ou d'une colonne créée à l'aide des fonctions
suivantes : ADDCOLUMNS, ROW ou SUMMARIZE.
order (Facultatif) Valeur qui spécifie comment classer le paramètre value (ordre croissant
ou décroissant) :
valeurs d’ordre
Valeur renvoyée
Nombre indiquant le rang du paramètre value parmi les nombres de columnName.
Notes
columnName ne peut pas faire référence à une colonne créée à l’aide des fonctions
ADDCOLUMNS, ROW ou SUMMARIZE.I
Si le paramètre value ne se trouve pas dans columnName ou s’il est vide, RANK.EQ
retourne une valeur vide.
Si le paramètre value contient des valeurs en double, le même rang leur est affecté.
Le rang affecté suivant correspond au rang plus le nombre de valeurs en double.
Par exemple, si cinq (5) valeurs sont classées à égalité au rang 11, la valeur suivante
sera classée au rang 16 (11 + 5).
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
L’exemple suivant crée une colonne calculée qui classe les valeurs de la colonne
SalesAmount_USD (de la table InternetSales_USD) par rapport à l’ensemble des nombres
de la même colonne.
DAX
= RANK.EQ(InternetSales_USD[SalesAmount_USD],
InternetSales_USD[SalesAmount_USD])
Exemple 2
L’exemple suivant classe un sous-ensemble de valeurs par rapport à un échantillon
donné. Supposons que vous disposiez d’une table contenant des étudiants locaux avec
leurs performances à un test national spécifique et de l’ensemble des notes obtenues à
ce test. La colonne calculée suivante vous donne le classement national de chacun des
étudiants locaux.
DAX
= RANK.EQ(Students[Test_Score], NationalScores[Test_Score])
Commentaires
Cette page a-t-elle été utile ? Yes No
RANKX
Article • 20/10/2023
Retourne le classement d’un nombre dans une liste de nombres pour chaque ligne de
l’argument table.
Syntaxe
DAX
Paramètres
table
Toute expression DAX qui retourne une table de données sur laquelle l’expression est
évaluée.
expression
Toute expression DAX qui retourne une valeur scalaire unique. L’expression est évaluée
pour chaque ligne de l’argument table de sorte que toutes les valeurs pouvant être
classées soient générées. Consultez la section Remarques pour comprendre le
comportement de la fonction quand l’expression prend une valeur vide.
value
(Facultatif) Toute expression DAX qui retourne une valeur scalaire unique dont le
classement doit être recherché. Consultez la section Remarques pour comprendre le
comportement de la fonction quand le paramètre value n’est pas trouvé dans
l’expression.
Quand le paramètre value est omis, la valeur de l’expression à la ligne actuelle est
utilisée à la place.
order
(Facultatif) Valeur qui spécifie comment classer le paramètre value (ordre croissant ou
décroissant) :
valeur Valeur Description
alternative
ties
(Facultatif) Énumération qui définit comment déterminer le classement en présence
d’égalités.
énumération Description
Ignorer Le rang qui suit une égalité correspond au rang de l’égalité plus le nombre de
valeurs incluses dans l’égalité. Par exemple, si cinq (5) valeurs sont classées à
égalité au rang 11, la valeur suivante sera classée au rang 16 (11 + 5).
Dense Le rang qui suit une égalité est le rang suivant. Par exemple, si cinq (5) valeurs
sont classées à égalité au rang 11, la valeur suivante sera classée au rang 12.
Valeur de retour
Rang du paramètre value parmi toutes les valeurs possibles de l’expression évaluées
pour toutes les lignes de nombres de la table.
Notes
Si l’expression ou le paramètre value prend une valeur vide, il est traité comme un 0
(zéro) pour toutes les expressions qui génèrent un nombre ou comme du texte
vide pour toutes les expressions de texte.
Les comparaisons liées à l’égalité (=, <>, >= et <=) entre des valeurs avec le type
de données Nombre décimal peuvent retourner des résultats inattendus lors de
l’utilisation de la fonction RANKX. Des résultats incorrects peuvent se produire, car
les valeurs avec le type de données Nombre décimal sont stockées en tant que
nombres à virgule flottante conformément à la norme IEEE 754 et présentent des
limitations inhérentes de précision. Pour éviter d’obtenir des résultats inattendus,
modifiez le type de données en Nombre décimal fixe ou effectuez un arrondi forcé
à l’aide de ROUND.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La colonne calculée suivante dans la table Products calcule le classement des ventes
Internet de chaque produit.
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
SAMPLE
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
table Toute expression DAX qui retourne une table de données à partir de
laquelle extraire les « n » lignes d’échantillon.
orderBy_expression Toute expression DAX scalaire où la valeur obtenue est évaluée pour chaque
ligne de la table.
order (Facultatif) Valeur qui spécifie comment trier les valeurs orderBy_expression,
par ordre croissant ou décroissant : 0 (zéro), trie par ordre décroissant les
valeurs order_by. 1, classe dans l’ordre croissant de order_by.
Valeur renvoyée
Une table contenant les n lignes d’échantillon de table, ou une table vide si la valeur
n_value est inférieure ou égale à 0 (zéro). Si des arguments OrderBy sont fournis,
l’exemple est stable et déterministe ; il retourne la première ligne, la dernière ligne et les
lignes uniformément réparties entre elles. Si aucun classement n’est spécifié,
l’échantillon est aléatoire, non stable et non déterministe.
Notes
Si n_value est inférieur ou égal à 0 (zéro), SAMPLE retourne une table vide.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
STDEV.S
Article • 20/10/2023
Syntaxe
DAX
STDEV.S(<ColumnName>)
Paramètres
Terme Définition
columnName Nom, généralement complet, d’une colonne existante utilisant la syntaxe DAX
standard. Il ne peut pas s’agir d’une expression.
Valeur de retour
Nombre qui représente l’écart type d’un échantillon de population.
Exceptions
Remarques
STDEV.S part du principe que la colonne fait référence à un échantillon de la
population. Si vos données représentent l’ensemble de la population, calculez
l’écart type à l’aide de STDEV.P.
√[∑(x - x̃ )2/(n-1)]
Les lignes vides sont exclues par filtrage de columnName et ne sont pas prises en
compte dans les calculs.
Une erreur est retournée si columnName contient moins de 2 lignes non vides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant illustre la formule pour une mesure qui calcule l’écart type de la
colonne SalesAmount_USD, alors que la table InternetSales_USD correspond à
l’échantillon de population.
DAX
= STDEV.S(InternetSales_USD[SalesAmount_USD])
Commentaires
Cette page a-t-elle été utile ? Yes No
STDEV.P,
Article • 20/10/2023
Syntaxe
DAX
STDEV.P(<ColumnName>)
Paramètres
Terme Définition
columnName Nom, généralement complet, d’une colonne existante utilisant la syntaxe DAX
standard. Il ne peut pas s’agir d’une expression.
Valeur de retour
Nombre représentant l’écart type de l’ensemble de la population.
Notes
STDEV.P considère que la colonne fait référence à l'ensemble du remplissage. Si
vos données représentent un échantillon de la population, calculez l’écart type à
l’aide de STDEV.S.
√[∑(x - x̃ )2/n]
Les lignes vides sont exclues par filtrage de columnName et ne sont pas prises en
compte dans les calculs.
Une erreur est retournée si columnName contient moins de 2 lignes non vides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant illustre la formule d’une mesure qui calcule l’écart type de la colonne
SalesAmount_USD alors que la table InternetSales_USD correspond à l’ensemble de la
population.
DAX
= STDEV.P(InternetSales_USD[SalesAmount_USD])
Commentaires
Cette page a-t-elle été utile ? Yes No
STDEVX.S
Article • 20/10/2023
Syntaxe
DAX
STDEVX.S(<table>, <expression>)
Paramètres
Terme Définition
tableau Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée plusieurs fois (pour chaque ligne/contexte).
expression Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée plusieurs fois (pour chaque ligne/contexte).
Valeur de retour
Nombre avec l’écart type d’un échantillon de remplissage.
Exceptions
Remarques
STDEVX.S évalue l’expression pour chaque ligne de la table et retourne l’écart type
de l’expression, à supposer que la table fasse référence à un échantillon du
remplissage. Si la table représente l’ensemble du remplissage, calculez l’écart type
à l’aide de STDEVX.P.
√[∑(x - x̃ )2/(n-1)]
où x̃ représente la valeur moyenne de x pour l’ensemble de la population et n la
taille de la population.
Les lignes vides sont exclues par filtrage de columnName et ne sont pas prises en
compte dans les calculs.
Une erreur est retournée si columnName contient moins de 2 lignes non vides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant illustre la formule d’une colonne calculée qui évalue l’écart type du
prix unitaire par produit pour un échantillon de remplissage, quand la formule est
utilisée dans la table Product.
DAX
= STDEVX.S(RELATEDTABLE(InternetSales_USD), InternetSales_USD[UnitPrice_USD]
– (InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
Commentaires
Cette page a-t-elle été utile ? Yes No
STDEVX.P,
Article • 20/10/2023
Syntaxe
DAX
STDEVX.P(<table>, <expression>)
Paramètres
Terme Définition
tableau Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée plusieurs fois (pour chaque ligne/contexte).
expression Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée plusieurs fois (pour chaque ligne/contexte).
Valeur de retour
Nombre qui représente l’écart type de l’ensemble de la population.
Remarques
STDEVX.P évalue expression pour chaque ligne de table et retourne l’écart type de
l’expression, à supposer que la table fasse référence à l’ensemble de la population.
Si les données dans table représentent un échantillon de la population, vous devez
plutôt calculer l’écart type à l’aide de STDEVX.S.
√[∑(x - x̃ )2/n]
Une erreur est retournée si columnName contient moins de 2 lignes non vides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant illustre la formule d’une colonne calculée qui calcule l’écart type du
prix unitaire par produit, quand la formule est utilisée dans la table Product.
DAX
= STDEVX.P(RELATEDTABLE(InternetSales_USD), InternetSales_USD[UnitPrice_USD]
– (InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
Commentaires
Cette page a-t-elle été utile ? Yes No
T.DIST
Article • 20/10/2023
Syntaxe
DAX
T.DIST(X,Deg_freedom,Cumulative)
Paramètres
Terme Définition
Cumulative Valeur logique qui détermine la forme de la fonction. Si la valeur cumulative est
TRUE, T.DIST retourne la fonction de distribution cumulative, si la valeur est FALSE,
il retourne la fonction de probabilité de densité.
Valeur renvoyée
Loi unilatérale à gauche de Student.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
[Value]
0.994695326367377
Voir aussi
T.DIST.2T
T.DIST.RT
T.INV
T.INV.2t
Commentaires
Cette page a-t-elle été utile ? Yes No
T.DIST.2T
Article • 20/10/2023
Syntaxe
DAX
T.DIST.2T(X,Deg_freedom)
Paramètres
Terme Définition
Valeur renvoyée
Distribution T bilatérale de Student.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
retourne :
[Value]
0.054644929975921
Voir aussi
T.DIST
T.DIST.RT
T.INV
T.INV.2t
Commentaires
Cette page a-t-elle été utile ? Yes No
T.DIST.RT
Article • 20/10/2023
Syntaxe
DAX
T.DIST.RT(X,Deg_freedom)
Paramètres
Terme Définition
Valeur renvoyée
Loi unilatérale à droite de Student.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
retourne :
[Value]
0,0273224649879605
Voir aussi
T.DIST
T.DIST.2T
T.INV
T.INV.2t
Commentaires
Cette page a-t-elle été utile ? Yes No
T.INV
Article • 20/10/2023
Syntaxe
DAX
T.INV(Probability,Deg_freedom)
Paramètres
Terme Définition
Valeur de retour
Inverse unilatéral à gauche de la distribution T de Student.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
EVALUATE { T.INV(0.75, 2) }
retourne :
[Value]
0.816496580927726
Voir aussi
T.INV.2T
T.DIST
T.DIST.2T
T.DIST.RT
Commentaires
Cette page a-t-elle été utile ? Yes No
T.INV.2T
Article • 20/10/2023
Syntaxe
DAX
T.INV.2T(Probability,Deg_freedom)
Paramètres
Terme Définition
Valeur de retour
Inverse bilatéral de la distribution T de Student.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
DAX
retourne :
[Value]
0.606533075825759
Voir aussi
T.INV
T.DIST
T.DIST.2T
T.DIST.RT
Commentaires
Cette page a-t-elle été utile ? Yes No
VAR.S
Article • 20/10/2023
Syntaxe
DAX
VAR.S(<columnName>)
Paramètres
Terme Définition
columnName Nom, généralement complet, d’une colonne existante utilisant la syntaxe DAX
standard. Il ne peut pas s’agir d’une expression.
Valeur de retour
Nombre avec la variance d’un échantillon de population.
Notes
VAR.S part du principe que la colonne fait référence à un échantillon de la
population. Si vos données représentent l’ensemble de la population, calculez la
variance à l’aide de VAR.P.
∑(x - x̃ )2/(n-1)
Les lignes vides sont exclues par filtrage de columnName et ne sont pas prises en
compte dans les calculs.
Une erreur est retournée si columnName contient moins de 2 lignes non vides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant illustre la formule d’une mesure qui calcule la variance de la colonne
SalesAmount_USD à partir de la table InternetSales_USD pour un échantillon de
population.
DAX
= VAR.S(InternetSales_USD[SalesAmount_USD])
Commentaires
Cette page a-t-elle été utile ? Yes No
VAR.P,
Article • 20/10/2023
Syntaxe
DAX
VAR.P(<columnName>)
Paramètres
Terme Définition
columnName Nom, généralement complet, d’une colonne existante utilisant la syntaxe DAX
standard. Il ne peut pas s’agir d’une expression.
Valeur de retour
Nombre avec la variance de l’ensemble de la population.
Remarques
VAR.P considère que la colonne fait référence à l'ensemble du remplissage. Si vos
données représentent un échantillon de la population, calculez la variance à l’aide
de VAR.S.
∑(x - x̃ )2/n
Les lignes vides sont exclues par filtrage de columnName et ne sont pas prises en
compte dans les calculs.
Une erreur est retournée si columnName contient moins de 2 lignes non vides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant illustre la formule d’une mesure qui estime la variance de la colonne
SalesAmount_USD à partir de la table InternetSales_USD pour l’ensemble de la
population.
DAX
= VAR.P(InternetSales_USD[SalesAmount_USD])
Commentaires
Cette page a-t-elle été utile ? Yes No
VARX.S
Article • 20/10/2023
Syntaxe
DAX
VARX.S(<table>, <expression>)
Paramètres
Terme Définition
expression Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée plusieurs fois (pour chaque ligne/contexte).
Valeur de retour
Nombre qui représente la variance d’un échantillon de population.
Notes
VARX.S évalue l’expression pour chaque ligne de la table et retourne la variance de
l’expression, à supposer que la table fasse référence à un échantillon de population.
Si la table représente la population entière, vous devez calculer la variance à l’aide
de VARX.P.
∑(x - x̃ )2/(n-1)
Les lignes vides sont exclues par filtrage de columnName et ne sont pas prises en
compte dans les calculs.
Une erreur est retournée si columnName contient moins de 2 lignes non vides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant illustre la formule d’une colonne calculée qui évalue la variance du
prix unitaire par produit pour un échantillon de population quand la formule est utilisée
dans la table Product.
DAX
= VARX.S(InternetSales_USD, InternetSales_USD[UnitPrice_USD] –
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
Commentaires
Cette page a-t-elle été utile ? Yes No
VARX.P
Article • 20/10/2023
Syntaxe
DAX
VARX.P(<table>, <expression>)
Paramètres
Terme Définition
expression Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée plusieurs fois (pour chaque ligne/contexte).
Valeur de retour
Nombre avec la variance de l’ensemble de la population.
Remarques
VARX.P évalue <expression> pour chaque ligne de <table> et retourne l’écart de
<expression> en partant de l’hypothèse que <table> fait référence à l’ensemble
de la population. Si la <table> représentent un échantillon de la population,
calculez la variance à l’aide de VARX.S.
∑(x - x̃ )2/n
Les lignes vides sont exclues par filtrage de columnName et ne sont pas prises en
compte dans les calculs.
Une erreur est retournée si columnName contient moins de 2 lignes non vides.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant illustre la formule d’une colonne calculée qui calcule la variance du
prix unitaire par produit quand la formule est utilisée dans la table Product.
DAX
= VARX.P(InternetSales_USD, InternetSales_USD[UnitPrice_USD] –
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions de manipulation de tables
Article • 20/10/2023
CROSSJOIN Retourne une table contenant le produit cartésien de toutes les lignes
de toutes les tables figurant dans les arguments.
DETAILROWS Évalue une expression de lignes de détails définie pour une mesure et
retourne les données.
DISTINCT (colonne) Retourne une table à une colonne qui contient les valeurs distinctes
de la colonne spécifiée.
DISTINCT (table) Retourne une table en supprimant les lignes en double d’une autre
table ou expression.
EXCEPT Retourne les lignes d’une table qui n’apparaissent pas dans une autre
table.
GENERATE Retourne une table avec le produit cartésien entre chaque ligne de
table1 et la table résultant de l’évaluation de table2 dans le contexte
de la ligne actuelle de table1.
GENERATEALL Retourne une table avec le produit cartésien entre chaque ligne de
table1 et la table résultant de l’évaluation de table2 dans le contexte
de la ligne actuelle de table1.
Fonction Description
GENERATESERIES Retourne une table à une seule colonne qui contient les valeurs d’une
série arithmétique.
NATURALINNERJOIN Effectue une jointure interne d’une table avec une autre table.
ROW Retourne une table à une seule ligne qui contient des valeurs qui sont
le résultat des expressions fournies à chaque colonne.
SUBSTITUTEWITHINDEX Retourne une table qui représente une semi-jointure gauche des
deux tables fournies comme arguments.
UNION Crée une table d’union (jointure) à partir d’une paire de tables.
VALUES Retourne une table à une colonne qui contient les valeurs distinctes
de la table ou colonne spécifiée.
Commentaires
Cette page a-t-elle été utile ? Yes No
ADDCOLUMNS
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
expression Toute expression DAX qui retourne une expression scalaire, évaluée pour chaque ligne de table.
Valeur renvoyée
Table avec toutes ses colonnes d’origine et celles qui ont été ajoutées.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des colonnes calculées ou
des règles de sécurité au niveau des lignes (RLS).
Exemple
L’exemple suivant retourne une version étendue de la table Product Category qui comprend les valeurs des ventes totales du canal
Revendeurs et les ventes sur Internet.
DAX
ADDCOLUMNS(ProductCategory,
, "Internet Sales", SUMX(RELATEDTABLE(InternetSales_USD), InternetSales_USD[SalesAmount_USD])
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
La table suivante présente un aperçu des données telles qu’elles seraient reçues par toute fonction attendant de recevoir une table :
Components 2 2 1120
Commentaires
Cette page a-t-elle été utile ? Yes No
ADDMISSINGITEMS
Article • 20/10/2023
Ajoute des lignes avec des valeurs vides à une table retournée par
SUMMARIZECOLUMNS.
Syntaxe
DAX
Paramètres
Terme Définition
showAll_columnName (Facultatif) Colonne pour laquelle des éléments sans données doivent
être retournés pour les mesures utilisées. Si cet argument n’est pas
spécifié, toutes les colonnes sont retournées.
Valeur renvoyée
Table avec une ou plusieurs colonnes.
Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Avec SUMMARIZECOLUMNS
Une table retournée par SUMMARIZECOLUMNS inclut uniquement les lignes contenant
des valeurs. En incorporant une expression SUMMARIZECOLUMNS dans une expression
ADDMISSINGITEMS, les lignes ne contenant aucune valeur sont également retournées.
Exemple
Sans ADDMISSINGITEMS, la requête suivante :
DAX
SUMMARIZECOLUMNS(
'Sales'[CustomerId],
"Total Qty", SUM ( Sales[TotalQty] )
)
Retourne :
CustomerId TotalQty
A 5
B 3
C 3
E 2
DAX
EVALUATE
ADDMISSINGITEMS (
'Sales'[CustomerId],
SUMMARIZECOLUMNS(
'Sales'[CustomerId],
"Total Qty", SUM ( Sales[TotalQty] )
),
'Sales'[CustomerId]
)
Retourne :
CustomerId TotalQty
A 5
CustomerId TotalQty
B 3
C 3
E 2
Commentaires
Cette page a-t-elle été utile ? Yes No
CROSSJOIN
Article • 20/10/2023
Retourne une table contenant le produit cartésien de toutes les lignes de toutes les
tables figurant dans les arguments. Les colonnes de la nouvelle table correspondent à
toutes les colonnes de toutes les tables des arguments.
Syntaxe
DAX
Paramètres
Terme Définition
Valeur renvoyée
Table contenant le produit cartésien de toutes les lignes de toutes les tables figurant
dans les arguments.
Notes
Les noms de colonnes des arguments table doivent tous être différents dans
toutes les tables, sans quoi une erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant montre les résultats de l’application de CROSSJOIN() à deux tables :
Colors et Stationery.
Couleur Modèle
Bleu Crosshatch
Police Présentation
serif embossed
sans-serif engraved
DAX
Lorsque l’expression ci-dessus est utilisée chaque fois qu’une expression de table est
attendue, les résultats de l’expression sont les suivants :
Syntaxe
DAX
CURRENTGROUP ( )
Paramètres
Aucune
Valeur renvoyée
Lignes dans l’argument de table de la fonction GROUPBY correspondant à un groupe de
valeurs des arguments groupBy_columnName.
Notes
Cette fonction s’utilise uniquement dans une expression GROUPBY.
La fonction ne prend aucun argument et est seulement prise en charge en tant que
premier argument de l’une des fonctions d’agrégation suivantes : AVERAGEX,
COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P,
SUMX, VARX.S, VARX.P.
Exemple
Consultez GROUPBY.
Commentaires
Cette page a-t-elle été utile ? Yes No
DATATABLE
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Value Argument unique utilisant la syntaxe Excel pour une constante de tableau
unidimensionnel, imbriquée pour fournir un tableau de tableaux. Cet argument
représente l’ensemble des valeurs de données qui figureront dans la table.
Par exemple,
{ {values in row1}, {values in row2}, {values in row3}, etc. }
Où {values in row1} est un ensemble d’expressions de constantes séparées par
des virgules, à savoir une combinaison de constantes, associées à des fonctions
de base comme DATE, TIME et BLANK, à un opérateur plus entre DATE et TIME et
à un opérateur moins unaire pour exprimer des valeurs négatives.
Les valeurs valides sont les suivantes : 3, -5, BLANK(), "2009-04-15 02:45:21". Les
valeurs ne peuvent pas référencer des éléments en dehors de l’expression
immédiate, ni référencer des colonnes, tables, relations ou autre élément.
Les valeurs manquantes sont traitées de la même façon que BLANK(). Par
exemple, {1,2,BLANK(),4} et {1,2,,4} sont des expressions identiques.
Valeur renvoyée
Table déclarant un ensemble inline de valeurs.
Notes
Contrairement à DATATABLE, le constructeur de table autorise les expressions
scalaires comme valeurs d’entrée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
DAX
= DataTable("Name", STRING,
"Region", STRING
,{
{" User1","East"},
{" User2","East"},
{" User3","West"},
{" User4","West"},
{" User4","East"}
}
)
Commentaires
Cette page a-t-elle été utile ? Yes No
DETAILROWS
Article • 20/10/2023
Évalue une expression de lignes de détails définie pour une mesure et retourne les
données.
Syntaxe
DAX
DETAILROWS([Measure])
Paramètres
Terme Définition
Valeur renvoyée
Table avec les données retournées par l’expression de lignes de détails. Si aucune
expression de lignes de détails n’est définie, les données pour la table contenant la
mesure sont retournées.
Commentaires
Cette page a-t-elle été utile ? Yes No
DISTINCT (colonne)
Article • 20/10/2023
Retourne une table à une colonne qui contient les valeurs distinctes de la colonne
spécifiée. En d’autres termes, les valeurs dupliquées sont supprimées et seules les
valeurs uniques sont retournées.
7 Notes
Cette fonction ne peut pas être utilisée pour retourner des valeurs dans une cellule
ou une colonne dans une feuille de calcul. Au lieu de cela, vous imbriquez la
fonction DISTINCT dans une formule pour obtenir une liste de valeurs distinctes qui
peuvent être passées à une autre fonction, puis comptées, additionnées ou utilisées
pour d’autres opérations.
Syntaxe
DAX
DISTINCT(<column>)
Paramètres
Terme Définition
colonne Colonne dont les valeurs uniques doivent être retournées. Ou il peut s’agir d’une
expression retournant une colonne.
Valeur de retour
Colonne de valeurs uniques.
Remarques
Les résultats de DISTINCT sont affectés par le contexte de filtre actuel. Par exemple,
si vous utilisez la formule de l’exemple suivant pour créer une mesure, les résultats
changent chaque fois que la table a été filtrée pour afficher uniquement une
région ou une période particulière.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Fonctions connexes
Il existe une autre version de la fonction DISTINCT, DISTINCT (table), qui retourne une
table en supprimant les lignes dupliquées d’une autre table ou expression.
La fonction VALUES est semblable à DISTINCT ; elle peut également être utilisée pour
retourner une liste de valeurs uniques et retourne généralement les mêmes résultats
que DISTINCT. Toutefois, dans certains contextes, VALUES retourne une valeur spéciale
supplémentaire. Pour plus d’informations, consultez VALUES, fonction.
Exemple
La formule suivante compte le nombre de clients uniques qui ont généré des
commandes sur Internet. La table qui suit illustre les résultats possibles quand la formule
est ajoutée à un rapport.
DAX
= COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey]))
Vous ne pouvez pas coller la liste des valeurs retournées par DISTINCT directement dans
une colonne. Passez plutôt les résultats de la fonction DISTINCT à une autre fonction qui
compte, filtre ou agrège les valeurs à l’aide de la liste. Pour rendre l’exemple aussi
simple que possible, la table de valeurs distinctes a été passée à la fonction
COUNTROWS.
Voir aussi
Fonctions de filtrage
FILTER, fonction
RELATED, fonction
VALUES, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
DISTINCT (table)
Article • 20/10/2023
Retourne une table en supprimant les lignes en double d’une autre table ou expression.
Syntaxe
DAX
DISTINCT(<table>)
Paramètres
Terme Définition
tableau Table dont les lignes uniques doivent être retournées. La table peut également être une
expression produisant une table.
Valeur renvoyée
Table contenant uniquement des lignes distinctes.
Fonctions connexes
Une autre version de la fonction DISTINCT, DISTINCT (colonne), accepte un nom de
colonne comme paramètre d’entrée.
Exemple
Cette requête :
DAX
Retourne la table :
[Value1] [Value2]
1 Un
2 B
Voir aussi
Fonctions de filtrage
DISTINCT (colonne)
FILTER, fonction
RELATED, fonction
VALUES, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
EXCEPT
Article • 20/10/2023
Retourne les lignes de la première table de l’expression qui n’apparaissent pas dans la
deuxième table.
Syntaxe
DAX
EXCEPT(<table_expression1>, <table_expression2>)
Paramètres
Terme Définition
Valeur de retour
Table qui contient les lignes d’une table moins toutes les lignes d’une autre table.
Notes
Si une ligne apparaît dans les deux tables, elle et ses doublons ne sont pas
présents dans le jeu de résultats. Si une ligne apparaît uniquement dans
table_expression1, elle et ses doublons apparaissent dans le jeu de résultats.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
States1
State
States2
State
E
State
Except(States1, States2)
State
Except(States2, States1)
State
Commentaires
Cette page a-t-elle été utile ? Yes No
FILTERS
Article • 20/10/2023
Syntaxe
DAX
FILTERS(<columnName>)
Paramètres
Terme Description
columnName Nom d’une colonne existante, spécifié avec la syntaxe DAX standard. Il ne peut
pas s’agir d’une expression.
Valeur de retour
Retourne les valeurs directement appliquées comme filtres à columnName.
Remarques
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
L’exemple suivant montre comment déterminer le nombre de filtres directs que
comporte une colonne.
DAX
= COUNTROWS(FILTERS(ResellerSales_USD[ProductKey]))
Cet exemple vous permet de savoir combien de filtres directs ont été appliqués à
ResellerSales_USD[ProductKey] dans le contexte d’évaluation de l’expression.
Commentaires
Cette page a-t-elle été utile ? Yes No
GENERATE
Article • 20/10/2023
Retourne une table avec le produit cartésien entre chaque ligne de table1 et la table
résultant de l’évaluation de table2 dans le contexte de la ligne actuelle de table1.
Syntaxe
DAX
GENERATE(<table1>, <table2>)
Paramètres
Terme Définition
Valeur de retour
Table avec le produit cartésien entre chaque ligne de table1 et table résultant de
l’évaluation de table2 dans le contexte de la ligne actuelle de table1
Remarques
Si l’évaluation de table2 pour la ligne actuelle de table1 retourne une table vide, la
table de résultats ne contient pas la ligne actuelle de table1. Cette fonction se
distingue de GENERATEALL() qui inclut la ligne actuelle de table1 dans les résultats,
et les colonnes correspondant à table2 présentent des valeurs null pour cette ligne.
Tous les noms de colonne de table1 et table2 doivent être différents. Sinon, une
erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Dans l’exemple suivant, l’utilisateur souhaite une table récapitulative des ventes par
région et par catégorie de produit pour le réseau de revendeurs, à l’image de la table
suivante :
Europe Bikes $
9,970,200.44
Europe Components $
2,214,440.19
DAX
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD),
ResellerSales_USD[SalesAmount_USD])
)
)
1. La première instruction SUMMARIZE, SUMMARIZE(SalesTerritory,
SalesTerritory[SalesTerritoryGroup]) , génère une table des groupes de secteurs,
SalesTerritory[SalesTerritoryGroup]
Amérique du Nord
Europe
Pacifique
N/A
de produit avec les ventes des revendeurs pour chaque groupe, comme ci-
dessous :
Bikes $ 63,084,675.04
Composants $ 11,205,837.96
Clothing $ 1,669,943.27
Accessories $ 534,301.99
Commentaires
Cette page a-t-elle été utile ? Yes No
GENERATEALL
Article • 20/10/2023
Retourne une table avec le produit cartésien entre chaque ligne de table1 et la table
résultant de l’évaluation de table2 dans le contexte de la ligne actuelle de table1.
Syntaxe
DAX
GENERATEALL(<table1>, <table2>)
Paramètres
Terme Définition
Valeur de retour
Table avec le produit cartésien entre chaque ligne de table1 et table résultant de
l’évaluation de table2 dans le contexte de la ligne actuelle de table1
Remarques
Si l’évaluation de table2 pour la ligne actuelle de table1 retourne une table vide,
alors la ligne actuelle de table1 sera incluse dans les résultats et les colonnes
correspondant à table2 auront des valeurs Null pour cette ligne. Ceci diffère de la
fonction GENERATE() qui n’inclut pas la ligne actuelle de table1 dans les résultats.
Tous les noms de colonne de table1 et table2 doivent être différents. Sinon, une
erreur est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Dans l’exemple suivant, l’utilisateur souhaite obtenir une table de synthèse des ventes
par région et par catégorie de produit pour le réseau de revendeurs comme la table
suivante :
Europe Bikes $
9,970,200.44
Europe Components $
2,214,440.19
N/A Accessories
N/A Bikes
N/A Clothing
N/A Components
DAX
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD),
ResellerSales_USD[SalesAmount_USD])
)
)
SalesTerritory[SalesTerritoryGroup]
Amérique du Nord
Europe
Pacifique
N/A
Bikes $ 63,084,675.04
Composants $ 11,205,837.96
Clothing $ 1,669,943.27
Accessories $ 534,301.99
Commentaires
Cette page a-t-elle été utile ? Yes No
GENERATESERIES
Article • 20/10/2023
Retourne une table à une seule colonne contenant les valeurs d’une série arithmétique,
autrement dit une série dans laquelle chaque valeur diffère de la précédente par une
quantité constante. Le nom de la colonne retournée est Value.
Syntaxe
DAX
Paramètres
Terme Définition
incrementValue (Facultatif) Valeur d’incrément de la séquence. Quand elle est omise, la valeur
par défaut est 1.
Valeur renvoyée
Table à une seule colonne contenant les valeurs d’une série arithmétique. Le nom de la
colonne est Value.
Notes
Quand endValue est inférieur à startValue, une table vide est retournée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple 1
La requête DAX suivante :
DAX
EVALUATE GENERATESERIES(1, 5)
[Value]
Exemple 2
La requête DAX suivante :
DAX
[Value]
1.2
1.6
2.4
Exemple 3
La requête DAX suivante :
DAX
[Value]
10
10.5
11
11.5
12
Commentaires
Cette page a-t-elle été utile ? Yes No
GROUPBY
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
groupBy_columnName Nom d’une colonne existante dans la table (ou dans une table associée)
selon lequel les données doivent être regroupées. Ce paramètre ne peut
pas être une expression.
name Nom donné à une nouvelle colonne qui est ajoutée à la liste des
colonnes GroupBy, placé entre guillemets doubles.
Valeur renvoyée
Table avec les colonnes sélectionnées pour les arguments groupBy_columnName et les
colonnes d’extension désignées par les arguments name.
Notes
La fonction GROUPBY effectue les opérations suivantes :
1. Elle commence avec la table spécifiée (et toutes les tables associées dans la
direction « à un »).
2. Elle crée un regroupement avec toutes les colonnes GroupBy (qui doivent
exister dans la table depuis l’étape 1).
4. Pour chaque groupe, elle évalue les colonnes d’extension qui sont ajoutées.
Contrairement à la fonction SUMMARIZE, aucune fonction CALCULATE
implicite n’est exécutée et le groupe n’est pas inclus dans le contexte de filtre.
Chaque colonne pour laquelle vous définissez un nom doit avoir une expression
correspondante ; dans le cas contraire, une erreur est retournée. Le premier
argument, name, définit le nom de la colonne dans les résultats. Le deuxième
argument, expression, définit le calcul effectué pour obtenir la valeur de chaque
ligne de cette colonne.
GROUPBY est principalement utilisé pour effectuer des agrégations sur les résultats
intermédiaires d’expressions de table DAX. Pour réaliser efficacement des
agrégations sur des tables physiques dans le modèle, utilisez la fonction
SUMMARIZECOLUMNS ou SUMMARIZE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Avec CURRENTGROUP
CURRENTGROUP peut uniquement être utilisé dans une expression qui définit une
colonne d’extension dans la fonction GROUPBY. En effet, CURRENTGROUP retourne un
ensemble de lignes à partir de l’argument table de GROUPBY, qui appartiennent à la
ligne actuelle du résultat de GROUPBY. La fonction CURRENTGROUP ne prend pas
d’arguments et elle est seulement prise en charge en tant que premier argument de
l’une des fonctions d’agrégation suivantes : AVERAGEX, COUNTAX, COUNTX,
GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.
Exemple
L’exemple suivant calcule d’abord les ventes totales regroupées par pays et catégorie de
produit sur les tables physiques à l’aide de la fonction SUMMARIZECOLUMNS. Il utilise
ensuite la fonction GROUPBY pour analyser le résultat intermédiaire de la première
étape et connaître ainsi le nombre maximal de ventes dans chaque pays pour les
différentes catégories de produits.
DAX
DEFINE
VAR SalesByCountryAndCategory =
SUMMARIZECOLUMNS(
Geography[Country],
Product[Category],
"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty])
)
EVALUATE
GROUPBY(
SalesByCountryAndCategory,
Geography[Country],
"Max Sales", MAXX(CURRENTGROUP(), [Total Sales])
)
Voir aussi
SUMMARIZE, fonction
SUMMARIZECOLUMNS
Commentaires
Cette page a-t-elle été utile ? Yes No
IGNORE
Article • 20/10/2023
Syntaxe
DAX
IGNORE(<expression>)
Avec SUMMARIZECOLUMNS,
DAX
Paramètres
Terme Définition
expression Toute expression DAX qui retourne une seule valeur (et non une table).
Valeur renvoyée
La fonction ne retourne pas de valeur.
Notes
La syntaxe IGNORE peut uniquement être utilisée en tant qu’argument d’expression
pour SUMMARIZECOLUMNS.
Exemple
Consultez SUMMARIZECOLUMNS.
Commentaires
Cette page a-t-elle été utile ? Yes No
INTERSECT
Article • 20/10/2023
Syntaxe
DAX
INTERSECT(<table_expression1>, <table_expression2>)
Paramètres
Terme Définition
Valeur de retour
Table contenant toutes les lignes de table_expression1 qui se trouvent également dans
table_expression2
Exceptions
Remarques
Intersect n’est pas une fonction commutative. En général, Intersect(T1, T2) ne
retourne pas le même jeu de résultats qu’Intersect(T2, T1).
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
States1
State
States2
State
D
State
Intersect(States1, States2)
State
Intersect(States2, States1)
State
Commentaires
Cette page a-t-elle été utile ? Yes No
NATURALINNERJOIN
Article • 20/10/2023
Effectue une jointure interne d’une table avec une autre table.
Syntaxe
DAX
NATURALINNERJOIN(<LeftTable>, <RightTable>)
Paramètres
Terme Définition
Valeur renvoyée
Table comprenant uniquement les lignes pour lesquelles les valeurs des colonnes
communes spécifiées sont présentes dans les deux tables. La table retournée a les
colonnes communes de la table de gauche et les autres colonnes des deux tables.
Notes
Les tables sont jointes sur des colonnes communes (par nom) dans les deux tables.
Si les deux tables n’ont pas de noms de colonnes communs, une erreur est
retournée.
Une sémantique de comparaison stricte est utilisée lors de la jointure. Il n’y a pas
de forçage de type. Par exemple, 1 n’est pas égal à 1.0.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
NATURALLEFTOUTERJOIN
Commentaires
Cette page a-t-elle été utile ? Yes No
NATURALLEFTOUTERJOIN
Article • 20/10/2023
Effectue une jointure de LeftTable avec RightTable en utilisant la sémantique Left Outer
Join.
Syntaxe
DAX
NATURALLEFTOUTERJOIN(<LeftTable>, <RightTable>)
Paramètres
Terme Définition
Valeur renvoyée
Une table qui inclut uniquement les lignes de RightTable pour lesquelles les valeurs dans
les colonnes communes spécifiées sont également présentes dans LeftTable. La table
retournée contient les colonnes communes de la table de gauche et les autres colonnes
des deux tables.
Notes
Les tables sont jointes sur des colonnes communes (par nom) dans les deux tables.
Si les deux tables n’ont pas de noms de colonnes communs, une erreur est
retournée.
Une sémantique de comparaison stricte est utilisée lors de la jointure. Il n’y a pas
de forçage de type. Par exemple, 1 n’est pas égal à 1.0.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
NATURALINNERJOIN
Commentaires
Cette page a-t-elle été utile ? Yes No
ROLLUP
Article • 20/10/2023
Syntaxe
DAX
Avec SUMMARIZE,
DAX
Paramètres
Terme Définition
Valeur renvoyée
Cette fonction ne retourne pas de valeur. Elle spécifie uniquement l’ensemble de
colonnes dont les sous-totaux doivent être calculés.
Notes
Cette fonction s’utilise uniquement dans une expression SUMMARIZE.
Exemple
Consultez SUMMARIZE.
Commentaires
Cette page a-t-elle été utile ? Yes No
ROLLUPADDISSUBTOTAL
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
groupBy_columnName Nom d’une colonne existante utilisé pour créer des groupes de synthèse
en fonction des valeurs qui s’y trouvent. Il ne peut pas s’agir d’une
expression.
Valeur renvoyée
La fonction ne retourne pas de valeur.
Notes
None
Exemple
Consultez SUMMARIZECOLUMNS.
Commentaires
Cette page a-t-elle été utile ? Yes No
ROLLUPGROUP
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur renvoyée
Cette fonction ne retourne pas de valeur. Elle marque un ensemble de colonnes à traiter
comme groupe unique pendant le calcul des sous-totaux par ROLLUP ou
ROLLUPADDISSUBTOTAL.
Notes
La fonction ROLLUPGROUP s’utilise uniquement en tant qu’argument
groupBy_columnName pour ROLLUP, ROLLUPADDISSUBTOTAL ou ROLLUPISSUBTOTAL.
Exemple
Consultez SUMMARIZE et SUMMARIZECOLUMNS.
Commentaires
Cette page a-t-elle été utile ? Yes No
ROLLUPISSUBTOTAL
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
groupBy_columnName Nom d’une colonne existante utilisé pour créer des groupes de
synthèse en fonction des valeurs qui s’y trouvent. Il ne peut pas s’agir
d’une expression.
Valeur renvoyée
Aucune
Notes
Cette fonction s’utilise uniquement dans une expression ADDMISSINGITEMS.
Commentaires
Cette page a-t-elle été utile ? Yes No
ROW, fonction
Article • 20/10/2023
Retourne une table à une seule ligne qui contient des valeurs qui sont le résultat des
expressions fournies à chaque colonne.
Syntaxe
DAX
Paramètres
Terme Définition
expression Toute expression DAX qui retourne une valeur scalaire unique à remplir. name.
Valeur renvoyée
Table à une seule ligne.
Notes
Les arguments doivent toujours se présenter par paires name et expression.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant retourne une table à une ligne avec le total des ventes pour Internet
et les réseaux de revendeurs.
DAX
ROW("Internet Total Sales (USD)", SUM(InternetSales_USD[SalesAmount_USD]),
"Resellers Total Sales (USD)",
SUM(ResellerSales_USD[SalesAmount_USD]))
Commentaires
Cette page a-t-elle été utile ? Yes No
SELECTCOLUMNS
Article • 20/10/2023
Retourne une table avec les colonnes sélectionnées de la table et les nouvelles colonnes
spécifiées par les expressions DAX.
Syntaxe
DAX
Paramètres
Terme Définition
Expression Toute expression qui retourne une valeur scalaire comme une référence de
colonne, un entier ou une valeur de chaîne.
Valeur de retour
Table avec le même nombre de lignes que la table spécifiée comme premier argument.
La table renvoyée comporte une colonne pour chaque paire d'arguments <Name>,
<Expression> et chaque expression est évaluée dans le contexte d'une ligne à partir de
l'argument <Table> spécifié.
Remarques
SELECTCOLUMNS a la même signature que ADDCOLUMNS et a le même comportement
sauf qu'au lieu de commencer par la <Table> spécifiée, SELECTCOLUMNS commence
par une table vide avant d'ajouter des colonnes.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau
des lignes (RLS).
Exemple
Pour la table suivante nommée Client :
IND JK 20 800
IND MH 25 1 000
IND WB 10 900
États-Unis CA 5 500
États-Unis WA 10 900
DAX
Retourne :
Pays, État
IND, JK
IND, MH
IND, WB
USA, CA
USA, WA
Commentaires
Cette page a-t-elle été utile ? Yes No
SUBSTITUTEWITHINDEX
Article • 20/10/2023
Retourne une table qui représente une semi-jointure gauche des deux tables fournies
comme arguments. La semi-jointure est effectuée à l’aide de colonnes communes,
déterminées par les noms des colonnes communes et le type de données commun. Les
colonnes qui sont jointes sont remplacées par une seule colonne dans la table retournée
qui est de type entier et contient un index. L’index est une référence dans la table de
jointure droite basé sur un ordre de tri spécifié.
Les colonnes de la table de droite/seconde fournie qui n’existent pas dans la table de
gauche/première fournie ne sont pas incluses dans la table retournée et ne sont pas
utilisées pour la jointure.
Syntaxe
DAX
Paramètres
Terme Définition
tableau Table à filtrer en effectuant une semi-jointure gauche avec la table spécifiée
comme troisième argument (indexColumnsTable). Il s’agit de la table sur le
côté gauche de la semi-jointure gauche. Lla table retournée contient les
mêmes colonnes que cette table, sauf que toutes les colonnes communes
aux deux tables seront remplacées par une colonne d’index unique dans la
table retournée.
indexColumnName Chaîne qui spécifie le nom de la colonne d’index qui remplace toutes les
colonnes communes dans les deux tables fournies comme arguments à
cette fonction.
noms de colonne) seront remplacées par une colonne d’index unique dans
la table retournée par cette fonction.
orderBy_expression Toute expression DAX où la valeur de résultat est utilisée pour spécifier
l’ordre de tri souhaité de la table indexColumnsTable afin de générer des
valeurs d’index correctes. L’ordre de tri spécifié pour la table
indexColumnsTable définit l’index de chaque ligne de la table et cet index
est utilisé dans la table retournée pour représenter des combinaisons de
valeurs dans indexColumnsTable, telles qu’elles apparaissent dans la table
fournie comme premier argument de cette fonction.
order (Facultatif) Valeur qui spécifie comment trier les valeurs orderBy_expression,
par ordre croissant ou décroissant :
Valeur : ASC. Valeur alternative : 1/TRUE. Trie par ordre croissant les valeurs
orderBy_expression.
Valeur renvoyée
Une table qui contient uniquement ces valeurs présentes dans la table
indexColumnsTable et qui a une colonne d’index au lieu de toutes les colonnes
présentes (par nom) dans la table indexColumnsTable.
Notes
Cette fonction ne garantit pas l’ordre de tri des résultats.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Commentaires
Cette page a-t-elle été utile ? Yes No
SUMMARIZE
Article • 20/10/2023
Retourne une table récapitulative des totaux demandés sur un ensemble de groupes.
Syntaxe
DAX
Paramètres
Terme Définition
groupBy_ColumnName (Facultatif) Nom qualifié d’une colonne existante utilisé pour créer des groupes de synthèse en fonction des valeurs qui
s’y trouvent. Ce paramètre ne peut pas être une expression.
name Nom donné à une colonne de totaux ou de synthèse, placé entre guillemets doubles.
expression Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit être évaluée plusieurs fois (pour
chaque ligne/contexte).
Valeur de retour
Table avec les colonnes sélectionnées pour les arguments groupBy_columnName et les colonnes synthétisées désignées par les
arguments name.
Remarques
Chaque colonne pour laquelle vous définissez un nom doit avoir une expression correspondante ; dans le cas contraire, une
erreur est retournée. Le premier argument, name, définit le nom de la colonne dans les résultats. Le deuxième argument,
expression, définit le calcul effectué pour obtenir la valeur de chaque ligne de cette colonne.
groupBy_columnName doit être dans la table ou dans une table associée à la table.
La fonction regroupe un ensemble sélectionné de lignes en un ensemble de lignes de synthèse selon les valeurs d’une ou
plusieurs colonnes groupBy_columnName. Une ligne est retournée pour chaque groupe.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des colonnes
calculées ou des règles de sécurité au niveau des lignes (RLS).
Exemple
L’exemple suivant retourne un résumé des ventes du revendeur, regroupées autour de l’année civile et du nom de la catégorie de
produits. Cette table de résultats vous permet d’effectuer une analyse sur les ventes du revendeur par année et par catégorie de
produits.
DAX
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
La table suivante présente un aperçu des données telles qu’elles seraient reçues par toute fonction attendant de recevoir une
table :
Avec ROLLUP
L’ajout de la syntaxe ROLLUP modifie le comportement de la fonction SUMMARIZE en ajoutant des lignes de cumul au résultat sur
les colonnes groupBy_columnName. ROLLUP s’utilise uniquement dans une expression SUMMARIZE.
Exemple
L’exemple suivant ajoute des lignes de cumul aux colonnes Group-By de l’appel de fonction SUMMARIZE :
DAX
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
76494758.25 527507.9262
Avec ROLLUPGROUP
Toutefois, l’ajout de ROLLUPGROUP dans une syntaxe ROLLUP peut être utilisé pour empêcher les sous-totaux partiels dans les
lignes de cumul. ROLLUPGROUP s’utilise uniquement dans une expression ROLLUP, ROLLUPADDISSUBTOTAL ou
ROLLUPISSUBTOTAL.
Exemple
L’exemple suivant affiche uniquement le total général de toutes les années et de toutes les catégories sans le sous-total de chaque
année avec toutes les catégories :
DAX
SUMMARIZE(ResellerSales_USD
, ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
76494758.25 527507.9262
Avec ISSUBTOTAL
ISSUBTOTAL vous permet de créer une autre colonne dans l’expression SUMMARIZE qui retourne True si la ligne contient des
valeurs de sous-total pour la colonne fournie comme argument de ISSUBTOTAL ; sinon, retourne false. ISSUBTOTAL s’utilise
uniquement dans une expression SUMMARIZE.
Exemple
L’exemple suivant génère une colonne ISSUBTOTAL pour chacune des colonnes ROLLUP dans l’appel de fonction SUMMARIZE
donné :
DAX
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
, "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])
, "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])
)
[Is Sub Total for [Is Sub Total for DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales [Discount
DateTimeCalendarYear] ProductCategoryName] Amount Amount
(USD)] (USD)]
FALSE FAUX
false VRAI
Voir aussi
SUMMARIZECOLUMNS
Commentaires
Cette page a-t-elle été utile ? Yes No
SUMMARIZECOLUMNS
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
filterTable Expression de table qui est ajoutée au contexte de filtre de toutes les
colonnes spécifiées en tant qu’arguments groupBy_columnName. Les
valeurs présentes dans la table de filtres sont utilisées pour filtrer avant
que la jointure croisée/l’existence automatique ne soit effectuée.
expression Toute expression DAX qui retourne une seule valeur (et non une table).
Valeur de retour
Table qui contient des combinaisons de valeurs des colonnes fournies en fonction du
regroupement spécifié. Seules les lignes pour lesquelles au moins une des expressions
fournies retourne une valeur non vide sont incluses dans la table retournée. Si toutes les
expressions ont la valeur BLANK/NULL pour une ligne, cette ligne n’est pas incluse dans
la table retournée.
Remarques
Cette fonction ne garantit aucun ordre de tri des résultats.
Une colonne ne peut pas être spécifiée plusieurs fois dans le paramètre
groupBy_columnName. Par exemple, la formule suivante n’est pas valide.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Contexte de filtre
Considérez la requête suivante :
DAX
SUMMARIZECOLUMNS (
'Sales Territory'[Category],
FILTER('Customer', 'Customer' [First Name] = "Alicia")
)
Dans cette requête, sans mesure, les colonnes groupBy ne contiennent aucune colonne
de l’expression FILTER (par exemple, la table Customer). Le filtre n’est pas appliqué aux
colonnes groupBy. Les tables Sales Territory et Customer peuvent être indirectement
liées par le biais de la table de faits Reseller Sales. Étant donné qu’elles ne sont pas
directement liées, l’expression de filtre ne présente aucune opération et les colonnes
groupBy ne sont pas affectées.
DAX
SUMMARIZECOLUMNS (
'Sales Territory'[Category], 'Customer' [Education],
FILTER('Customer', 'Customer'[First Name] = "Alicia")
)
Les colonnes groupBy contiennent une colonne qui est affectée par le filtre et ce filtre
est appliqué aux résultats des colonnes groupBy.
Avec IGNORE
La syntaxe IGNORE peut être utilisée pour modifier le comportement de la fonction
SUMMARIZECOLUMNS en omettant des expressions spécifiques de l’évaluation
BLANK/NULL. Les lignes pour lesquelles toutes les expressions qui n’utilisent pas
IGNORE retournent BLANK/NULL sont exclues, indépendamment du fait que les
expressions qui utilisent IGNORE sont ou non évaluées à la valeur BLANK/NULL. IGNORE
peut uniquement être utilisé dans une expression SUMMARIZECOLUMNS.
Exemple
DAX
SUMMARIZECOLUMNS(
Sales[CustomerId], "Total Qty",
IGNORE( SUM( Sales[Qty] ) ),
"BlankIfTotalQtyIsNot3", IF( SUM( Sales[Qty] )=3, 3 )
)
Cela cumule la colonne Sales[CustomerId], ce qui crée un sous-total pour tous les clients
du regroupement donné. Sans IGNORE, le résultat est le suivant :
A 5
B 3 3
C 3 3
Avec IGNORE,
B 3 3
C 3 3
DAX
SUMMARIZECOLUMNS(
Sales[CustomerId], "Blank",
IGNORE( Blank() ), "BlankIfTotalQtyIsNot5",
IGNORE( IF( SUM( Sales[Qty] )=5, 5 ) )
)
Même si les deux expressions retournent des valeurs vides pour certaines lignes, elles
sont incluses, car il n’y a pas d’expressions non ignorées qui retournent des valeurs
vides.
A 5
Avec NONVISUAL
La fonction NONVISUAL marque un filtre de valeur dans la fonction
SUMMARIZECOLUMNS comme n’affectant pas les valeurs de mesure, mais uniquement
comme s’appliquant à des colonnes groupBy. NONVISUAL peut uniquement être utilisé
dans une expression SUMMARIZECOLUMNS.
Exemple
DAX
DEFINE
MEASURE FactInternetSales[Sales] = SUM(FactInternetSales[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
DimDate[CalendarYear],
NONVISUAL(TREATAS({2007, 2008}, DimDate[CalendarYear])),
"Sales", [Sales],
"Visual Total Sales", CALCULATE([Sales],
ALLSELECTED(DimDate[CalendarYear]))
)
ORDER BY [CalendarYear]
Retourne le résultat où [Visual Total Sales] correspond au total sur toutes les années :
DEFINE
MEASURE FactInternetSales[Sales] = SUM(FactInternetSales[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
DimDate[CalendarYear],
TREATAS({2007, 2008}, DimDate[CalendarYear]),
"Sales", [Sales],
"Visual Total Sales", CALCULATE([Sales],
ALLSELECTED(DimDate[CalendarYear]))
)
ORDER BY [CalendarYear]
Retourne le résultat où [Visual Total Sales] correspond au total sur les deux années
sélectionnées :
Avec ROLLUPADDISSUBTOTAL
L’ajout de la syntaxe ROLLUPADDISSUBTOTAL modifie le comportement de la fonction
SUMMARIZECOLUMNS en ajoutant des lignes de cumul/sous-total au résultat basé sur
les colonnes groupBy_columnName. ROLLUPADDISSUBTOTAL peut uniquement être
utilisé dans une expression SUMMARIZECOLUMNS.
DEFINE
VAR vCategoryFilter =
TREATAS({"Accessories", "Clothing"}, Product[Category])
VAR vSubcategoryFilter =
TREATAS({"Bike Racks", "Mountain Bikes"}, Product[Subcategory])
EVALUATE
SUMMARIZECOLUMNS
(
ROLLUPADDISSUBTOTAL
(
Product[Category], "IsCategorySubtotal", vCategoryFilter,
Product[Subcategory], "IsSubcategorySubtotal", vSubcategoryFilter
),
"Total Qty", SUM(Sales[Qty])
)
ORDER BY
[IsCategorySubtotal] DESC, [Category],
[IsSubcategorySubtotal] DESC, [Subcategory]
SUMMARIZECOUMNS (
Regions[State], ROLLUPADDISSUBTOTAL ( Sales[CustomerId],
"IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL ( Sales[Date], "IsDateSubtotal"), "Total Qty", SUM(
Sales[Qty] )
)
Les ventes sont regroupées par région, par client, par date, avec des sous-totaux pour 1.
Ventes par région, par date 2. Ventes par région, par client 3. Regroupement sur le client
et la date qui aboutit aux ventes par région.
A FAUX WA 5 7/10/2014
B FAUX WA 1 7/10/2014
B FAUX WA 2 7/11/2014
C FAUX OR 2 7/10/2014
CustomerID IsCustomerSubtotal State Total Qty Date IsDateSubtotal
C FAUX OR 1 7/11/2014
TRUE WA 6 7/10/2014
TRUE WA 2 7/11/2014
TRUE OR 2 7/10/2014
TRUE OR 1 7/11/2014
A FAUX WA 5 TRUE
B FAUX WA 3 TRUE
C FAUX OR 3 VRAI
VRAI WA 8 VRAI
VRAI OR 3 TRUE
Avec ROLLUPGROUP
Comme avec la fonction SUMMARIZE, la fonction ROLLUPGROUP peut être utilisée avec
ROLLUPADDISSUBTOTAL pour spécifier les groupes/précisions de synthèse (sous-totaux)
à inclure, et réduire ainsi le nombre de lignes de sous-total retournées. ROLLUPGROUP
peut uniquement être utilisé dans une expression SUMMARIZECOLUMNS ou
SUMMARIZE.
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL( Sales[CustomerId], "IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL(ROLLUPGROUP(Regions[City], Regions[State]),
"IsCityStateSubtotal"),"Total Qty", SUM( Sales[Qty] )
)
Toujours avec un regroupement par ville et région, mais calculés ensemble pour le sous-
total ; retourne la table suivante
A false 5 FAUX
B FAUX 3 TRUE
C FAUX 3 VRAI
TRUE 11 TRUE
Voir aussi
SUMMARIZE
Commentaires
Cette page a-t-elle été utile ? Yes No
Constructeur de table
Article • 20/10/2023
Syntaxe
DAX
{ <scalarExpr1>, <scalarExpr2>, … }
{ ( <scalarExpr1>, <scalarExpr2>, … ), ( <scalarExpr1>, <scalarExpr2>, … ),
… }
Paramètres
Terme Définition
Valeur de retour
Table d’une ou plusieurs colonnes. Lorsqu’il n’y a qu’une seule colonne, le nom de la
colonne est Value. Quand il y a N colonnes où N > 1, les noms des colonnes de gauche
à droite sont Value1, Value2, ..., ValueN.
Remarques
La première syntaxe retourne une table d’une seule colonne. La seconde syntaxe
retourne une table d’une ou plusieurs colonnes.
Le nombre d’expressions scalaires doit être le même pour toutes les lignes.
Lorsque les types de données des valeurs d’une colonne sont différents dans des
lignes différentes, toutes les valeurs sont converties en un type de données
commun.
Exemple 1
Les requêtes DAX suivantes :
DAX
EVALUATE { 1, 2, 3 }
et
DAX
[Value]
Exemple 2
La requête DAX suivante :
DAX
EVALUATE
{
(1.5, DATE(2017, 1, 1), CURRENCY(199.99), "A"),
(2.5, DATE(2017, 1, 2), CURRENCY(249.99), "B"),
(3.5, DATE(2017, 1, 3), CURRENCY(299.99), "C")
}
Retourne :
Exemple 3
La requête DAX suivante :
DAX
[Value]
1/1/2017
VRAI
Commentaires
Cette page a-t-elle été utile ? Yes No
TOPN
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Paramètre Définition
N_Value Nombre de lignes à retourner. Toute expression DAX qui retourne une
valeur scalaire où l’expression doit être évaluée plusieurs fois (pour
chaque ligne/contexte). Consultez Remarques pour mieux comprendre
quand le nombre de lignes retournées pourrait être supérieur à n_value.
Table de charge de Toute expression DAX qui retourne une table de données à partir de
travail laquelle extraire les « n » premières lignes. Consultez Remarques pour
mieux comprendre quand une table vide est retournée.
OrderBy_Expression (Facultatif) Toute expression DAX où la valeur obtenue est utilisée pour
trier la table et évaluée pour chaque ligne de la table.
JSON (Facultatif) Une valeur qui spécifie comment trier les valeurs
OrderBy_Expression :
Valeur retournée
Une table avec les N premières lignes de Table ou une table vide si N_Value est 0 (zéro)
ou moins. Les lignes ne sont pas triées dans un ordre particulier.
Notes
S'il y a une égalité, dans les valeurs Order_By, à la N-ième ligne de la table, toutes
les lignes liées sont renvoyées. Ensuite, lorsqu’il y a des liens à la N-ième ligne, la
fonction peut retourner plus de n lignes.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule de mesure suivante renvoie les 10 produits les plus vendus par montant des
ventes.
DAX
= SUMX(
TOPN(
10,
SUMMARIZE(
InternetSales,
InternetSales[ProductKey],
"TotalSales", SUM(InternetSales[SalesAmount])
),
[TotalSales], DESC
),
[TotalSales]
)
Commentaires
Cette page a-t-elle été utile ? Yes No
TREATAS
Article • 20/10/2023
Applique le résultat d’une expression de table comme filtres aux colonnes d’une table
non associée.
Syntaxe
DAX
Paramètres
Terme Définition
colonne Une ou plusieurs colonnes existantes. Il ne peut pas s’agir d’une expression.
Valeur de retour
Table contenant toutes les lignes de la ou des colonnes qui se trouvent également dans
table_expression.
Remarques
Le nombre de colonnes spécifié doit correspondre au nombre de colonnes dans
l’expression de table. Les colonnes doivent aussi être dans le même ordre.
Si une valeur retournée dans l’expression de table n’existe pas dans la colonne, elle
est ignorée. Par exemple, TREATAS({"Red", "Green", "Yellow"}, DimProduct[Color])
définit un filtre sur la colonne DimProduct[Color] avec trois valeurs : "Red", "Green"
et "Yellow". Si "Yellow" n’existe pas dans DimProduct[Color], les valeurs de filtre
effectives sont "Red" et "Green".
Cette fonction est idéale quand il n’existe pas de relation entre les tables. Si vous
avez plusieurs relations entre les tables impliquées, utilisez USERELATIONSHIP à la
place.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Dans l’exemple suivant, le modèle contient deux tables de produits non liées. Si un
utilisateur applique un filtre à DimProduct1[ProductCategory] en sélectionnant Bikes,
Seats et Tires, le même filtre (Bikes, Seats et Tires) est appliqué à
DimProduct2[ProductCategory].
DAX
CALCULATE(
SUM(Sales[Amount]),
TREATAS(VALUES(DimProduct1[ProductCategory]), DimProduct2[ProductCategory])
)
Voir aussi
INTERSECT
FILTER
USERELATIONSHIP
Commentaires
Cette page a-t-elle été utile ? Yes No
UNION
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Table qui contient toutes les lignes de chacune des deux expressions de table.
Remarques
Les deux tables doivent avoir le même nombre de colonnes.
Les colonnes sont combinées par position dans leur table respective.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’expression suivante crée une union en combinant la table USAInventory et la table
INDInventory dans une table unique :
DAX
UNION(UsaInventory, IndInventory)
USAInventory
USA CA 5 500
États-Unis WA 10 900
INDInventory
IND JK 20 800
IND MH 25 1 000
IND WB 10 900
Table retournée
USA CA 5 500
États-Unis WA 10 900
IND JK 20 800
Pays/région State Count Total
IND MH 25 1 000
IND WB 10 900
Commentaires
Cette page a-t-elle été utile ? Yes No
VALUES
Article • 20/10/2023
Quand le paramètre d’entrée est un nom de colonne, retourne une table à une colonne
qui contient les valeurs distinctes de la colonne spécifiée. Les valeurs dupliquées sont
supprimées et seules les valeurs uniques sont retournées. Une valeur vide peut être
ajoutée. Quand le paramètre d’entrée est un nom de table, retourne les lignes de la
table spécifiée. Les lignes en double sont conservées. Une ligne vide peut être ajoutée.
7 Notes
Cette fonction ne peut pas être utilisée pour retourner des valeurs dans une cellule
ou une colonne d’une feuille de calcul. Au lieu de cela, vous l’utilisez comme
fonction intermédiaire, imbriquée dans une formule, pour obtenir une liste de
valeurs distinctes qui peuvent être comptées ou utilisées pour filtrer ou additionner
d’autres valeurs.
Syntaxe
DAX
VALUES(<TableNameOrColumnName>)
Paramètres
Terme Définition
TableName ou Colonne à partir de laquelle des valeurs uniques doivent être retournées,
ColumnName ou table à partir de laquelle des lignes doivent être retournées.
Valeur de retour
Quand le paramètre d’entrée est un nom de colonne, une table à une seule colonne est
retournée. Quand le paramètre d’entrée est un nom de table, une table des mêmes
colonnes est retournée.
Remarques
Quand vous utilisez la fonction VALUES dans un contexte qui a été filtré, les valeurs
uniques retournées par VALUES sont affectées par le filtre. Par exemple, si vous
filtrez par région et que vous retournez une liste de valeurs pour la ville, la liste
inclut uniquement les villes dans les régions autorisées par le filtre. Pour retourner
toutes les villes, quels que soient les filtres existants, vous devez utiliser la fonction
ALL pour supprimer les filtres de la table. Le deuxième exemple illustre l’utilisation
de la fonction ALL avec VALUES.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Fonctions connexes
Dans la plupart des scénarios, lorsque l’argument est un nom de colonne, les résultats
de la fonction VALUES sont identiques à ceux de la fonction DISTINCT. Les deux
fonctions suppriment les doublons et retournent une liste des valeurs possibles dans la
colonne spécifiée. Toutefois, la fonction VALUES peut également retourner une valeur
vide. Cette valeur vide est utile dans les cas où vous recherchez des valeurs distinctes
dans une table associée, mais qu’une valeur utilisée dans la relation est manquante dans
une table. Dans la terminologie de base de données, il s’agit d’une violation de
l’intégrité référentielle. De telles incompatibilités dans les données peuvent se produire
quand une table est mise à jour et que la table associée ne l’est pas.
7 Notes
Le tableau suivant résume l’incompatibilité entre les données qui peut se produire dans
deux tables associées lorsque l’intégrité référentielle n’est pas conservée.
Table MyOrders Table MySales
Si vous utilisez la fonction DISTINCT pour retourner une liste de dates, seules deux dates
sont retournées. Toutefois, si vous utilisez la fonction VALUES, la fonction retourne les
deux dates et un membre vide supplémentaire. En outre, toute ligne de la table MySales
qui n’a pas de date correspondante dans la table MyOrders sera « mise en
correspondance » avec ce membre inconnu.
Exemple
La formule suivante compte le nombre de factures uniques (commandes client) et
produit les résultats suivants quand elles sont utilisées dans un rapport qui contient les
noms des catégories de produits :
DAX
= COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber]))
retourne :
Accessories 18 208
Bikes 15 205
Clothing 7 461
Voir aussi
FILTER, fonction
COUNTROWS, fonction
Fonctions de filtrage
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions de texte
Article • 20/10/2023
CONCATENATEX Concatène le résultat d’une expression évaluée pour chaque ligne d’une table.
EXACT Compare deux chaînes de texte et retourne TRUE si elles sont exactement
identiques ; sinon, FALSE.
FIND Retourne la position de départ d’une chaîne de texte à l’intérieur d’une autre
chaîne de texte.
MID Retourne une chaîne de caractères à partir du milieu d’une chaîne de texte, en
fonction d’une position de départ et d’une longueur.
REPLACE REPLACE remplace une partie d’une chaîne de texte, en fonction du nombre
de caractères que vous spécifiez, par une autre chaîne de texte.
SUBSTITUTE Remplace un texte existant par un nouveau texte dans une chaîne de texte.
TRIM Supprime tous les espaces d’un texte à l’exception des espaces uniques entre
les mots.
Commentaires
Cette page a-t-elle été utile ? Yes No
COMBINEVALUES
Article • 20/10/2023
joint deux chaînes de texte ou plus en une seule. L’objectif premier de cette fonction est
de prendre en charge les relations multicolonnes dans les modèles DirectQuery. Pour
plus d’informations, consultez Remarques.
Syntaxe
DAX
Paramètres
Terme Définition
delimiter Séparateur à utiliser pendant la concaténation. Doit être une valeur constante.
expression Expression DAX dont la valeur sera jointe en une chaîne de texte unique.
Valeur de retour
Une chaîne concaténée.
Remarques
La fonction COMBINEVALUES suppose, mais sans confirmer, que lorsque les
valeurs d’entrée sont différentes, les chaînes de sortie sont également différentes.
Selon cette hypothèse, quand la fonction COMBINEVALUES est utilisée pour créer
des colonnes calculées afin de produire une relation qui joint plusieurs colonnes
de deux tables DirectQuery, une condition de jointure optimisée est générée au
moment de la requête. Par exemple, si les utilisateurs veulent créer une relation
entre Table1(Column1, Column2) et Table2(Column1, Column2), ils peuvent créer
deux colonnes calculées, une sur chaque table, comme suit :
DAX
et
DAX
DAX
et
DAX
" , ce qui semble indiquer que les deux lignes constituent une correspondance
dans l’opération de jointure. Les deux lignes ne sont pas jointes si les deux tables
proviennent de la même source DirectQuery, bien qu’elles soient regroupées si les
deux tables sont importées.
Exemple
La requête DAX suivante :
DAX
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName],
[CalendarYear] ) )
)
[Mois]
Janvier, 2020
Février, 2020
Mars, 2020
Avril, 2020
Mai 2020
Juin 2020
Juillet 2020
Août 2020
Septembre 2020
Octobre 2020
Novembre 2020
Décembre, 2020
Janvier, 2021
Janvier, 2021
Février, 2021
Mars 2021
Avril 2021
Mai, 2021
[Mois]
Juin 2021
Juillet 2021
Août 2021
Septembre 2021
Octobre 2021
Novembre 2021
Décembre 2021
Commentaires
Cette page a-t-elle été utile ? Yes No
CONCATENATE
Article • 20/10/2023
Syntaxe
DAX
CONCATENATE(<text1>, <text2>)
Paramètres
Terme Définition
text1 Première chaîne de texte à joindre en une chaîne de texte unique. La chaîne peut inclure
du texte ou des nombres. Vous pouvez également utiliser des références de colonnes.
text2 Deuxième chaîne de texte à joindre en une seule chaîne de texte. La chaîne peut inclure
du texte ou des nombres. Vous pouvez également utiliser des références de colonne.
Valeur de retour
Une chaîne concaténée.
Remarques
La fonction CONCATENATE concatène deux chaînes de texte. Les éléments
concaténés peuvent être du texte, des nombres, des valeurs booléennes
représentées sous forme de texte ou une combinaison de ces éléments. Vous
pouvez également utiliser une référence de colonne si la colonne contient les
valeurs appropriées.
Si vous souhaitez utiliser des chaînes de texte directement (plutôt qu’une référence
de colonne), vous devez placer chaque chaîne entre guillemets doubles.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
DAX
DAX
DAX
DAX
Dans DAX, la fonction CONCATENATE accepte deux arguments uniquement, alors qu’elle
en accepte jusqu’à 255 dans Excel. Si vous devez ajouter des arguments, vous pouvez
utiliser l’opérateur & (esperluette). Par exemple, la formule suivante génère les résultats
VTT-40 et VTT-42.
DAX
Voir aussi
CONCATENATEX
Commentaires
Cette page a-t-elle été utile ? Yes No
CONCATENATEX
Article • 20/10/2023
Concatène le résultat d’une expression évaluée pour chaque ligne d’une table.
Syntaxe
DAX
Paramètres
Terme Définition
tableau Table contenant les lignes pour lesquelles l’expression est évaluée.
orderBy_expression (Facultatif) Toute expression DAX dont la valeur du résultat est utilisée pour
trier les valeurs concaténées dans la chaîne de sortie. Elle est évaluée pour
chaque ligne de la table.
order (Facultatif) Valeur qui spécifie comment trier les valeurs orderBy_expression,
par ordre croissant ou décroissant.
Valeur renvoyée
Une chaîne concaténée.
Remarques
Cette fonction prend comme premier argument une table ou une expression qui
retourne une table. Le deuxième argument est une colonne qui contient les valeurs
que vous voulez concaténer ou une expression qui retourne une valeur.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
Table Employees
FirstName LastName
Alan Brewer
Michael Blythe
La formule suivante :
DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
EXACT
Article • 20/10/2023
Compare deux chaînes de texte et retourne TRUE si elles sont exactement identiques ;
sinon FALSE est retourné. EXACT respecte la casse, mais ignore les différences de mise
en forme. La fonction EXACT respecte la casse
Syntaxe
DAX
EXACT(<text1>,<text2>)
Paramètres
Terme Définition
Valeur renvoyée
Vrai ou faux. (Valeur booléenne)
Exemple
La formule suivante utilisée dans une colonne calculée dans la table Product vérifie la
valeur de Product pour la ligne actuelle par rapport à la valeur de Model pour la ligne
actuelle, puis retourne True si elles sont identiques et False si elles sont différentes.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
= EXACT([Product], [Model])
Voir aussi
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
FIND
Article • 20/10/2023
Retourne la position de départ d’une chaîne de texte à l’intérieur d’une autre chaîne de
texte. La fonction FIND respecte la casse.
Syntaxe
DAX
Paramètres
Terme Définition
find_text Texte à rechercher. Utilisez des guillemets doubles (texte vide) pour rechercher
le premier caractère dans within_text.
start_num (Facultatif) Caractère à partir duquel commencer la recherche ; s’il est omis,
start_num = 1. Le premier caractère dans within_text est le caractère numéro 1.
NotFoundValue (Facultatif, mais fortement recommandé) Valeur qui doit être retournée quand
l’opération ne trouve pas de sous-chaîne correspondante, généralement 0, -1
ou BLANK(). Si non spécifié, une erreur est renvoyée.
Valeur renvoyée
Nombre qui indique le point de départ de la chaîne de texte à rechercher.
Remarques
À la différence de Microsoft Excel qui fournit plusieurs versions de la fonction FIND
pour prendre en charge les langages de jeu de caractères codés sur un octet
(SBCS) et de jeu de caractères codés sur deux octets (DBCS), DAX utilise Unicode et
compte chaque caractère de façon identique, ce qui vous évite d’avoir à utiliser
une version propre à chaque type de caractère.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
La fonction FIND ne prend pas en charge les caractères génériques. Pour utiliser
des caractères génériques, choisissez la fonction SEARCH.
Exemple
La requête DAX suivante recherche la position de la première lettre de « Bike » dans la
chaîne qui contient le nom du revendeur. Si elle est introuvable, Blank est retourné.
N’oubliez pas que FIND respecte la casse. Dans cet exemple, si « bike » est utilisé dans
l’argument <find_text>, aucun résultat n’est retourné. Utilisez SEARCH pour ne pas
respecter la casse.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
EVALUATE
CALCULATETABLE (
ADDCOLUMNS (
TOPN ( 10, SUMMARIZE('Reseller', [Reseller], [Business Type])),
"Position of Bike", FIND ( "Bike", 'Reseller'[Reseller], 1, BLANK ()
)
),
'Reseller'[Business Type] IN { "Specialty Bike Shop", "Value Added
Reseller", "Warehouse"}
)
Retourne :
Voir aussi
SEARCH
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
FIXED
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
nombre Nombre que vous souhaitez arrondir et convertir en texte, ou colonne contenant
un nombre.
decimals (Facultatif) Nombre de chiffres après la virgule décimale ; si l’argument est omis, 2.
no_commas (Facultatif) Valeur logique : si la valeur est 1, les virgules ne sont pas affichées dans
le texte retourné ; si la valeur est 0 ou si l’argument est omis, les virgules sont
affichées dans le texte retourné.
Valeur renvoyée
Nombre représenté sous forme de texte.
Remarques
Si la valeur utilisée pour le paramètre decimals est négative, number est arrondi à
gauche de la virgule décimale.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule suivante utilisée dans une colonne calculée obtient la valeur numérique de la
ligne actuelle dans Product[Tarif Price] et la retourne sous forme de texte avec
2 décimales et aucune virgule.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
= FIXED([List Price],2,1)
Voir aussi
CEILING
FLOOR
ISO.CEILING
MROUND
ROUND
ROUNDDOWN
ROUNDUP
Commentaires
Cette page a-t-elle été utile ? Yes No
FORMAT
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
locale_name (Facultatif) Nom des paramètres régionaux à utiliser par la fonction. Les valeurs
possibles sont les chaînes acceptées par la fonction API Windows
LocaleNameToLCID().
Valeur de retour
Chaîne contenant le paramètre value mis en forme comme défini par format_string.
7 Notes
Remarques
Les chaînes de format prédéfinies utilisent la propriété de culture du modèle lors
de la mise en forme du résultat. Par défaut, la propriété de culture du modèle est
définie en fonction des paramètres régionaux utilisateur de l’ordinateur. Pour les
nouveaux modèles de Power BI Desktop, la propriété de culture du modèle peut
être changée dans Options > Paramètres régionaux > Langue du modèle. Pour
Analysis Services, la culture de modèle est définie en fonction de la propriété
Langue définie au départ par l’instance.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemples
Chaînes de format
DAX
$12 345,67 "Currency" affiche le nombre avec le format de devise correspondant à vos
paramètres régionaux. L’exemple montre ici le format de devise par défaut pour les
États-Unis.
1.23E+04 "Scientific" affiche le nombre dans une notation scientifique avec deux chiffres
décimaux.
DAX
Format Description
"Currency" Affiche le nombre avec des séparateurs de milliers, le cas échéant ; affiche deux
chiffres à droite du séparateur décimal. La sortie est basée sur les paramètres
régionaux du système.
"Standard" Affiche le nombre avec des séparateurs de milliers, au moins un chiffre à gauche
et deux chiffres à droite du séparateur décimal.
"Percent" Affiche le nombre multiplié par 100 avec un signe de pourcentage (%) ajouté de
suite à droite ; affiche toujours deux chiffres à droite du séparateur décimal.
"Yes/No" Affiche No si le nombre est égal à 0 ; dans le cas contraire, affiche Yes.
"True/False" Affiche False si le nombre est égal à 0 ; dans le cas contraire, affiche True.
"On/Off" Affiche Off si le nombre est égal à 0 ; dans le cas contraire, affiche On.
Deux sections La première section s'applique aux valeurs positives et aux zéros, et la seconde
aux valeurs négatives.
Trois sections La première section s'applique aux valeurs positives, la deuxième aux valeurs
négatives et la troisième aux zéros.
DAX
"$#,##0;($#,##0)"
Si vous incluez des points-virgules sans valeur entre eux, la section manquante est
définie avec le format de la valeur positive. Par exemple, le format suivant affiche les
valeurs positives et négatives d’après le format défini dans la première section et affiche
« Zéro » si la valeur est zéro.
DAX
"$#,##0"
Si vous incluez des points-virgules sans valeur entre eux, la section manquante est
représentée par le format de la valeur positive.
Caractère Description
(#) Espace réservé de chiffre. Affiche un chiffre ou rien. Si l’expression contient un chiffre
à l’emplacement où la valeur # apparaît dans la chaîne de format, elle est affichée.
Sinon, n’affiche rien à cette position. Ce symbole fonctionne comme l’espace réservé
de chiffre 0, sauf que les zéros de début et de fin ne sont pas affichés si le nombre a
le même nombre ou un nombre de chiffres inférieur à celui des caractères # de part
et d’autre du séparateur décimal dans l’expression de format.
(.) Espace réservé de décimale. Dans certains paramètres régionaux, une virgule est
utilisée comme séparateur décimal. L’espace réservé de décimale détermine le
nombre de chiffres affichés à gauche et à droite du séparateur décimal. Si
l’expression de format contient uniquement des signes numériques à gauche de ce
symbole, les nombres inférieurs à 1 commencent par un séparateur décimal. Pour
Caractère Description
afficher un zéro non significatif avec les nombres fractionnaires, utilisez 0 comme
premier espace réservé de chiffre à gauche du séparateur décimal. Le caractère réel
utilisé comme espace réservé décimal dans le résultat mis en forme dépend du
format numérique reconnu par votre système.
(%) Espace réservé de pourcentage. L’expression est multipliée par 100. Le caractère de
pourcentage (%) est inséré à l’emplacement où il apparaît dans la chaîne de format.
(,) Séparateur des milliers. Dans certains paramètres régionaux, un point est utilisé
comme séparateur des milliers. Le séparateur des milliers sépare les milliers des
centaines au sein d’un nombre qui a quatre décimales ou plus à gauche du
séparateur décimal. L’utilisation standard du séparateur de milliers est spécifiée si le
format contient un séparateur de milliers entouré par des espaces réservés de chiffre
(0 ou #). La présence de deux séparateurs des milliers contigus, ou d’un séparateur
des milliers juste à gauche du séparateur décimal (qu’une décimale soit ou non
spécifiée), signifie « mettre à l’échelle le nombre en le divisant par 1 000, en
l’arrondissant le cas échéant ». Par exemple, vous pouvez utiliser la chaîne de format
« ##0,, » pour représenter 100 millions par 100. Les nombres inférieurs à 1 million
sont affichés comme 0. Deux séparateurs de milliers adjacents dans toute position
autre qu’immédiatement à gauche du séparateur décimal sont traités simplement
comme spécifiant l’utilisation d’un séparateur de milliers. Le caractère réel utilisé
pour le séparateur de milliers dans le résultat mis en forme dépend du format
numérique reconnu par votre système.
(:) Séparateur d’heure. Pour certains paramètres régionaux, d’autres caractères peuvent
être utilisés pour représenter le séparateur d’heure. Le séparateur d’heure sépare les
heures, les minutes et les secondes lors de la mise en forme des valeurs d’heure. Le
caractère réel utilisé comme séparateur d’heure dans le résultat mis en forme est
déterminé par vos paramètres système.
(/) Séparateur de date. Pour certains paramètres régionaux, d’autres caractères peuvent
être utilisés pour représenter le séparateur de date. Le séparateur de date sépare le
jour, le mois et l’année lorsque les valeurs de date sont mises en forme. Le caractère
réel utilisé comme séparateur de date dans le résultat mis en forme est déterminé
par vos paramètres système.
-+$() Affiche un caractère littéral. Pour afficher un caractère autre que les caractères listés,
faites-le précéder d’une barre oblique inverse ( \ ) ou placez-le entre guillemets
doubles (" ").
Caractère Description
(\) Affiche le caractère suivant dans la chaîne de format. Pour afficher un caractère ayant
une signification spéciale sous forme de caractère littéral, faites-le précéder d’une
barre oblique inverse ( \ ). La barre oblique inverse elle-même n’est pas affichée.
L'utilisation d'une barre oblique inverse équivaut à mettre le caractère suivant entre
des guillemets doubles. Pour afficher une barre oblique inverse, utilisez deux barres
obliques inverses ( \\ ). Exemples de caractères qui ne peuvent pas être affichés
comme caractères littéraux : caractères de mise en forme de date et d’heure (a, c, d,
h, m, n, p, q, s, t, w, y, / et :), caractères de mise en forme numérique (#, 0, %, E, e,
virgule et point), et caractères de mise en forme de chaîne (@, &, <, > et !).
Format Description
"General Date" Affiche une date et/ou une heure. Par exemple, 3/12/2008 11:07:31.
L’affichage de la date est déterminé par les paramètres régionaux actuels de
l’application.
"Long Date" ou Affiche une date en fonction du format de date longue des paramètres
"Medium Date" régionaux actuels. Par exemple, Mercredi 12 mars 2008.
"Short Date" Affiche une date en fonction du format de date courte des paramètres
régionaux actuels. Par exemple, 3/12/2008.
"Long Time" ou Affiche une heure en fonction du format d’heure longue des paramètres
régionaux actuels, qui inclut généralement les heures, les minutes et les
secondes. Par exemple, 11:07:31.
"Medium Time" Affiche une heure au format 12 heures. Par exemple, 11:07 AM.
"Short Time" Affiche une heure au format 24 heures. Par exemple, 11:07.
(:) Séparateur d’heure. Pour certains paramètres régionaux, d’autres caractères peuvent
être utilisés pour représenter le séparateur d’heure. Le séparateur d’heure sépare les
heures, les minutes et les secondes lors de la mise en forme des valeurs d’heure. Le
caractère réel utilisé comme séparateur d’heure dans le résultat mis en forme est
déterminé par vos paramètres système.
(/) Séparateur de date. Pour certains paramètres régionaux, d’autres caractères peuvent
être utilisés pour représenter le séparateur de date. Le séparateur de date sépare le
jour, le mois et l’année lorsque les valeurs de date sont mises en forme. Le caractère
réel utilisé comme séparateur de date dans le résultat mis en forme est déterminé
par vos paramètres système.
(\) Barre oblique inverse. Affiche le caractère suivant sous forme de caractère littéral. De
ce fait, il n’est pas interprété en tant que caractère de mise en forme.
(") Guillemet double. Le texte placé entre guillemets doubles est affiché. De ce fait, il
n’est pas interprété en tant que caractères de mise en forme.
c Affiche la date sous la forme ddddd et l’heure sous la forme ttttt , dans cet ordre.
Affiche uniquement les informations de date si le numéro de série de la date ne
comporte pas de partie fractionnaire. Affiche uniquement les informations d’heure s’il
n’y a pas de partie entière.
d Affiche le jour sous forme de nombre sans zéro non significatif (1-31).
jj Affiche le jour sous forme de nombre avec un zéro non significatif (01-31).
ddddd Affiche la date complète (jour, mois et année), conformément au format de date
courte défini sur votre système. Le format de date courte par défaut est mm/dd/yyyy .
dddddd Affiche un numéro de série de date complète (jour, mois et année), conformément au
paramètre de date longue reconnu par votre système. Le format de date longue par
défaut est dddd, mmmm d, yyyy .
w Affiche le jour de la semaine sous la forme d’un nombre (de 1 pour dimanche à
7 pour samedi).
m Affiche le mois sous forme de nombre sans zéro non significatif (1-12). Si m suit
immédiatement h ou hh , les minutes sont affichées à la place du mois.
MM Affiche le mois sous forme de nombre avec un zéro non significatif (01-12). Si mm suit
immédiatement h ou hh , les minutes sont affichées à la place du mois.
Caractère Description
mmmm Affiche le mois sous forme de nom de mois complet (Janvier-Décembre). Localisé.
h Affiche l’heure sous forme de nombre sans zéro non significatif (0-23).
hh Affiche l’heure sous forme de nombre avec un zéro non significatif (00-23).
n Affiche les minutes sous forme de nombre sans zéro non significatif (0-59).
nn Affiche les minutes sous forme de nombre avec un zéro non significatif (00-59).
s Affiche les secondes sous forme de nombre sans zéro non significatif (0-59).
ss Affiche les secondes sous forme de nombre avec un zéro non significatif (00-59).
ttttt Affiche l’heure complète (heures, minutes et secondes), dans une mise en forme qui
reprend le séparateur horaire défini dans les paramètres horaires de votre système.
Un zéro non significatif apparaît si l’option correspondante est sélectionnée et si
l’heure est antérieure à 10:00 A.M. ou P.M. Le format d’heure par défaut est h:mm:ss .
AM/PM Utilise l’horloge de 12 heures et affiche am en minuscules avec toute heure avant
midi et pm en minuscules avec toute heure comprise entre midi et 23h59.
A/P Utilise l’horloge de 12 heures et affiche un « A » majuscule avec toute heure avant
midi et un « P » majuscule avec toute heure comprise entre midi et 23h59.
A/P Utilise l’horloge de 12 heures et affiche un « a » minuscule avec toute heure avant
midi et un « p » minuscule avec toute heure comprise entre midi et 23h59.
AMPM Utilise l’horloge de 12 heures et affiche le littéral de chaîne AM comme défini par
votre système avec toute heure avant midi et le littéral de chaîne PM comme défini
par votre système avec toute heure comprise entre midi et 23h59. AMPM peut être
spécifié en majuscules ou en minuscules. La casse de la chaîne affichée correspond à
celle de la chaîne définie par vos paramètres système. Le format par défaut est
AM/PM. Si votre système est défini sur une horloge de 24 heures, la chaîne est
généralement définie comme étant une chaîne vide.
Le format de date/heure utilise les paramètres régionaux de l’utilisateur actuel pour
mettre en forme la chaîne. Prenons pour exemple de date le 25 juin 2020. Quand cette
date est mise en forme avec la chaîne de format « m/d/yyyy », elle se présente comme
ceci :
"d" 25 25
"dd" 25 25
"ddd" Thu Do
"w" 5 5
"ww" 26 26
"m" 6 6
"mm" 06 06
"q" 2 2
"yy" 20 20
Commentaires
Cette page a-t-elle été utile ? Yes No
LEFT
Article • 20/10/2023
Syntaxe
DAX
LEFT(<text>, <num_chars>)
Paramètres
Terme Définition
texte Chaîne de texte qui contient les caractères que vous voulez extraire ou une référence
à une colonne qui contient du texte.
num_chars (facultatif) Nombre de caractères que LEFT doit extraire ; si l’argument est omis, 1.
Valeur renvoyée
Chaîne de texte.
Remarques
Alors que Microsoft Excel contient des fonctions différentes pour utiliser le texte
dans les langues à caractères codés sur un ou deux octets, DAX utilise Unicode et
stocke tous les caractères sur une même longueur, si bien qu’une seule fonction
suffit.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple suivant retourne les cinq premiers caractères du nom de la société dans la
colonne [ResellerName] et les cinq premières lettres du code géographique dans la
colonne [GeographyKey], puis les concatène pour créer un identificateur.
DAX
= CONCATENATE(LEFT('Reseller'[ResellerName],LEFT(GeographyKey,3))
Voir aussi
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
LEN
Article • 20/10/2023
Syntaxe
DAX
LEN(<text>)
Paramètres
Terme Définition
texte Texte dont vous souhaitez rechercher la longueur ou colonne contenant du texte. Les
espaces comptent pour des caractères.
Valeur de retour
Nombre entier indiquant le nombre de caractères dans la chaîne de texte.
Remarques
Alors que Microsoft Excel propose des fonctions différentes pour les langues à
caractères codés sur un ou deux octets, DAX utilise Unicode et stocke tous les
caractères sur une même longueur.
LEN compte toujours chaque caractère comme un seul (1) caractère, quel que soit
le paramètre de la langue par défaut.
Si vous utilisez LEN avec une colonne contenant des valeurs non textuelles, comme
des dates ou des valeurs booléennes, la fonction caste implicitement la valeur en
texte selon le format actuel de la colonne.
Exemple
La formule suivante additionne les longueurs des adresses dans les colonnes
[AddressLine1] et [AddressLine2].
DAX
= LEN([AddressLine1])+LEN([AddressLin2])
Commentaires
Cette page a-t-elle été utile ? Yes No
LOWER
Article • 20/10/2023
Syntaxe
DAX
LOWER(<text>)
Paramètres
Terme Définition
texte Texte que vous souhaitez convertir en minuscules, ou référence à une colonne qui
contient du texte.
Valeur renvoyée
Texte en minuscules.
Remarques
Les caractères qui ne sont pas des lettres ne sont pas changés. Par exemple, la formule =
LOWER("123ABC") retourne 123abc.
Exemple
La formule suivante obtient chaque ligne de la colonne, [ProductCode], et convertit la
valeur en minuscules. Les nombres de la colonne ne sont pas affectés.
DAX
= LOWER('New Products'[ProductCode])
Voir aussi
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
MID
Article • 20/10/2023
Retourne une chaîne de caractères à partir du milieu d’une chaîne de texte, en fonction
d’une position de départ et d’une longueur.
Syntaxe
DAX
Paramètres
Terme Définition
texte La chaîne de texte dont vous voulez extraire les caractères ou une colonne qui
contient du texte.
Valeur renvoyée
Une chaîne de texte de la longueur spécifiée.
Remarques
Alors que Microsoft Excel propose des fonctions différentes pour les langues à
caractères codés sur un ou deux octets, DAX utilise Unicode et stocke tous les caractères
avec la même longueur.
Exemples
L’expression suivante :
DAX
MID("abcde",2,3))
retourne « bcd » .
L’expression suivante :
DAX
MID('Reseller'[ResellerName],1,5))
Voir aussi
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
REPLACE
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
old_text Chaîne de texte qui contient les caractères à remplacer ou référence à une colonne
qui contient du texte.
Valeur renvoyée
Chaîne de texte.
Remarques
Alors que Microsoft Excel propose des fonctions différentes pour les langues à
caractères codés sur un ou deux octets, DAX utilise Unicode et stocke donc tous
les caractères sur une même longueur.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La formule suivante crée une colonne calculée qui remplace les deux premiers
caractères du code de produit dans la colonne [ProductCode] par un nouveau code à
deux lettres, OB.
DAX
Voir aussi
Fonctions de texte
SUBSTITUTE, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
REPT
Article • 20/10/2023
Répète du texte un certain nombre de fois. Utilisez REPT pour remplir une cellule avec
un certain nombre d’instances d’une chaîne de texte.
Syntaxe
DAX
REPT(<text>, <num_times>)
Paramètres
Terme Définition
Valeur renvoyée
Chaîne contenant les modifications.
Remarques
Si number_times est égal à 0 (zéro), la fonction REPT retourne une valeur vide.
DAX
= REPT("85",3)
DAX
= REPT([MyText],[MyNumber])
Texte 2 TextText
Numéro 0
85 % 3 858585
Voir aussi
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
RIGHT
Article • 20/10/2023
Syntaxe
DAX
RIGHT(<text>, <num_chars>)
Paramètres
Terme Définition
texte Chaîne de texte qui contient les caractères que vous voulez extraire ou une référence
à une colonne qui contient du texte.
num_chars (facultatif) Nombre de caractères que RIGHT doit extraire ; si l’argument est omis, 1.
Vous pouvez également utiliser une référence à une colonne qui contient des
nombres.
Valeur renvoyée
Chaîne de texte contenant les caractères les plus à droite spécifiés.
Remarques
RIGHT compte toujours chaque caractère, qu’il soit sur un ou deux octets,
comme 1, indépendamment du paramètre de langue par défaut.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple : retour d'un nombre constant de
caractères
La formule suivante retourne les deux derniers chiffres du code produit dans la table
New Products.
DAX
= RIGHT('New Products'[ProductCode],2)
DAX
= RIGHT('New Products'[ProductCode],[MyCount])
Voir aussi
Fonctions de texte
LEFT
MID
Commentaires
Cette page a-t-elle été utile ? Yes No
SEARCH
Article • 20/10/2023
Syntaxe
DAX
Paramètres
Terme Définition
within_text Texte dans lequel vous voulez rechercher find_text ou colonne contenant le
texte.
NotFoundValue (Facultatif, mais fortement recommandé) Valeur qui doit être retournée quand
l’opération ne trouve pas de sous-chaîne correspondante, généralement 0, -1
ou BLANK(). Si non spécifié, une erreur est renvoyée.
Valeur de retour
Numéro de la position de départ de la première chaîne de texte à partir du premier
caractère de la deuxième chaîne de texte.
Remarques
La fonction de recherche ne respecte pas la casse. Si la recherche porte sur « N »,
la première occurrence de « N » ou « n » sera trouvée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante recherche la position de la première lettre de « cycle » dans la
chaîne qui contient le nom du revendeur. Si elle est introuvable, Blank est retourné.
SEARCH ne respecte pas la casse. Dans cet exemple, si « cycle » ou « Cycle » est utilisé
dans l’argument <find_text>, les résultats sont retournés dans les deux cas. Utilisez FIND
pour respecter la casse.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
EVALUATE
CALCULATETABLE (
ADDCOLUMNS (
TOPN ( 10, SUMMARIZE('Reseller', [Reseller], [Business Type])),
"Position of cycle", SEARCH ( "cycle", 'Reseller'[Reseller], 1,
BLANK () )
),
'Reseller'[Business Type] IN { "Specialty Bike Shop", "Value Added
Reseller", "Warehouse"}
)
Retourne :
Voir aussi
FIND
REPLACE
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
SUBSTITUTE
Article • 20/10/2023
Remplace un texte existant par un nouveau texte dans une chaîne de texte.
Syntaxe
DAX
Paramètres
Terme Définition
texte Texte dans lequel vous souhaitez remplacer des caractères ou référence à une
colonne contenant du texte.
Valeur renvoyée
Chaîne de texte.
Remarques
Utilisez la fonction SUBSTITUTE pour remplacer un texte spécifique dans une
chaîne de texte. Utilisez la fonction REPLACE pour remplacer tout texte de
longueur variable figurant à un emplacement spécifique d’une chaîne de texte.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple : substitution dans une chaîne
La formule suivante crée une copie de la colonne [Product Code] dans laquelle toutes
les occurrences de l’ancien code de produit PA sont remplacées par le nouveau code de
produit NW.
DAX
Voir aussi
Fonctions de texte
REPLACE
Commentaires
Cette page a-t-elle été utile ? Yes No
TRIM
Article • 20/10/2023
Supprime tous les espaces d’un texte à l’exception des espaces uniques entre les mots.
Syntaxe
DAX
TRIM(<text>)
Paramètres
Terme Définition
text Texte dont vous souhaitez supprimer les espaces ou colonne contenant du texte.
Valeur renvoyée
Chaîne avec les espaces supprimés.
Remarques
Utilisez la fonction TRIM sur le texte que vous avez reçu d’une autre application et
dont l’espacement peut être irrégulier.
Exemple
La formule suivante crée une chaîne ne contenant pas d’espace blanc de fin.
DAX
Quand vous créez la formule, elle est propagée sur la ligne telle que vous l’avez tapée.
Vous voyez donc la chaîne d’origine dans chaque formule, et les résultats ne sont pas
visibles. Toutefois, quand la formule est évaluée, la chaîne est tronquée.
Vous pouvez vous assurer que la formule génère le résultat correct en vérifiant la
longueur de la colonne calculée créée par la formule précédente comme suit :
DAX
Voir aussi
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
UNICHAR
Article • 20/10/2023
Syntaxe
DAX
UNICHAR(number)
Paramètres
Terme Définition
Valeur de retour
Caractère représenté par le nombre Unicode.
Remarques
Si les caractères XML ne sont pas valides, UNICHAR retourne une erreur.
Si les nombres Unicode sont des substituts partiels et que les types de données ne
sont pas valides, UNICHAR retourne une erreur.
Si les nombres sont des valeurs numériques hors de la plage autorisée, UNICHAR
retourne une erreur.
Le caractère Unicode retourné peut être une chaîne de caractères, par exemple en
code UTF-8 ou UTF-16.
Exemple
L’exemple suivant retourne le caractère représenté par le nombre Unicode 66 (A
majuscule).
DAX
= UNICHAR(65)
DAX
= UNICHAR(32)
DAX
= UNICHAR(9733)
Commentaires
Cette page a-t-elle été utile ? Yes No
UNICODE
Article • 20/10/2023
Syntaxe
DAX
UNICODE( <Text> )
Paramètres
Terme Définition
Valeur renvoyée
Code numérique pour le premier caractère d’une chaîne de texte.
Commentaires
Cette page a-t-elle été utile ? Yes No
UPPER
Article • 20/10/2023
Syntaxe
DAX
UPPER (<text>)
Paramètres
Terme Définition
texte Texte ou référence à une colonne qui contient du texte à convertir en majuscules.
Valeur renvoyée
Même texte en majuscules.
Exemple
La formule suivante convertit toutes les lettres de la chaîne de la colonne [ProductCode]
en majuscules. Les caractères non alphabétiques ne sont pas affectés.
DAX
Voir aussi
Fonctions de texte
LOWER, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
VALEUR
Article • 20/10/2023
Syntaxe
DAX
VALUE(<text>)
Paramètres
Terme Définition
Valeur de retour
Nombre converti en type de données décimal.
Remarques
La valeur transmise en tant que paramètre text peut être dans l’un quelconque des
formats de constante, de nombre, de date ou d’heure reconnus par l’application
ou les services que vous utilisez. Si text n’est pas dans l’un de ces formats, une
erreur est retournée.
Vous n’avez généralement pas besoin d’utiliser la fonction VALUE dans une
formule, car le moteur convertit implicitement le texte en nombres si nécessaire.
Vous pouvez également utiliser des références de colonnes. Par exemple, si vous
avez une colonne qui contient des types numériques mixtes, la fonction VALUE
peut être utilisée pour convertir toutes les valeurs en un même type de données
numérique. Toutefois, si vous utilisez la fonction VALUE avec une colonne qui
contient du texte et des nombres mixtes, la colonne entière est marquée d’une
erreur, car toutes les valeurs de toutes les lignes ne peuvent pas être converties en
nombres.
Exemple
La formule suivante convertit la chaîne typée « 3 » en valeur numérique 3.
DAX
= VALUE("3")
Voir aussi
Fonctions de texte
Commentaires
Cette page a-t-elle été utile ? Yes No
Fonctions d’intelligence temporelle
Article • 20/10/2023
DATEADD Retourne une table qui contient une colonne de dates déplacées
en avançant ou en remontant dans le temps en fonction du
nombre d’intervalles spécifié à partir des dates dans le contexte
actuel.
DATESMTD Retourne une table qui contient une colonne des dates du mois
jusqu’à ce jour, dans le contexte actuel.
DATESQTD Retourne une table qui contient une colonne des dates du
trimestre jusqu’à ce jour, dans le contexte actuel.
DATESYTD Retourne une table qui contient une colonne des dates de l’année
jusqu’à ce jour, dans le contexte actuel.
NEXTDAY Retourne une table qui contient une colonne de toutes les dates
du jour suivant, selon la première date spécifiée dans la colonne
dates du contexte actuel.
NEXTMONTH Retourne une table qui contient une colonne de toutes les dates
du mois suivant, selon la première date dans la colonne dates du
contexte actuel.
NEXTQUARTER Retourne une table qui contient une colonne de toutes les dates
du trimestre suivant, selon la première date spécifiée dans la
colonne dates du contexte actuel.
NEXTYEAR Retourne une table qui contient une colonne de toutes les dates
de l’année suivante, selon la première date dans la colonne dates
du contexte actuel.
PARALLELPERIOD Retourne une table qui contient une colonne de dates qui
représente une période parallèle aux dates de la colonne dates
spécifiée, dans le contexte actuel, avec les dates décalées d’un
certain nombre d’intervalles en avançant ou en remontant dans le
temps.
Fonction Description
PREVIOUSDAY Retourne une table qui contient une colonne de toutes les dates
représentant le jour qui précède la première date de la colonne
dates, dans le contexte actuel.
PREVIOUSMONTH Retourne une table qui contient une colonne de toutes les dates
du mois précédent, selon la première date de la colonne dates,
dans le contexte actuel.
PREVIOUSQUARTER Retourne une table qui contient une colonne de toutes les dates
du trimestre précédent, selon la première date de la colonne
dates, dans le contexte actuel.
PREVIOUSYEAR Retourne une table qui contient une colonne de toutes les dates
de l’année précédente, selon la dernière date de la colonne dates,
dans le contexte actuel.
SAMEPERIODLASTYEAR Retourne une table qui contient une colonne de dates déplacées
d’une année en remontant dans le temps à partir des dates de la
colonne dates spécifiée dans le contexte actuel.
Commentaires
Cette page a-t-elle été utile ? Yes No
CLOSINGBALANCEMONTH
Article • 20/10/2023
Syntaxe
DAX
CLOSINGBALANCEMONTH(<expression>,<dates>[,<filter>])
Paramètres
Paramètre Définition
Valeur de retour
Valeur scalaire qui représente l’expression évaluée à la dernière date du mois dans le
contexte actuel.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
7 Notes
Les contraintes sur les expressions booléennes sont décrites dans
CALCULATE, fonction.
7 Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule la valeur d’inventaire de fin
de mois des produits.
DAX
=
CLOSINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*Product
Inventory[UnitsBalance]),DateTime[DateKey])
Voir aussi
Fonctions d’intelligence temporelle
CLOSINGBALANCEYEAR, fonction
CLOSINGBALANCEQUARTER, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
CLOSINGBALANCEQUARTER
Article • 20/10/2023
Syntaxe
DAX
CLOSINGBALANCEQUARTER(<expression>,<dates>[,<filter>])
Paramètres
Terme Définition
Valeur de retour
Valeur scalaire qui représente la valeur expression évaluée à la dernière date du
trimestre dans le contexte actuel.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
7 Notes
Les contraintes sur les expressions booléennes sont décrites dans
CALCULATE, fonction.
7 Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule la valeur d’inventaire de fin
de trimestre de l’inventaire des produits.
DAX
=
CLOSINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*Produ
ctInventory[UnitsBalance]),DateTime[DateKey])
Voir aussi
Fonctions d’intelligence temporelle
CLOSINGBALANCEYEAR, fonction
CLOSINGBALANCEMONTH, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
CLOSINGBALANCEYEAR
Article • 20/10/2023
Syntaxe
DAX
CLOSINGBALANCEYEAR(<expression>,<dates>[,<filter>][,<year_end_date>])
Paramètres
Terme Définition
year_end_date (Facultatif) Chaîne littérale avec une date qui définit la date de fin d’année. La
valeur par défaut est le 31 décembre.
Valeur de retour
Valeur scalaire qui représente l’expression évaluée à la dernière date de l’année dans le
contexte actuel.
Remarques
Le paramètre year_end_date est un littéral de chaîne d’une date. Ses paramètres
régionaux sont identiques à ceux du client où le classeur a été créé. La partie
année de la date est ignorée.
7 Notes
7 Notes
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule la valeur d’inventaire de fin
d’année des produits.
DAX
=
CLOSINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductI
nventory[UnitsBalance]),DateTime[DateKey])
Voir aussi
Fonctions d’intelligence temporelle
CLOSINGBALANCEYEAR, fonction
CLOSINGBALANCEQUARTER, fonction
CLOSINGBALANCEMONTH, fonction
Commentaires
Cette page a-t-elle été utile ?
Yes No
DATEADD
Article • 20/10/2023
Retourne une table qui contient une colonne de dates avancées ou reculées dans le
temps du nombre d’intervalles spécifié par rapport aux dates dans le contexte actuel.
Syntaxe
DAX
DATEADD(<dates>,<number_of_intervals>,<interval>)
Paramètres
Terme Définition
interval Intervalle selon lequel les dates doivent être avancées ou reculées.
L’intervalle peut avoir l’une des valeurs suivantes : year , quarter , month ,
day
Valeur de retour
Table contenant une seule colonne de valeurs de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une expression de table qui retourne une seule colonne de valeurs de date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
7 Notes
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
La table de résultats inclut uniquement les dates qui existent dans la colonne
dates.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
DAX
= DATEADD(DateTime[DateKey],-1,year)
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
Commentaires
Cette page a-t-elle été utile ? Yes No
DATESBETWEEN
Article • 20/10/2023
Retourne une table contenant une colonne de dates qui commence à une date de début
spécifiée et se poursuit jusqu’à une date de fin spécifiée.
Cette fonction peut être passée en tant que filtre à la fonction CALCULATE. Utilisez-la
pour filtrer une expression sur une plage de dates personnalisée.
7 Notes
Si vous spécifiez des intervalles de dates standard tels que des jours, des mois, des
trimestres ou des années, il est recommandé d’utiliser la fonction DATESINPERIOD,
qui est plus adaptée.
Syntaxe
DAX
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Dans le cas d'utilisation le plus courant, Dates est une référence à la colonne de
date d'une table de dates marquée.
Si StartDate est BLANK, alors StartDate sera la valeur la plus ancienne dans la
colonne Dates.
Si EndDate est BLANK, alors EndDate sera la dernière valeur dans la colonne
Dates.
Les dates utilisées comme StartDate et EndDate sont inclusives. Ainsi, par
exemple, si la valeur StartDate est le 1er juillet 2019, cette date sera incluse dans la
table renvoyée (à condition que la date existe dans la colonne Dates).
La table renvoyée ne peut contenir que des dates stockées dans la colonne Dates.
Ainsi, par exemple, si la colonne Dates commence le 1er juillet 2017 et que la
valeur StartDate est le 1er juillet 2016, la table renvoyée commencera le 1er juillet
2017.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La définition de mesure de la table Sales suivante utilise la fonction DATESBETWEEN
pour produire un calcul LTD (life-to-date). Life-to-date représente le cumul d’une mesure
dans le temps depuis le tout début.
Notez que la formule utilise la fonction MAX. Cette fonction retourne la date la plus
récente incluse dans le contexte de filtre. Par conséquent, la fonction DATESBETWEEN
retourne une table de dates entre la date la plus ancienne et la date la plus récente.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
Customers LTD =
CALCULATE(
DISTINCTCOUNT(Sales[CustomerKey]),
DATESBETWEEN(
'Date'[Date],
BLANK(),
MAX('Date'[Date])
)
)
Supposons que la date la plus ancienne présente dans la table Date soit le 1er
juillet 2017. Quand un rapport filtre la mesure sur le mois de juin 2020, la fonction
DATESBETWEEN retourne une plage de dates comprises entre le 1er juillet 2017 et le 30
juin 2020.
Voir aussi
Fonctions d’intelligence temporelle (DAX)
Fonctions de date et heure (DAX)
DATESINPERIOD, fonction (DAX)
Commentaires
Cette page a-t-elle été utile ? Yes No
DATESINPERIOD
Article • 20/10/2023
Retourne une table contenant une colonne de dates qui commence à une date de début
spécifiée et se poursuit pendant le nombre et le type d’intervalles de dates spécifiés.
Cette fonction peut être passée en tant que filtre à la fonction CALCULATE. Utilisez-la
pour filtrer une expression par intervalles de date standard (jours, mois, trimestres ou
années).
Syntaxe
DAX
Paramètres
Terme Définition
interval Intervalle selon lequel les dates doivent être avancées ou reculées. Cet
intervalle peut avoir l’une des valeurs suivantes : DAY , MONTH , QUARTER et
YEAR
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Dans le cas d’usage le plus courant, dates référence la colonne de date d’une table
de dates marquée.
Si le nombre spécifié pour number_of_intervals est positif, les dates sont avancées
dans le temps ; s’il est négatif, les dates sont reculées dans le temps.
Le paramètre interval est une énumération. Les valeurs valides sont DAY , MONTH ,
QUARTER et YEAR . Étant donné qu’il s’agit d’une énumération, les valeurs ne sont
pas passées sous forme de chaînes. Vous ne devez donc pas les placer entre
guillemets.
La table retournée peut contenir uniquement des dates stockées dans la colonne
dates. Par exemple, si la colonne dates commence au 1er juillet 2017 et que la
valeur de start_date est le 1er juillet 2016, la table retournée commence au 1er
juillet 2017.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La définition de mesure de la table Sales suivante utilise la fonction DATESINPERIOD
pour calculer le chiffre d’affaires de l’année précédente (PY).
Notez que la formule utilise la fonction MAX. Cette fonction retourne la date la plus
récente incluse dans le contexte de filtre. Par conséquent, la fonction DATESINPERIOD
retourne une table de dates à partir de la date la plus récente de l’année dernière.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure
Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle
DAX .
DAX
Revenue PY =
CALCULATE(
SUM(Sales[Sales Amount]),
DATESINPERIOD(
'Date'[Date],
MAX('Date'[Date]),
-1,
YEAR
)
)
Supposons que le rapport est filtré sur le mois de juin 2020. La fonction MAX retourne la
date du 30 juin 2020. La fonction DATESINPERIOD retourne ensuite une plage de dates
comprises entre le 1er juillet 2019 et le 30 juin 2020. Il s’agit d’une année de valeurs de
date à partir du 30 juin 2020 de l’année dernière.
Voir aussi
Fonctions d’intelligence temporelle (DAX)
Fonctions de date et heure (DAX)
DATESBETWEEN, fonction (DAX)
Commentaires
Cette page a-t-elle été utile ? Yes No
DATESMTD
Article • 20/10/2023
Retourne une table qui contient une colonne des dates du mois jusqu’à ce jour, dans le
contexte actuel.
Syntaxe
DAX
DATESMTD(<dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une expression de table qui retourne une seule colonne de valeurs de date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
7 Notes
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule le « cumul mensuel à ce
jour » des ventes sur Internet.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
DATESMTD(DateTime[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
DATESYTD, fonction
DATESQTD, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
DATESQTD
Article • 20/10/2023
Retourne une table qui contient une colonne des dates du trimestre jusqu’à ce jour,
dans le contexte actuel.
Syntaxe
DAX
DATESQTD(<dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une expression de table qui retourne une seule colonne de valeurs de date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
7 Notes
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule le total cumulé trimestriel des
ventes sur Internet.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
DATESQTD(DateTime[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
DATESYTD, fonction
DATESMTD, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
DATESYTD
Article • 20/10/2023
Retourne une table qui contient une colonne des dates de l’année jusqu’à ce jour, dans
le contexte actuel.
Syntaxe
DAX
DATESYTD(<dates> [,<year_end_date>])
Paramètres
Terme Définition
year_end_date (Facultatif) Chaîne littérale avec une date qui définit la date de fin d’année. La
valeur par défaut est le 31 décembre.
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une expression de table qui retourne une seule colonne de valeurs de date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
7 Notes
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule le « total cumulé » des ventes
sur Internet.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
DATESYTD(DateTime[DateKey]))
L’exemple de formule suivant crée une mesure qui calcule le « Total cumulé de l’année
fiscale » pour les ventes sur Internet à l’aide des paramètres régionaux US pour le
format Date.
DAX
= CALCULATE(
SUM(InternetSales_USD[SalesAmount_USD]),
DATESYTD(DateTime[DateKey],
"6-30"
)
)
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
DATESMTD, fonction
DATESQTD, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ENDOFMONTH
Article • 20/10/2023
Retourne la dernière date du mois dans le contexte actuel pour la colonne de dates
spécifiée.
Syntaxe
DAX
ENDOFMONTH(<dates>)
Paramètres
Terme Définition
Valeur de retour
Table contenant une seule colonne et une seule ligne avec une valeur de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui retourne la fin du mois, pour le
contexte actuel.
DAX
= ENDOFMONTH(DateTime[DateKey])
Voir aussi
Fonctions de date et heure
Fonctions d’intelligence temporelle
ENDOFYEAR, fonction
ENDOFQUARTER, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ENDOFQUARTER
Article • 20/10/2023
Retourne la dernière date du trimestre dans le contexte actuel pour la colonne de dates
spécifiée.
Syntaxe
DAX
ENDOFQUARTER(<dates>)
Paramètres
Terme Définition
Valeur de retour
Table contenant une seule colonne et une seule ligne avec une valeur de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/heure
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui retourne la fin du trimestre pour le
contexte actuel.
DAX
= ENDOFQUARTER(DateTime[DateKey])
Voir aussi
Fonctions de date et heure
Fonctions d’intelligence temporelle
ENDOFYEAR, fonction
ENDOFMONTH, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
ENDOFYEAR
Article • 20/10/2023
Retourne la dernière date de l’année dans le contexte actuel pour la colonne de dates
spécifiée.
Syntaxe
DAX
ENDOFYEAR(<dates> [,<year_end_date>])
Paramètres
Terme Définition
year_end_date (Facultatif) Chaîne littérale avec une date qui définit la date de fin d’année. La
valeur par défaut est le 31 décembre.
Valeur de retour
Table contenant une seule colonne et une seule ligne avec une valeur de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/heure
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui retourne la fin de l’exercice se
terminant le 30 juin pour le contexte actuel.
DAX
= ENDOFYEAR(DateTime[DateKey],"06/30/2004")
Voir aussi
Fonctions de date et heure
Fonctions d’intelligence temporelle
ENDOFMONTH, fonction
ENDOFQUARTER, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
FIRSTDATE
Article • 20/10/2023
Retourne la première date dans le contexte actuel pour la colonne de dates spécifiée.
Syntaxe
DAX
FIRSTDATE(<dates>)
Paramètres
Terme Définition
Valeur de retour
Table contenant une seule colonne et une seule ligne avec une valeur de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Quand le contexte actuel est une date unique, les fonctions FIRSTDATE et
LASTDATE retournent la même date.
La valeur de retour est une table qui contient une seule colonne et une seule
valeur. Par conséquent, cette fonction peut être utilisée comme argument d’une
fonction qui exige une table dans ses arguments. De même, la valeur retournée
peut être utilisée chaque fois qu’une valeur de date est nécessaire.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui obtient la première date à laquelle
une vente a été réalisée dans le canal de ventes Internet pour le contexte actuel.
DAX
= FIRSTDATE('InternetSales_USD'[SaleDateKey])
Voir aussi
Fonctions de date et heure
Fonctions d’intelligence temporelle
LASTDATE, fonction
FIRSTNONBLANK, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
FIRSTNONBLANK
Article • 20/10/2023
Syntaxe
DAX
FIRSTNONBLANK(<column>,<expression>)
Paramètres
Terme Définition
expression Expression dont les valeurs vides sont évaluées pour chaque valeur de column.
Valeur renvoyée
Table contenant une seule colonne et une seule ligne avec la première valeur calculée.
Remarques
L’argument column peut être l’un des éléments suivants :
Référence à une colonne
Table contenant une seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction est généralement utilisée pour retourner la première valeur d’une
colonne pour laquelle l’expression n’est pas vide. Par exemple, vous pouvez
obtenir la dernière valeur correspondant aux ventes d’un produit.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
LASTNONBLANK, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
FIRSTNONBLANKVALUE
Article • 20/10/2023
Évalue une expression filtrée par les valeurs triées d’une colonne et retourne la première
valeur de l’expression qui n’est pas vide.
Syntaxe
DAX
FIRSTNONBLANKVALUE(<column>, <expression>)
Paramètres
Terme Définition
colonne Colonne ou expression qui retourne une table comprenant une seule colonne.
Valeur retournée
Première valeur non vide de <expression> correspondant aux valeurs triées de
<column>.
Remarques
L’argument column peut être l’un des éléments suivants :
Référence à une colonne
Table contenant une seule colonne
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante :
DAX
EVALUATE
SUMMARIZECOLUMNS(
DimProduct[Class],
"FNBV",
FIRSTNONBLANKVALUE(
DimDate[Date],
SUM(FactInternetSales[SalesAmount])
)
)
Retourne :
DimProduct[Class] [FNBV]
L 699,0982
H 13778,24
M 1000,4375
533,83
Commentaires
Cette page a-t-elle été utile ? Yes No
LASTDATE
Article • 20/10/2023
Retourne la dernière date dans le contexte actuel pour la colonne de dates spécifiée.
Syntaxe
DAX
LASTDATE(<dates>)
Paramètres
Terme Définition
Valeur de retour
Table contenant une seule colonne et une seule ligne avec une valeur de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/heure
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Quand le contexte actuel est une date unique, les fonctions FIRSTDATE et
LASTDATE retournent la même date.
Techniquement, la valeur de retour est une table qui contient une seule colonne et
une seule valeur. Par conséquent, cette fonction peut être utilisée comme
argument d’une fonction qui exige une table dans ses arguments. De même, la
valeur retournée peut être utilisée chaque fois qu’une valeur de date est
nécessaire.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui obtient la dernière date pour le
contexte actuel, à laquelle une vente a été réalisée dans le canal de ventes Internet.
DAX
= LASTDATE('InternetSales_USD'[SaleDateKey])
Voir aussi
Fonctions de date et heure
Fonctions d’intelligence temporelle
FIRSTDATE, fonction
LASTNONBLANK, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
LASTNONBLANK
Article • 20/10/2023
Syntaxe
DAX
LASTNONBLANK(<column>,<expression>)
Paramètres
Terme Définition
expression Expression dont les valeurs vides sont évaluées pour chaque valeur de column.
Valeur renvoyée
Table contenant une seule colonne et une seule ligne avec la dernière valeur calculée.
Remarques
L’argument column peut être l’un des éléments suivants :
Référence à une colonne
Table contenant une seule colonne
Expression booléenne qui définit une table à une seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction est généralement utilisée pour retourner la dernière valeur d’une
colonne pour laquelle l’expression n’est pas vide. Par exemple, vous pouvez
obtenir la dernière valeur correspondant aux ventes d’un produit.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Voir aussi
FIRSTNONBLANK, fonction
Fonctions statistiques
Commentaires
Cette page a-t-elle été utile ? Yes No
LASTNONBLANKVALUE
Article • 20/10/2023
Évalue une expression filtrée par les valeurs triées d’une colonne et retourne la dernière
valeur de l’expression qui n’est pas vide.
Syntaxe
DAX
LASTNONBLANKVALUE(<column>, <expression>)
Paramètres
Terme Définition
colonne Colonne ou expression qui retourne une table comprenant une seule colonne.
Valeur retournée
Dernière valeur non vide de <expression> correspondant aux valeurs triées de
<column>.
Remarques
L’argument column peut être l’un des éléments suivants :
Référence à une colonne
Table contenant une seule colonne
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
La requête DAX suivante :
DAX
EVALUATE
SUMMARIZECOLUMNS(
DimProduct[Class],
"LNBV",
LASTNONBLANKVALUE(
DimDate[Date],
SUM(FactInternetSales[SalesAmount])
)
)
Retourne :
DimProduct[Class] [LNBV]
L 132,44
H 137,6
M 84,97
2288,6
Commentaires
Cette page a-t-elle été utile ? Yes No
NEXTDAY
Article • 20/10/2023
Retourne une table qui contient une colonne de toutes les dates du jour suivant, selon la
première date spécifiée dans la colonne dates du contexte actuel.
Syntaxe
DAX
NEXTDAY(<dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction retourne toutes les dates du jour suivant jusqu’à la première date
du paramètre d’entrée. Par exemple, si la première date de l’argument dates fait
référence au 10 juin 2009, cette fonction retourne toutes les dates égales au
11 juin 2009.
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les ventes sur Internet du
« jour suivant ».
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
NEXTDAY('DateTime'[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
NEXTQUARTER, fonction
NEXTMONTH, fonction
NEXTYEAR, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
NEXTMONTH
Article • 20/10/2023
Retourne une table qui contient une colonne de toutes les dates du mois suivant, selon
la première date dans la colonne dates du contexte actuel.
Syntaxe
DAX
NEXTMONTH(<dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction retourne toutes les dates, du jour suivant jusqu’à la première date
du paramètre d’entrée. Par exemple, si la première date de l’argument dates
référence le 10 juin 2009, cette fonction retourne toutes les dates du mois de
juillet 2009.
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les ventes Internet du mois
suivant.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
NEXTMONTH('DateTime'[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
NEXTDAY, fonction
NEXTQUARTER, fonction
NEXTYEAR, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
NEXTQUARTER
Article • 20/10/2023
Retourne une table qui contient une colonne de toutes les dates du trimestre suivant,
selon la première date spécifiée dans la colonne dates du contexte actuel.
Syntaxe
DAX
NEXTQUARTER(<dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction retourne toutes les dates du trimestre suivant en fonction de la
première date du paramètre d’entrée. Par exemple, si la première date de la
colonne dates est le 10 juin 2009, cette fonction retourne toutes les dates du
trimestre de juillet à septembre 2009.
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les ventes Internet du
trimestre suivant.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
NEXTQUARTER('DateTime'[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
NEXTDAY, fonction
NEXTMONTH, fonction
NEXTYEAR, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
NEXTYEAR
Article • 20/10/2023
Retourne une table qui contient une colonne de toutes les dates de l’année suivante,
selon la première date dans la colonne dates du contexte actuel.
Syntaxe
DAX
NEXTYEAR(<dates>[,<year_end_date>])
Paramètres
Terme Définition
year_end_date (Facultatif) Chaîne littérale avec une date qui définit la date de fin d’année. La
valeur par défaut est le 31 décembre.
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction retourne toutes les dates de l’année suivante en fonction de la
première date de la colonne d’entrée. Par exemple, si la première date de la
colonne dates fait référence à l’année 2007, la fonction retourne toutes les dates
de l’année 2008.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les ventes Internet de
« l’année suivante ».
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
NEXTYEAR('DateTime'[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
NEXTDAY, fonction
NEXTQUARTER, fonction
NEXTMONTH, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
OPENINGBALANCEMONTH
Article • 20/10/2023
Syntaxe
DAX
OPENINGBALANCEMONTH(<expression>,<dates>[,<filter>])
Paramètres
Terme Définition
Valeur de retour
Valeur scalaire qui représente l’expression évaluée à la première date du mois dans le
contexte actuel.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Exemple
L’exemple de formule suivant crée une mesure qui calcule la valeur d’inventaire de
début de mois des produits.
DAX
=
OPENINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*Product
Inventory[UnitsBalance]),DateTime[DateKey])
Voir aussi
OPENINGBALANCEYEAR, fonction
OPENINGBALANCEQUARTER, fonction
Fonctions d’intelligence temporelle
CLOSINGBALANCEMONTH, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
OPENINGBALANCEQUARTER
Article • 20/10/2023
Syntaxe
DAX
OPENINGBALANCEQUARTER(<expression>,<dates>[,<filter>])
Paramètres
Terme Définition
Valeur de retour
Valeur scalaire qui représente la valeur expression évaluée à la première date du
trimestre dans le contexte actuel.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Exemple
L’exemple de formule suivant crée une mesure qui calcule la valeur d’inventaire de
début de trimestre de l’inventaire des produits.
DAX
=
OPENINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*Produ
ctInventory[UnitsBalance]),DateTime[DateKey])
Voir aussi
OPENINGBALANCEYEAR, fonction
OPENINGBALANCEMONTH, fonction
Fonctions d’intelligence temporelle
CLOSINGBALANCEQUARTER, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
OPENINGBALANCEYEAR
Article • 20/10/2023
Syntaxe
DAX
OPENINGBALANCEYEAR(<expression>,<dates>[,<filter>][,<year_end_date>])
Paramètres
Terme Définition
year_end_date (Facultatif) Chaîne littérale avec une date qui définit la date de fin d’année. La
valeur par défaut est le 31 décembre.
Valeur de retour
Valeur scalaire qui représente l’expression évaluée à la première date de l’année dans le
contexte actuel.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
L’expression filter présente les restrictions décrites dans la rubrique CALCULATE,
fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule la valeur d’inventaire de
début d’année des produits.
DAX
=
OPENINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductI
nventory[UnitsBalance]),DateTime[DateKey])
Voir aussi
OPENINGBALANCEQUARTER, fonction
OPENINGBALANCEMONTH, fonction
Fonctions d’intelligence temporelle
CLOSINGBALANCEYEAR, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
PARALLELPERIOD
Article • 20/10/2023
Retourne une table qui contient une colonne de dates représentant une période
parallèle aux dates de la colonne dates spécifiée, dans le contexte actuel, avec les dates
décalées d’un certain nombre d’intervalles en avançant ou en remontant dans le temps.
Syntaxe
DAX
PARALLELPERIOD(<dates>,<number_of_intervals>,<interval>)
Paramètres
Terme Définition
interval Intervalle selon lequel les dates doivent être avancées ou reculées. Cet
intervalle peut avoir l’une des valeurs suivantes : year , quarter , month .
Valeur de retour
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction prend l’ensemble de dates actuel dans la colonne spécifiée par
dates, décale la première date et la dernière date du nombre d’intervalles spécifié,
puis retourne toutes les dates contiguës figurant entre les deux dates décalées. Si
l’intervalle est une plage partielle du mois, du trimestre ou de l’année, tous les
mois partiels dans le résultat sont également remplis pour compléter l’intervalle
entier.
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
utilisez.
La table de résultats comprend uniquement les dates qui figurent dans les valeurs
de la colonne de table sous-jacente.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les ventes Internet de l’année
précédente.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
PARALLELPERIOD(DateTime[DateKey],-1,year))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
DATEADD, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
PREVIOUSDAY
Article • 20/10/2023
Retourne une table qui contient une colonne de toutes les dates représentant le jour qui
précède la première date de la colonne dates, dans le contexte actuel.
Syntaxe
DAX
PREVIOUSDAY(<dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction détermine la première date dans le paramètre d’entrée, puis
retourne toutes les dates correspondant au jour précédant cette première date. Par
exemple, si la première date dans l’argument dates fait référence au 10 juin 2009,
cette fonction retourne toutes les dates égales au 9 juin 2009.
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE, fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les ventes Internet du jour
précédent.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
PREVIOUSDAY('DateTime'[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
PREVIOUSMONTH, fonction
PREVIOUSQUARTER, fonction
PREVIOUSYEAR, fonction
Commentaires
Cette page a-t-elle été utile ? Yes No
PREVIOUSMONTH
Article • 20/10/2023
Renvoie une table contenant une colonne de toutes les dates du mois précédent, en
fonction de la première date de la colonne Dates, dans le contexte actuel.
Syntaxe
DAX
PREVIOUSMONTH(<Dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction retourne toutes les dates du mois précédent en utilisant la première
date de la colonne d’entrée. Par exemple, si la première date de l'argument Dates
fait référence au 10 juin 2009, cette fonction renvoie toutes les dates du mois de
mai 2009.
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les « ventes du mois
précédent » pour les ventes sur Internet.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
PREVIOUSMONTH('DateTime'[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
PREVIOUSDAY
PREVIOUSQUARTER
PREVIOUSYEAR
Commentaires
Cette page a-t-elle été utile ? Yes No
PREVIOUSQUARTER
Article • 20/10/2023
Retourne une table qui contient une colonne de toutes les dates du trimestre précédent,
basée sur la première date de la colonne dates, dans le contexte actuel.
Syntaxe
DAX
PREVIOUSQUARTER(<dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction retourne toutes les dates du trimestre précédent en utilisant la
première date de la colonne d’entrée. Par exemple, si la première date de
l’argument dates est le 10 juin 2009, cette fonction retourne toutes les dates du
trimestre de janvier à mars 2009.
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les « ventes du trimestre
précédent » pour les ventes sur Internet.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
PREVIOUSQUARTER('DateTime'[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
PREVIOUSMONTH
PREVIOUSDAY
PREVIOUSYEAR
Commentaires
Cette page a-t-elle été utile ? Yes No
PREVIOUSYEAR
Article • 20/10/2023
Retourne une table qui contient une colonne de toutes les dates de l’année précédente,
selon la dernière date de la colonne dates, dans le contexte actuel.
Syntaxe
DAX
PREVIOUSYEAR(<dates>[,<year_end_date>])
Paramètres
Terme Définition
year_end_date (Facultatif) Chaîne littérale avec une date qui définit la date de fin d’année. La
valeur par défaut est le 31 décembre.
Valeur renvoyée
Table contenant une seule colonne de valeurs de date.
Remarques
Cette fonction retourne toutes les dates de l’année précédente selon la dernière
date du paramètre d’entrée. Par exemple, si la date la plus récente de l’argument
dates fait référence à l’année 2009, cette fonction retourne toutes les dates pour
l’année 2008 jusqu’à la date year_end_date spécifiée.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les ventes Internet de l’année
précédente.
DAX
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),
PREVIOUSYEAR('DateTime'[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
PREVIOUSMONTH
PREVIOUSDAY
PREVIOUSQUARTER
Commentaires
Cette page a-t-elle été utile ? Yes No
SAMEPERIODLASTYEAR
Article • 20/10/2023
Retourne une table qui contient une colonne de dates déplacées d’une année en
remontant dans le temps à partir des dates de la colonne dates spécifiée dans le
contexte actuel.
Syntaxe
DAX
SAMEPERIODLASTYEAR(<dates>)
Paramètres
Terme Définition
Valeur renvoyée
Table à une seule colonne de valeurs de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/heure
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
Les dates retournées sont les mêmes que celles retournées par cette formule
équivalente : DATEADD(dates, -1, year)
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule les ventes de l’année
précédente du revendeur.
DAX
= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]),
SAMEPERIODLASTYEAR(DateTime[DateKey]))
Voir aussi
Fonctions d’intelligence temporelle
Fonctions de date et heure
PREVIOUSYEAR
PARALLELPERIOD
Commentaires
Cette page a-t-elle été utile ? Yes No
STARTOFMONTH
Article • 20/10/2023
Retourne la première date du mois dans le contexte actuel pour la colonne de dates
spécifiée.
Syntaxe
DAX
STARTOFMONTH(<dates>)
Paramètres
Terme Définition
Valeur de retour
Table contenant une seule colonne et une seule ligne avec une valeur de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui retourne le début du mois pour le
contexte actuel.
DAX
= STARTOFMONTH(DateTime[DateKey])
Voir aussi
Fonctions de date et heure
Fonctions d’intelligence temporelle
STARTOFYEAR
STARTOFQUARTER
Commentaires
Cette page a-t-elle été utile ? Yes No
STARTOFQUARTER
Article • 20/10/2023
Retourne la première date du trimestre dans le contexte actuel pour la colonne de dates
spécifiée.
Syntaxe
DAX
STARTOFQUARTER(<dates>)
Paramètres
Terme Définition
Valeur de retour
Table contenant une seule colonne et une seule ligne avec une valeur de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui retourne le début du trimestre, pour
le contexte actuel.
DAX
= STARTOFQUARTER(DateTime[DateKey])
Voir aussi
Fonctions de date et heure
Fonctions d’intelligence temporelle
STARTOFYEAR
STARTOFMONTH
Commentaires
Cette page a-t-elle été utile ? Yes No
STARTOFYEAR
Article • 20/10/2023
Retourne la première date de l’année dans le contexte actuel pour la colonne de dates
spécifiée.
Syntaxe
DAX
STARTOFYEAR(<dates>)
Paramètres
Terme Définition
Valeur de retour
Table contenant une seule colonne et une seule ligne avec une valeur de date.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui retourne le début de l’année pour le
contexte actuel.
DAX
= STARTOFYEAR(DateTime[DateKey])
Voir aussi
Fonctions de date et heure
Fonctions d’intelligence temporelle
STARTOFQUARTER
STARTOFMONTH
Commentaires
Cette page a-t-elle été utile ? Yes No
TOTALMTD
Article • 20/10/2023
Évalue la valeur de l’expression pour le mois en cours jusqu’à ce jour dans le contexte
actuel.
Syntaxe
DAX
TOTALMTD(<expression>,<dates>[,<filter>])
Paramètres
Paramètre Définition
Valeur de retour
Valeur scalaire qui représente l’expression évaluée pour le mois en cours jusqu’à ce jour,
par rapport à la colonne dates.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
Des restrictions s’appliquent à l’expression filter ; elles sont décrites dans la
rubrique CALCULATE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule la somme ou le total des
ventes Internet du mois en cours jusqu’à ce jour.
DAX
= TOTALMTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey])
Voir aussi
ALL
CALCULATE
TOTALYTD
TOTALQTD
Commentaires
Cette page a-t-elle été utile ? Yes No
TOTALQTD
Article • 20/10/2023
Évalue la valeur de l’expression pour les dates du trimestre jusqu’à ce jour, dans le
contexte actuel.
Syntaxe
DAX
TOTALQTD(<expression>,<dates>[,<filter>])
Paramètres
Paramètre Définition
Valeur de retour
Valeur scalaire qui représente l’expression évaluée pour toutes les dates du trimestre en
cours jusqu’à ce jour, selon les dates figurant dans dates.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
Des restrictions s’appliquent à l’expression filter ; elles sont décrites dans la
rubrique CALCULATE.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule la somme ou le total des
ventes Internet cumulé sur le trimestre.
DAX
= TOTALQTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey])
Voir aussi
ALL
CALCULATE
TOTALYTD
TOTALMTD
Commentaires
Cette page a-t-elle été utile ? Yes No
TOTALYTD
Article • 20/10/2023
Évalue la valeur de l’expression pour l’année en cours jusqu’à ce jour dans le contexte
actuel.
Syntaxe
DAX
TOTALYTD(<expression>,<dates>[,<filter>][,<year_end_date>])
Paramètres
Paramètre Définition
year_end_date (Facultatif) Chaîne littérale avec une date qui définit la date de fin d’année. La
valeur par défaut est le 31 décembre.
Valeur de retour
Valeur scalaire qui représente l’expression évaluée pour l’année en cours jusqu’à ce jour,
par rapport à la colonne dates.
Remarques
L’argument dates peut être l’un des éléments suivants :
Une référence à une colonne de date/d’heure.
Une expression de table qui retourne une seule colonne de valeurs de
date/heure
Une expression booléenne qui définit une table de valeurs de date/heure à une
seule colonne
Les contraintes sur les expressions booléennes sont décrites dans la rubrique
CALCULATE.
DAX
= TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey],
ALL('DateTime'), "6/30")
Dans cet exemple, year_end_date peut être spécifié sous les formes « 6/30 »,
« juin 30 » ou « 30 juin » ou par toute chaîne résolue en mois/jour. Toutefois, il est
recommandé de spécifier le paramètre year_end_date au format « mois/jour »
(comme indiqué) pour garantir la résolution correcte de la chaîne en date.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery
quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au
niveau des lignes (RLS).
Exemple
L’exemple de formule suivant crée une mesure qui calcule la somme ou le total des
ventes Internet de l’année en cours jusqu’à ce jour.
DAX
= TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey])
Voir aussi
ALL
CALCULATE
DATESYTD
TOTALMTD
TOTALQTD
Commentaires
Cette page a-t-elle été utile ? Yes No
Instructions
Article • 20/10/2023
DEFINE (Mot clé) Introduit une instruction avec une ou plusieurs définitions d’entité qui
peuvent être appliquées à une ou plusieurs instructions EVALUATE.
EVALUATE (Mot clé) Introduit une instruction contenant une expression de table nécessaire pour
exécuter une requête DAX.
MEASURE (Mot clé) Introduit une définition de mesure qui peut être utilisée dans une ou
plusieurs instructions EVALUATE d’une requête.
ORDER (Mot clé) Introduit une instruction qui définit l’ordre de tri des résultats de la requête
BY retournés par une instruction EVALUATE.
START AT (Mot clé) Introduit une instruction qui définit la valeur de départ à laquelle sont
retournés les résultats de la requête d’une instruction ORDER BY.
VAR (Mot clé) Stocke le résultat d’une expression sous forme de variable nommée, qui
peut ensuite être passée comme argument à d’autres expressions de mesure.
Commentaires
Cette page a-t-elle été utile ? Yes No
DÉFINIR
Article • 20/10/2023
Introduit une instruction avec une ou plusieurs définitions d’entité qui peuvent être
appliquées à une ou plusieurs instructions EVALUATE d’une requête DAX.
Syntaxe
DAX
[DEFINE
(
(MEASURE <table name>[<measure name>] = <scalar expression>) |
(VAR <var name> = <table or scalar expression>) |
(TABLE <table name> = <table expression>) |
(COLUMN <table name>[<column name>] = <scalar expression>) |
) +
]
Paramètres
Terme Définition
name Nom d’une définition de mesure, variable, table ou colonne. Il ne peut pas s’agir
d’une expression. Le nom n’a pas besoin d’être unique. Le nom existe seulement
pour la durée de la requête.
expression Toute expression DAX qui retourne une table ou une valeur scalaire. L’expression
peut utiliser n’importe quelle entité définie. Si vous devez convertir une expression
scalaire en expression de table, wrappez l’expression dans un constructeur de table
avec des accolades {} ou utilisez la fonction ROW() pour retourner une seule table
de lignes.
[1]Attention : Les définitions de TABLE et COLUMN limitées aux requêtes sont destinées
à une utilisation interne uniquement. Même si vous pouvez définir des expressions
TABLE et COLUMN pour une requête sans erreur de syntaxe, elles peuvent produire des
erreurs d’exécution et ne sont pas recommandées.
Remarques
Une requête DAX peut avoir plusieurs instructions EVALUATE, mais seulement une
instruction DEFINE. Les définitions de l’instruction DEFINE peuvent s’appliquer à
toutes les instructions EVALUATE de la requête.
Les définitions de mesure pour une requête remplacent les mesures d’un modèle
du même nom.
Les noms de VAR ont des restrictions uniques. Pour en savoir plus, consultez VAR -
Paramètres.
Pour en savoir plus sur l’utilisation d’une instruction DEFINE, consultez Requêtes
DAX.
Voir aussi
EVALUATE
VAR
MEASURE
Requêtes DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
EVALUATE
Article • 20/10/2023
Introduit une instruction contenant une expression de table nécessaire dans une requête
DAX.
Syntaxe
DAX
EVALUATE <table>
Paramètres
Terme Définition
Valeur de retour
Résultat d’une expression de table.
Remarques
Une requête DAX peut contenir plusieurs instructions EVALUATE.
Pour en savoir plus sur l’utilisation des instructions EVALUATE, consultez Requêtes
DAX.
Exemple
DAX
EVALUATE
'Internet Sales'
Retourne toutes les lignes et colonnes de la table Internet Sales sous la forme d’une
table.
Voir aussi
ORDER BY
START AT
DEFINE
VAR
Requêtes DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
MEASURE
Article • 20/10/2023
Introduit une définition de mesure dans une instruction DEFINE d’une requête DAX.
Syntaxe
DAX
[DEFINE
(
MEASURE <table name>[<measure name>] = <scalar expression>
) +
]
Paramètres
Terme Définition
measure name Nom de la mesure. Il ne peut pas s’agir d’une expression. Le nom n’a pas
besoin d’être unique. Le nom existe seulement pour la durée de la requête.
Valeur retournée
Résultat calculé de l’expression de mesure.
Remarques
Les définitions de mesure pour une requête remplacent les mesures du modèle du
même nom pendant la durée de la requête. Elles n’affectent pas la mesure du
modèle.
L’expression de mesure peut être utilisée avec n’importe quelle autre expression
dans la même requête.
Pour en savoir plus sur l’utilisation des instructions MEASURE, consultez Requêtes
DAX.
Voir aussi
DEFINE
EVALUATE
VAR
Requêtes DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
ORDER BY
Article • 20/10/2023
Introduit une instruction qui définit l’ordre de tri des résultats de requête retournés par
une instruction EVALUATE dans une requête DAX.
Syntaxe
DAX
Paramètres
Terme Définition
expression Toute expression DAX qui retourne une valeur scalaire unique.
Valeur renvoyée
Résultat d’une instruction EVALUATE dans l’ordre croissant (ASC) ou décroissant (DESC).
Remarques
Pour en savoir plus sur l’utilisation des instructions ORDER BY, consultez Requêtes DAX.
Voir aussi
START AT
EVALUATE
VAR
DEFINE
Requêtes DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
START AT
Article • 20/10/2023
Introduit une instruction qui définit la valeur de départ à laquelle sont retournés les
résultats de requête d’une clause ORDER BY dans une instruction EVALUATE d’une
requête DAX.
Syntaxe
DAX
Paramètres
Terme Définition
parameter Nom d’un paramètre dans une instruction XMLA précédé du caractère @ .
Remarques
Les arguments de START AT ont une correspondance un-à-un avec les colonnes de
l’instruction ORDER BY. Il peut y avoir autant d’arguments dans l’instruction START
AT que dans l’instruction ORDER BY, mais pas plus. Le premier argument de
l’instruction START AT définit la valeur de départ de la colonne 1 des colonnes
ORDER BY. Le deuxième argument de l’instruction START AT définit la valeur de
départ de la colonne 2 des colonnes ORDER BY dans les lignes correspondant à la
première valeur de la colonne 1.
Pour en savoir plus sur l’utilisation des instructions START AT, consultez Requêtes
DAX.
Voir aussi
ORDER BY
EVALUATE
VAR
DEFINE
Requêtes DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
VAR
Article • 20/10/2023
Stocke le résultat d’une expression sous forme de variable nommée, qui peut ensuite
être passée comme argument à d’autres expressions de mesure. Une fois que les valeurs
obtenues ont été calculées pour une expression de variable, ces valeurs ne changent
pas, même si la variable est référencée dans une autre expression.
Syntaxe
DAX
Paramètres
Terme Définition
Valeur de retour
Variable nommée contenant le résultat de l’argument d’expression.
Notes
Une expression passée comme argument à VAR peut contenir une autre
déclaration VAR.
Lors du référencement d’une variable :
Les mesures ne peuvent pas faire référence à des variables définies en dehors
de l’expression de mesure, mais peuvent faire référence à des variables
d’étendue fonctionnelle définies dans l’expression.
Les variables peuvent faire référence à des mesures.
Les variables peuvent faire référence à des variables définies précédemment.
Les colonnes contenues dans des variables de table ne peuvent pas être
référencées au moyen d’une syntaxe TableName[ColumnName].
Pour en savoir plus sur l’utilisation de VAR dans une requête DAX, consultez
Requêtes DAX.
Exemple
Pour calculer un pourcentage de croissance d’une année sur l’autre sans utiliser de
variable, vous pouvez créer trois mesures distinctes. Cette première mesure calcule la
somme des montants des ventes :
DAX
Une deuxième mesure calcule le montant des ventes pour l’année précédente :
DAX
SalesAmount PreviousYear =
CALCULATE([Sum of SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date])
)
Vous pouvez ensuite créer une troisième mesure qui combine les deux autres mesures
pour calculer le pourcentage de croissance. Notez que la mesure Sum of SalesAmount
est utilisée à deux reprises : une première fois pour déterminer s’il existe une vente, et
une deuxième fois pour calculer un pourcentage.
DAX
En utilisant une variable, vous pouvez créer une seule mesure qui calcule le même
résultat :
DAX
VAR SalesLastYear =
CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR (
'Calendar'[Date] ) )
En utilisant une variable, vous pouvez obtenir le même résultat, mais de façon plus
lisible. Par ailleurs, comme le résultat de l’expression est stocké dans la variable, les
performances de la mesure peuvent être considérablement améliorées, car elle n’a pas
besoin d’être recalculée à chaque utilisation.
Voir aussi
Utiliser des variables pour améliorer vos formules DAX
Requêtes DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
Glossaire DAX
Article • 20/10/2023
Requête analytique
Les visuels Power BI interrogent un modèle de données à l’aide d’une requête
analytique. Une requête analytique s’efforce de réduire les volumes de données
potentiellement importants et les complexités des modèles en trois phases distinctes :
filtrage, regroupement et résumé. Une requête analytique est créée automatiquement
dès lors que des champs sont affectés aux puits de visuels de rapport. Les auteurs de
rapports peuvent contrôler le comportement des affectations de champs en renommant
les champs, en modifiant la technique de résumé ou en désactivant le résumé pour
obtenir un regroupement. Pendant la phase de conception d’un rapport, il est possible
d’ajouter des filtres au rapport, à une page de rapport ou à un visuel. En mode lecture,
les filtres peuvent être modifiés dans le volet Filtres ou par des interactions avec des
segments et d’autres visuels (filtrage croisé).
BLANK
DAX définit l’absence d’une valeur avec BLANK. C’est l’équivalent de la valeur NULL en
SQL, mais leur comportement n’est pas tout à fait identique. Il s’inscrit davantage dans
la logique d’Excel dans sa façon de définir une cellule vide. BLANK est évalué à zéro ou à
une chaîne vide quand il est combiné avec d’autres opérations. Par exemple, BLANK +
20 = 20. Utilisez toujours des majuscules ; le pluriel est BLANKs, avec un « s » minuscule.
Colonne calculée
Calcul de modèle qui vise à ajouter une colonne à un modèle tabulaire en écrivant une
formule DAX. La formule doit retourner une valeur scalaire, et elle est évaluée pour
chaque ligne de la table. Une colonne calculée peut être ajoutée à une table en mode
de stockage Importer ou DirectQuery.
Mesure calculée
Dans la modélisation tabulaire, il n’existe pas ce concept de mesure calculée. Il y est
plutôt question de mesure. Le mot calculé est utilisé pour décrire les tables calculées et
les colonnes calculées. Il s’agit d’un moyen de les distinguer des tables et des colonnes
issues de Power Query. Le concept de mesure est étranger à Power Query.
Table calculée
Calcul de modèle qui vise à ajouter une table à un modèle tabulaire en écrivant une
formule DAX. La formule doit retourner un objet table. La table qui en résulte utilise le
mode de stockage Importer.
Calcul
Processus délibéré qui transforme une ou plusieurs entrées en un ou plusieurs résultats.
Dans un modèle de données tabulaires, un calcul peut être un objet modèle : une table
calculée, une colonne calculée ou une mesure.
Contexte
Décrit l’environnement dans lequel une formule DAX est évaluée. Il existe deux types de
contexte : le contexte de ligne et le contexte de filtre. Le contexte de ligne représente la
« ligne actuelle ». Il sert à évaluer les formules de colonne calculée et les expressions
utilisées par les itérateurs de table. Le contexte de filtre sert à évaluer les mesures. Il
représente les filtres appliqués directement aux colonnes de modèle et aux filtres
propagés par des relations de modèle.
DAX
Le langage DAX (Data Analysis Expressions) est un langage de formules pour Power
Pivot dans Excel, Power BI, Azure Analysis Services et la modélisation tabulaire dans SQL
Server Analysis Services. Vous pouvez aussi utiliser DAX pour ajouter des calculs de
modèle de données et définir des règles de sécurité au niveau des lignes (RLS).
Sécurité dynamique
Quand des règles de sécurité au niveau des lignes (RLS) sont mises en place en utilisant
l’identité de l’utilisateur du rapport. Les règles filtrent les tables de modèle en utilisant le
nom de compte de l’utilisateur, ce qui peut être effectué avec les fonctions USERNAME
ou USERPRINCIPALNAME. Consultez Sécurité au niveau des lignes.
Expression
Unité de logique DAX qui fait l’objet d’une évaluation avant qu’un résultat soit retourné.
Les expressions peuvent déclarer des variables. Dans ce cas, une sous-expression leur
est affectée et elles doivent inclure une instruction RETURN qui génère une expression
finale. Les expressions sont construites à l’aide d’objets modèle (tables, colonnes ou
mesures), de fonctions, d’opérateurs ou de constantes.
Champ
Ressource de modèle de données présentée dans le volet Champs. Les champs servent
à configurer des filtres de rapport et des visuels. Les champs sont constitués de
colonnes de modèle, de niveaux hiérarchiques et de mesures.
Formule
Une ou plusieurs expressions DAX servant à définir un calcul de modèle. Les expressions
internes sont appelées sous-expressions. Le pluriel est formules.
Fonction
Les fonctions DAX contiennent des arguments qui permettent de transmettre des
paramètres. Les formules peuvent utiliser de nombreux appels de fonction, avec la
possibilité d’imbriquer des fonctions dans d’autres fonctions. Dans une formule, les
noms des fonctions doivent être suivis de parenthèses. Les paramètres entre
parenthèses sont transmis.
Mesure implicite
Calcul généré automatiquement en configurant un visuel Power BI pour résumer les
valeurs de colonne. Les colonnes numériques prennent en charge la plus large palette
de résumés, notamment : Somme, Moyenne, Minimum, Maximum, Nombre (distinct),
Nombre, Écart type, Variance ou Médiane. Les colonnes d’autres types de données
peuvent aussi être résumées. Les colonnes Texte peuvent être résumées avec : Première
(par ordre alphabétique), Dernière (par ordre alphabétique), Nombre (distinct) ou
Nombre. Les colonnes Date peuvent être résumées avec : Plus ancienne, Plus récente,
Nombre (distinct) ou Nombre. Les colonnes booléennes peuvent être résumées avec :
Nombre (distinct) ou Nombre.
Fonction itératrice
Fonction DAX qui énumère toutes les lignes d’une table donnée et évalue une
expression donnée pour chaque ligne. Elle offre de la flexibilité et permet de contrôler la
façon dont les calculs de modèle résument les données.
MDX
Le langage MDX (Multidimensional Expressions) est un langage de formules pour les
modèles multidimensionnels SQL Server Analysis Services (aussi appelés cubes). Si MDX
permet d’interroger des modèles tabulaires, il ne permet pas en revanche de définir des
mesures implicites. Il permet seulement d’interroger les mesures déjà définies dans le
modèle.
Mesure
Calcul qui effectue le résumé. Les mesures sont soit implicites, soit explicites. Une
mesure explicite est un calcul ajouté à un modèle de données tabulaire en écrivant une
formule DAX. Une formule de mesure doit retourner une valeur scalaire. Dans le volet
Champs, les mesures explicites sont parées d’une icône de calculatrice. Les mesures
explicites s’avèrent nécessaires quand le modèle est interrogé à l’aide d’expressions
multidimensionnelles (MDX), comme c’est le cas quand la fonction d’analyse est utilisée
dans Excel. En général, une mesure explicite s’appelle tout simplement une mesure.
Groupe de mesures
Table de modèle qui contient au moins une mesure et aucune hiérarchie ni colonne
visible. Dans le volet Champs, chaque groupe de mesures est paré d’une icône à
plusieurs calculatrices. Les groupes de mesures sont listés en haut du volet Champs et
triés par ordre alphabétique des noms.
Calcul de modèle
Formule nommée servant à ajouter une table calculée, une colonne calculée ou une
mesure à un modèle de données tabulaire. Sa structure est <NOM> = <FORMULE>. La
plupart des calculs sont ajoutés par les modeleurs de données dans Power BI Desktop,
mais il est également possible d’ajouter des mesures à un rapport à connexion active.
Consultez Mesures de rapport.
Mesures rapides
Fonctionnalité dans Power BI Desktop qui dispense de l’écriture de formules DAX pour
les mesures couramment définies. Les mesures rapides incluent la moyenne par
catégorie, le rang et la différence par rapport à la ligne de base.
Mesures de rapport
Également appelées mesures au niveau du rapport. Elles sont ajoutées à un rapport à
connexion active dans Power BI Desktop en écrivant une formule DAX, mais uniquement
pour les connexions aux modèles Power BI ou aux modèles tabulaires Analysis Services.
Scalaire
Dans DAX, une valeur scalaire est une valeur unique. Une valeur scalaire peut être de
n’importe quel type de données : Decimal, Integer, DateTime, String, Currency, Boolean
(Décimal, Entier, DateHeure, Chaîne, Devise, Booléen). Une valeur scalaire peut être le
résultat d’une expression calculée à partir de plusieurs valeurs. Par exemple, une
fonction d’agrégation telle que MAX() retourne une valeur maximale unique à partir
d’un ensemble de valeurs à partir duquel effectuer l’évaluation.
Résumé
Opération appliquée aux valeurs d’une colonne. Consultez mesure.
Intelligence temporelle
L’intelligence temporelle porte sur les calculs dans le temps, comme le cumul annuel
jusqu’à ce jour (YTD).
Paramètre de scénario
Fonctionnalité Power BI Desktop qui permet d’accepter une entrée utilisateur via des
segments. Chaque paramètre crée une table calculée à une seule colonne et une mesure
qui retourne une seule valeur sélectionnée. La mesure peut être utilisée dans des calculs
de modèle pour répondre à l’entrée de l’utilisateur.
Commentaires
Cette page a-t-elle été utile ? Yes No
Opérateurs DAX
Article • 20/10/2023
Le langage DAX (Data Analysis Expression) a recours à des opérateurs pour créer des
expressions qui comparent des valeurs, effectuent des calculs arithmétiques ou utilisent
des chaînes.
Types d’opérateurs
Il existe quatre types d’opérateurs de calcul : les opérateurs arithmétiques, les
opérateurs de comparaison, les opérateurs de concaténation de texte et les opérateurs
logiques.
Opérateurs arithmétiques
Pour effectuer des opérations mathématiques de base comme des additions, des
soustractions ou des multiplications, combiner des nombres et produire des résultats
numériques, utilisez les opérateurs arithmétiques suivants.
7 Notes
Tous les opérateurs de comparaison sauf == considèrent les valeurs vides comme étant
égales au nombre 0, à une chaîne vide (""), à DATE(1899, 12, 30) ou à FALSE. [Column] =
0 est donc TRUE quand la valeur de [Column] est 0 ou vide. En revanche, [Column] == 0
est TRUE uniquement quand la valeur de [Column] est 0.
& (esperluette) Connecte ou concatène deux valeurs pour produire une [Region] & ", " &
valeur de texte continue. [City]
Opérateurs logiques
Utilisez les opérateurs logiques (&&) et (||) pour combiner des expressions afin de
produire un résultat unique.
Opérateur de Signification Exemples
texte
&& (double Crée une condition AND entre deux expressions ([Region] = "France")
esperluette) ayant chacune un résultat booléen. Si les deux && ([BikeBuyer] =
expressions retournent TRUE, la combinaison des "yes"))
expressions retourne également TRUE ; sinon, elle
retourne FALSE.
Ordre de calcul
Une expression évalue les opérateurs et les valeurs dans un ordre spécifique. Toutes les
expressions commencent toujours par un signe égal (=). Le signe égal indique que les
caractères qui s’ensuivent constituent une expression.
Après le signe égal se trouvent les éléments à calculer (opérandes), lesquels sont
séparés par des opérateurs de calcul. Les expressions sont toujours lues de gauche à
droite, mais vous pouvez contrôler dans une certaine mesure l’ordre dans lequel les
éléments sont regroupés à l’aide de parenthèses.
* et / Multiplication et division
+ et – Addition et soustraction
=,==,<,>,<=,>=,<>,IN Comparaison
DAX
=5+2*3
En revanche, si vous utilisez des parenthèses pour changer la syntaxe, l’ordre est
modifié. Désormais, 5 et 2 sont additionnés, puis le résultat est multiplié par 3 pour
produire 21.
DAX
=(5+2)*3
DAX
Dans l’exemple suivant, l’opérateur d’élévation à une puissance est appliqué en premier,
conformément aux règles de précédence des opérateurs, puis l’opérateur de signe est
appliqué. Le résultat de cette expression est -4.
DAX
=-2^2
Pour faire en sorte que l’opérateur de signe soit appliqué en premier à la valeur
numérique, vous pouvez utiliser des parenthèses pour contrôler les opérateurs, comme
dans l’exemple suivant. Le résultat de cette expression est 4.
DAX
= (-2)^2
Compatibilité
À l’instar de Microsoft Excel, DAX permet de gérer et de comparer facilement différents
types de données. Toutefois, le moteur de calcul sous-jacent étant basé sur SQL Server
Analysis Services, il propose en plus les fonctionnalités avancées d’un magasin de
données relationnelles, notamment une prise en charge plus riche des types de date et
d’heure. Dans certains cas, les résultats des calculs ou le comportement des fonctions
peuvent différer de ceux d’Excel. En outre, DAX prend en charge plus de types de
données qu’Excel. Cette section décrit les principales différences.
1. Les deux opérandes sont convertis pour obtenir le plus grand type de données
commun possible.
2. L’opérateur est appliqué, si possible.
Par exemple, supposons que vous souhaitiez combiner deux nombres. Un nombre
provient d’une formule, par exemple = [Price] * .20 , et le résultat peut contenir
plusieurs décimales. L’autre nombre est un entier qui est fourni sous la forme d’une
valeur de chaîne.
Dans ce cas, DAX convertit les deux nombres en nombres réels dans un format
numérique, en utilisant le plus grand format numérique pouvant stocker les deux types
de nombres. DAX applique ensuite la multiplication.
Selon la combinaison de types de données, le forçage de type peut ne pas être appliqué
aux opérations de comparaison. Pour obtenir la liste complète des types de données
pris en charge par DAX, consultez Types de données pris en charge dans les modèles
tabulaires et Types de données dans Power BI Desktop.
Les entiers, nombres réels, devises, valeurs de date/heure et valeurs vides sont
considérés comme des valeurs numériques à des fins de comparaison. La valeur vide est
égale à zéro lors d’une comparaison. Les combinaisons de types de données suivantes
sont prises en charge pour les opérations de comparaison.
Numérique Numérique
Booléen Boolean
String Chaîne
D’autres comparaisons de types de données mixtes retournent une erreur. Par exemple,
une formule comme ="1" > 0 retourne une erreur indiquant que les opérations DAX de
comparaison ne prennent pas en charge la comparaison des valeurs de type Texte avec des
valeurs de type Entier.
Types de données utilisés dans DAX Types de données utilisés dans Excel
Chaîne Chaîne
Booléen Boolean
Date/Heure Variante
Devise Devise
Chaque fois que vous copiez et collez des formules à partir d’Excel, veillez à examiner
attentivement la formule car certains opérateurs ou éléments qu’elle contient peuvent
ne pas être valides. En cas de doute sur l’ordre dans lequel les opérations sont
effectuées, il est recommandé d’utiliser des parenthèses pour contrôler l’ordre des
opérations et lever toute ambiguïté quant au résultat.
Voir aussi
Syntaxe DAX
Nommage des paramètres DAX
Commentaires
Cette page a-t-elle été utile ? Yes No
Requêtes DAX
Article • 20/10/2023
Les clients de création de rapports comme Power BI et Excel exécutent des requêtes
DAX chaque fois qu’un champ est placé sur un rapport ou qu’un filtre est appliqué. En
utilisant SQL Server Management Studio (SSMS), Power BI Report Builder et des outils
open source comme DAX Studio , vous pouvez créer et exécuter vos propres requêtes
DAX. Les requêtes DAX retournent des résultats sous forme de table directement dans
l’outil, ce qui vous permet de rapidement créer des formules DAX et tester leurs
performances.
Avant de découvrir les requêtes, il est important de bien comprendre les bases de DAX.
Si vous ne l’avez pas encore fait, n’hésitez pas à consulter Vue d’ensemble de DAX.
Mots clés
Les requêtes DAX ont une syntaxe simple composée d’un seul mot clé obligatoire,
EVALUATE, et de plusieurs mots clés facultatifs : ORDER BY, START AT, DEFINE, MEASURE,
VAR, TABLE et COLUMN. Chaque mot clé définit une instruction utilisée pour la durée de
la requête.
EVALUATE (obligatoire)
Au niveau le plus basique, une requête DAX est une instruction EVALUATE contenant
une expression de table. Au moins une instruction EVALUATE est obligatoire, mais une
requête peut contenir n’importe quel nombre d’instructions EVALUATE.
Syntaxe d’EVALUATE
DAX
EVALUATE <table>
Paramètres d’EVALUATE
Terme Définition
DAX
EVALUATE
'Internet Sales'
Retourne toutes les lignes et colonnes de la table Internet Sales sous la forme d’une
table.
ORDER BY (facultatif)
Le mot clé facultatif ORDER BY définit une ou plusieurs expressions utilisées pour trier
les résultats d’une requête. Toute expression qui peut être évaluée pour chaque ligne du
résultat est valide.
Syntaxe d’ORDER BY
DAX
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]
Paramètres d’ORDER BY
Terme Définition
expression Toute expression DAX qui retourne une valeur scalaire unique.
Terme Définition
Exemple d’ORDER BY
DAX
EVALUATE
'Internet Sales'
ORDER BY
'Internet Sales'[Order Date]
Retourne toutes les lignes et colonnes de la table Internet Sales, dans l’ordre croissant
du champ Order Date, sous forme de table.
START AT (facultatif)
Le mot clé facultatif START AT est utilisé dans une clause ORDER BY. Il définit la valeur à
laquelle commencent les résultats de la requête.
Syntaxe de START AT
DAX
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]
Paramètres de START AT
Terme Définition
parameter Nom d’un paramètre dans une instruction XMLA précédé du caractère @ .
Les arguments de START AT ont des correspondances uniques avec les colonnes de la
clause ORDER BY. La clause START AT peut inclure autant d’arguments qu’il en existe
dans la clause ORDER BY, mais pas plus. Le premier argument de la clause START AT
définit la valeur de départ de la colonne 1 des colonnes ORDER BY. Le deuxième
argument de la clause START AT définit la valeur de départ de la colonne 2 des colonnes
ORDER BY dans les lignes correspondant à la première valeur de la colonne 1.
Exemple de START AT
DAX
EVALUATE
'Internet Sales'
ORDER BY
'Internet Sales'[Sales Order Number]
START AT "SO7000"
Retourne toutes les lignes et colonnes de la table Internet Sales, par ordre croissant du
champ Sales Order Number, sous forme de table, en commençant par SO7000.
DEFINE (facultatif)
Le mot clé DEFINE facultatif introduit une ou plusieurs définitions d’entité calculées qui
existent uniquement pendant la durée de la requête. Les définitions précèdent
l’instruction EVALUATE et sont valides pour toutes les instructions EVALUATE de la
requête. Les définitions peuvent être des variables, des mesures, des tables1 et des
colonnes1. Les définitions peuvent référencer d’autres définitions qui apparaissent avant
ou après la définition actuelle. Au moins une définition est obligatoire si le mot clé
DEFINE est compris dans une requête.
Syntaxe de DEFINE
DAX
[DEFINE
(
(MEASURE <table name>[<measure name>] = <scalar expression>) |
(VAR <var name> = <table or scalar expression>) |
(TABLE <table name> = <table expression>) |
(COLUMN <table name>[<column name>] = <scalar expression>) |
) +
]
Paramètres de DEFINE
Terme Définition
expression Toute expression DAX qui retourne une table ou une valeur scalaire. L’expression
peut utiliser n’importe quelle entité définie. Si vous devez convertir une expression
scalaire en expression de table, wrappez l’expression dans un constructeur de table
avec des accolades {} ou utilisez la fonction ROW() pour retourner une seule table
de lignes.
[1]Attention : Les définitions de TABLE et COLUMN limitées aux requêtes sont destinées
à une utilisation interne uniquement. Même si vous pouvez définir des expressions
TABLE et COLUMN pour une requête sans erreur de syntaxe, elles peuvent produire des
erreurs d’exécution et ne sont pas recommandées.
Une requête DAX peut avoir plusieurs instructions EVALUATE, mais seulement une
instruction DEFINE. Les définitions de l’instruction DEFINE peuvent s’appliquer à
toutes les instructions EVALUATE de la requête.
Les noms de VAR ont des restrictions uniques. Pour en savoir plus, consultez VAR -
Paramètres.
Exemple de DEFINE
DAX
DEFINE
MEASURE 'Internet Sales'[Internet Total Sales] =
SUM ( 'Internet Sales'[Sales Amount] )
EVALUATE
SUMMARIZECOLUMNS (
'Date'[Calendar Year],
TREATAS (
{
2013,
2014
},
'Date'[Calendar Year]
),
"Total Sales", [Internet Total Sales],
"Combined Years Total Sales",
CALCULATE (
[Internet Total Sales],
ALLSELECTED ( 'Date'[Calendar Year] )
)
)
ORDER BY [Calendar Year]
Retourne les ventes totales calculées pour les années 2013 et 2014 ainsi que les ventes
totales calculées combinées pour les années 2013 et 2014 sous la forme d’une table. La
mesure Internet Total Sales dans l’instruction DEFINE est utilisée dans les expressions
Total Sales et Combined Years Total Sales.
Les paramètres définis dans la section de paramètres et qui ne sont pas utilisés
dans l’élément <STATEMENT> génèrent une réponse d’erreur en XMLA. Les
paramètres utilisés et non définis dans l’élément <Parameters> génèrent une
réponse d’erreur en XMLA.
Voir aussi
Instructions DAX
SUMMARIZECOLUMNS
TREATAS
FILTER
Commentaires
Cette page a-t-elle été utile ? Yes No
Conventions de nommage des
paramètres DAX
Article • 20/10/2023
Les noms de paramètre sont normalisés dans la référence DAX pour faciliter l’utilisation
et la compréhension des fonctions.
Noms de paramètre
Terme Définition
expression Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée plusieurs fois (pour chaque ligne/contexte).
value Toute expression DAX qui retourne une valeur scalaire unique où l’expression doit
être évaluée une seule fois avant toutes les autres opérations.
tableName Nom d’une table existante, spécifié avec la syntaxe DAX standard. Il ne peut pas
s’agir d’une expression.
columnName Nom, généralement complet, d’une colonne existante utilisant la syntaxe DAX
standard. Il ne peut pas s’agir d’une expression.
name Constante de chaîne qui sera utilisée pour fournir le nom d’un nouvel objet.
Terme Définition
prefixing Les noms de paramètre peuvent être qualifiés plus précisément avec un préfixe
descriptif de la façon dont l’argument est utilisé et pour éviter toute lecture ambiguë
des paramètres. Par exemple :
Result_ColumnName : fait référence à une colonne existante utilisée pour obtenir les
Terme Définition
omitting Les noms de paramètre sont omis si le préfixe est suffisamment clair pour décrire le
paramètre.
Commentaires
Cette page a-t-elle été utile ? Yes No
Syntaxe DAX
Article • 20/10/2023
Des références à des colonnes ou des tables. Le langage DAX utilise toujours des
tables et des colonnes comme entrées de fonctions, jamais un tableau ou un
ensemble arbitraire de valeurs.
Des expressions. Une expression peut contenir un ou tous les éléments suivants :
opérateurs, constantes ou références à des colonnes.
Formule Résultat
=3 3
Formule Résultat
= "Sales" Sales
= Si vous utilisez cette formule dans la table Sales, vous obtiendrez la valeur de
'Sales'[Amount] la colonne Amount dans la table Sales pour la ligne actuelle.
= (0,03 * Trois pour cent de la valeur dans la colonne Amount de la table actuelle.
[Amount])
Même si cette formule peut être utilisée pour calculer un pourcentage, le
=0.03 * résultat n’est pas affiché sous forme de pourcentage, sauf si vous appliquez la
[Amount] mise en forme dans la table.
Les formules peuvent se comporter différemment selon leur utilisation. Vous devez
toujours connaître le contexte et la façon dont les données que vous utilisez dans la
formule sont liées à d’autres données qui risquent d’être utilisées dans le calcul.
Conditions de nommage
Un modèle de données contient souvent plusieurs tables. Ensemble, les tables et leurs
colonnes contiennent une base de données stockée dans le moteur d’analytique en
mémoire (VertiPaq). Dans cette base de données, toutes les tables doivent avoir des
noms uniques. Les noms des colonnes doivent également être uniques dans chaque
table. Tous les noms d’objet sont insensibles à la casse ; par exemple, les noms SALES et
Sales représentent la même table.
Chaque colonne et chaque mesure que vous ajoutez à un modèle de données existant
doivent appartenir à une table spécifique. Vous spécifiez la table qui contient la colonne
implicitement quand vous créez une colonne calculée dans une table, ou explicitement
quand vous créez une mesure et spécifiez le nom de la table où la définition de la
mesure doit être stockée.
Quand vous utilisez une table ou une colonne comme entrée d’une fonction, vous devez
généralement qualifier le nom de la colonne. Le nom qualifié complet d’une colonne est
le nom de la table, suivi du nom de la colonne entre crochets : par exemple, 'U.S.
Sales'[Products]. Un nom qualifié complet est toujours obligatoire quand vous
référencez une colonne dans les contextes suivants :
Un nom de colonne non qualifié se limite au nom de la colonne entre crochets : par
exemple, [Sales Amount]. Par exemple, quand vous référencez une valeur scalaire à
partir de la même ligne de la table actuelle, vous pouvez utiliser le nom de colonne non
qualifié.
Si le nom d’une table contient des espaces, des mots clés réservés ou des caractères
non autorisés, vous devez placer le nom de la table entre guillemets simples. Vous devez
également mettre les noms de table entre guillemets si le nom contient des caractères
qui ne sont pas dans la plage de caractères alphanumériques ANSI, que vos paramètres
régionaux prennent en charge ou non le jeu de caractères. Par exemple, si vous ouvrez
un classeur qui contient des noms de table écrits en caractères cyrilliques, tels que
« Таблица », le nom de la table doit être placé entre guillemets, même s’il ne contient
pas d’espaces.
7 Notes
Pour faciliter la saisie des noms complets des colonnes, utilisez la fonctionnalité
d’autocomplétion dans l’éditeur de formule.
Tables
Les noms de table sont obligatoires chaque fois que la colonne provient d’une
table différente de la table actuelle. Les noms de table doivent être uniques dans la
base de données.
Les noms de table doivent être placés entre guillemets simples s’ils contiennent
des espaces, d’autres caractères spéciaux ou des caractères alphanumériques qui
ne font pas partie de l’alphabet.
Mesures
Chaque nom de mesure doit être unique dans un modèle. Par conséquent, le nom
de la table est facultatif devant un nom de mesure quand une mesure existante est
référencée. Toutefois, lorsque vous créez une mesure, vous devez toujours spécifier
une table dans laquelle la définition de la mesure est stockée.
Colonnes
Les noms de colonne doivent être uniques dans le contexte d’une table ; cependant,
plusieurs tables peuvent avoir des colonnes avec le même nom (la désambiguïsation
vient avec le nom de la table).
En général, les colonnes peuvent être référencées sans référencer la table de base à
laquelle elles appartiennent, sauf s’il risque d’y avoir un conflit de noms à résoudre ou
avec certaines fonctions qui demandent que les noms de colonne soient qualifiés
complets.
7 Notes
Caractères spéciaux
Les caractères et les types de caractères suivants ne sont pas valides dans les noms de
table, de colonne ou de mesure :
Espaces de début ou de fin ; à moins que les espaces ne soient encadrés par des
délimiteurs de nom, des crochets ou des apostrophes simples.
Caractères de contrôle
Les caractères suivants qui ne sont pas valides dans les noms d’objet :
.,;':/\*|?&%$!+=()[]{}<>
Nom du tableau 'Canada Sales' Si le nom contient des espaces, des tabulations ou d’autres
caractères spéciaux, mettez le nom entre guillemets
simples.
Nom de colonne [Amount] Le nom non qualifié est juste le nom de la colonne entre
non qualifié crochets. Les contextes dans lesquels vous pouvez utiliser
le nom non qualifié incluent des formules dans une
colonne calculée au sein de la même table ou dans une
fonction d’agrégation qui analyse la même table.
Colonne qualifiée 'Canada Le nom de la table contient des espaces, il doit donc être
complète dans Sales'[Qty] entouré de guillemets simples.
une table avec
des espaces
Autres restrictions
La syntaxe nécessaire pour chaque fonction et le type d’opération qu’elle peut effectuer
varient grandement selon la fonction. En général toutefois, les règles suivantes
s’appliquent à toutes les formules et expressions :
Les formules et expressions DAX ne peuvent pas modifier ni insérer des valeurs
individuelles dans les tables.
Vous ne pouvez pas créer de lignes calculées en utilisant DAX. Vous pouvez créer
uniquement des colonnes calculées et des mesures.
Lorsque vous définissez des colonnes calculées, vous pouvez imbriquer des
fonctions à n’importe quel niveau.
DAX contient plusieurs fonctions qui retournent une table. En général, vous utilisez
les valeurs retournées par ces fonctions comme entrée pour d’autres fonctions, qui
nécessitent une table comme entrée.
- (signe de soustraction
* (multiplication)
/ (division)
> (supérieur à)
< (inférieur à)
|| (ou)
Type de données
Vous n’avez pas besoin de caster, convertir ou spécifier le type de données d’une
colonne ou d’une valeur que vous utilisez dans une formule DAX. Lorsque vous utilisez
des données dans une formule DAX, DAX identifie automatiquement les types de
données dans les colonnes référencées et les valeurs que vous tapez, puis effectue des
conversions implicites si nécessaire pour effectuer l’opération spécifiée.
Par exemple, si vous essayez d’ajouter un nombre à une valeur de date, le moteur
interprète l’opération dans le contexte de la fonction et convertit les nombres en un
type de données courant, puis présente le résultat dans le format prévu, une date.
Toutefois, il existe certaines limitations sur les valeurs qui peuvent être converties avec
succès. Si une valeur ou une colonne a un type de données qui est incompatible avec
l’opération en cours, DAX retourne une erreur. De plus, DAX ne fournit pas de fonctions
qui vous laissent explicitement changer, convertir ou caster le type de données des
données existantes que vous avez importées dans un modèle de données.
) Important
Certaines fonctions retournent des valeurs scalaires, notamment des chaînes, tandis que
d’autres marchent avec des nombres, entiers et réels, ou des dates et des heures. Le
type de données nécessaire pour chaque fonction est décrit dans la section Fonctions
DAX.
Vous pouvez utiliser des tables contenant plusieurs colonnes et plusieurs lignes de
données comme argument d’une fonction. Certaines fonctions retournent aussi des
tables, qui sont stockées en mémoire et peuvent être utilisées comme arguments pour
d’autres fonctions.
Date et heure
DAX stocke les valeurs de date et d’heure à l’aide du type de données DateHeure utilisé
par Microsoft SQL Server. Le format DateHeure utilise un nombre à virgule flottante où
les valeurs Date correspondent à la partie entière représentant le nombre de jours
depuis le 30 décembre 1899. Les valeurs d’heure correspondent à la partie décimale
d’une valeur d’une date où les heures, les minutes et les secondes sont représentées par
des fractions décimales d’un jour. Les fonctions de date et d’heure DAX convertissent
implicitement les arguments en type de données DateHeure.
7 Notes
La valeur DateTime maximale exacte prise en charge par DAX est le 31 décembre
9999 00:00:00.
littéral, il n’est pas nécessaire d’utiliser les fonctions DATE, TIME, DATEVALUE et
TIMEVALUE dans l’expression.
Par exemple, l’expression suivante utilise des fonctions DATE et TIME pour filtrer sur
OrderDate :
DAX
EVALUATE
FILTER (
FactInternetSales,
[OrderDate] > (DATE(2015,1,9) + TIME(2,30,0)) &&[OrderDate] <
(DATE(2015,12,31) + TIME(11,59,59))
)
DAX
EVALUATE
FILTER (
FactInternetSales,
[OrderDate] > dt"2015-1-9T02:30:00" && [OrderDate] < dt"2015-12-
31T11:59:59"
)
7 Notes
Le format DAX littéral de type Date et DateHeure n’est pas pris en charge dans
toutes les versions de Power BI Desktop, d’Analysis Services et de Power Pivot dans
Excel. Les fonctionnalités DAX qui sont nouvelles ou mises à jour sont
généralement introduites dans Power BI Desktop, puis incluses ultérieurement dans
Analysis Services et Power Pivot dans Excel.
Commentaires
Cette page a-t-elle été utile ? Yes No