Excel DAX - Fonctions
La plupart DAX functionsont les mêmes noms et fonctionnalités que ceux des fonctions Excel. Cependant, les fonctions DAX ont été modifiées pour utiliser les types de données DAX et travailler avec des tables et des colonnes.
DAX a quelques fonctions supplémentaires que vous ne trouverez pas dans Excel. Ces fonctions DAX sont fournies à des fins spécifiques telles que les recherches basées sur des relations associées aux aspects de base de données relationnelle du modèle de données, la capacité d'itérer sur une table pour effectuer des calculs récursifs, pour effectuer une agrégation dynamique et pour des calculs utilisant l'intelligence temporelle.
Dans ce chapitre, vous découvrirez les fonctions prises en charge dans le langage DAX. Pour plus d'informations sur l'utilisation de ces fonctions DAX, reportez-vous au didacticiel - Fonctions DAX dans cette bibliothèque de didacticiels.
Qu'est-ce qu'une fonction DAX?
Une fonction DAX est une fonction intégrée fournie dans le langage DAX pour vous permettre d'effectuer diverses actions sur les données des tables de votre modèle de données. Comme indiqué précédemment, DAX est utilisé à des fins d'analyse de données et de veille stratégique qui nécessitent une prise en charge pour extraire, assimiler et tirer des informations à partir des données. Les fonctions DAX basées sur le modèle de données vous fournissent ces utilitaires qui simplifient votre travail, une fois que vous maîtrisez le langage DAX et l'utilisation des fonctions DAX.
Fonctions Excel et fonctions DAX
Il existe certaines similitudes entre les fonctions Excel dont vous avez connaissance et les fonctions DAX. Cependant, il existe également certaines différences. Vous devez obtenir une clarification à ce sujet, afin d'éviter de faire des erreurs dans l'utilisation des fonctions DAX et dans l'écriture de formules DAX qui incluent des fonctions DAX.
Similitudes entre les fonctions Excel et les fonctions DAX
De nombreuses fonctions DAX ont le même nom et le même comportement général que les fonctions Excel.
DAX a des fonctions de recherche similaires aux fonctions de recherche de tableau et de vecteur dans Excel.
Différences entre les fonctions Excel et les fonctions DAX
Les fonctions DAX ont été modifiées pour accepter différents types d'entrées et certaines des fonctions DAX peuvent renvoyer un type de données différent. Par conséquent, vous devez comprendre l'utilisation de ces fonctions séparément bien qu'elles portent le même nom. Dans ce tutoriel, vous trouverez chaque fonction DAX préfixée par DAX afin d'éviter toute confusion avec les fonctions Excel.
Vous ne pouvez pas utiliser des fonctions DAX dans une formule Excel ou utiliser des formules / fonctions Excel dans DAX, sans les modifications requises.
Les fonctions Excel prennent une référence de cellule ou une plage de cellules comme référence. Les fonctions DAX ne prennent jamais une référence de cellule ou une plage de cellules comme référence, mais prennent plutôt une colonne ou un tableau comme référence.
Les fonctions de date et d'heure Excel renvoient un entier qui représente une date sous forme de numéro de série. Les fonctions de date et d'heure DAX renvoient un type de données datetime qui se trouve dans DAX mais pas dans Excel.
Excel n'a pas de fonctions qui renvoient un tableau, mais certaines fonctions peuvent fonctionner avec des tableaux. De nombreuses fonctions DAX peuvent facilement référencer des tables et des colonnes complètes pour effectuer des calculs et renvoyer une table ou une colonne de valeurs. Cette capacité de DAX ajoute de la puissance à Power Pivot, Power View et Power BI, où DAX est utilisé.
Les fonctions de recherche DAX nécessitent qu'une relation soit établie entre les tables.
Excel prend en charge le type de données variante dans une colonne de données, c'est-à-dire que vous pouvez avoir des données de différents types de données dans une colonne. Alors que DAX s'attend à ce que les données d'une colonne d'une table soient toujours du même type de données. Si les données ne sont pas du même type de données, DAX remplace la colonne entière par le type de données qui accepte le mieux toutes les valeurs de la colonne. Toutefois, si les données sont importées et que ce problème survient, DAX peut signaler une erreur.
Pour en savoir plus sur les types de données DAX et la conversion des types de données, reportez-vous au chapitre - Référence de la syntaxe DAX.
Types de fonctions DAX
DAX prend en charge les types de fonctions suivants.
- Fonctions valorisées de la table DAX
- Fonctions de filtre DAX
- Fonctions d'agrégation DAX
- Fonctions DAX Time Intelligence
- Fonctions de date et d'heure DAX
- Fonctions d'informations DAX
- Fonctions logiques DAX
- Fonctions mathématiques et de déclenchement DAX
- Autres fonctions DAX
- Fonctions parent et enfant DAX
- Fonctions statistiques DAX
- Fonctions de texte DAX
Dans cette section, vous découvrirez les fonctions DAX au niveau des catégories de fonctions. Pour plus de détails sur la syntaxe de la fonction DAX et ce que la fonction DAX renvoie et fait, reportez-vous au didacticiel sur les fonctions DAX de cette bibliothèque de didacticiels.
Les fonctions d'intelligence temporelle DAX et les fonctions de filtre DAX sont puissantes et nécessitent une mention spéciale. Reportez-vous aux chapitres - Comprendre les fonctions DAX Time Intelligence et DAX Filter pour plus de détails.
Fonctions valorisées de la table DAX
De nombreuses fonctions DAX prennent des tables comme tables d'entrée ou de sortie ou font les deux. Ces fonctions DAX sont appelées fonctions de table DAX. Étant donné qu'une table peut avoir une seule colonne, les fonctions de table DAX prennent également des colonnes uniques comme entrées. Vous disposez des types suivants de fonctions de table DAX -
- Fonctions d'agrégation DAX
- Fonctions de filtre DAX
- Fonctions DAX Time Intelligence
Comprendre les fonctions de table DAX vous aide à écrire efficacement des formules DAX.
Fonctions d'agrégation DAX
Les fonctions d'agrégation DAX agrègent toute expression sur les lignes d'une table et sont utiles dans les calculs.
Voici quelques fonctions d'agrégation DAX -
ADDCOLUMNS (<table>, <nom>, <expression>, [<nom>, <expression>]…)
MOYENNE (<colonne>)
MOYENNEA (<colonne>)
AVERAGEX (<table>, <expression>)
COUNT (<colonne>)
COUNTA (<colonne>)
COUNTAX (<table>, <expression>)
COUNTBLANK (<colonne>)
COUNTROWS (<table>)
COUNTX (<table>, <expression>)
CROSSJOIN (<table1>, <table2>, [<table3>]…)
DISTINCTCOUNT (<colonne>)
GÉNÉRER (<table1>, <table2>)
GÉNÉRER TOUT (<table1>, <table2>)
MAX (<colonne>)
MAXA (<colonne>)
MAXX (<table>, <expression>)
MIN (<colonne>)
MINA (<colonne>)
MINX (<table>, <expression>)
PRODUIT (<colonne>)
PRODUCTX (<table>, <expression>)
ROW (<nom>, <expression>, [<nom>, <expression>]…)
SELECTCOLUMNS (<table>, <nom>, <expression_calaire>,
[<nom>, <expression_scalaire>]…)
SOMME (<colonne>)
SUMMARIZE (<table>, <groupBy_columnName>, [<groupBy_columnName>]…, [<name>, <expression>]…)
SUMX (<table>, <expression>)
TOPN (<n_valeur>, <table>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…)
Fonctions de filtre DAX
Les fonctions de filtre DAX renvoient une colonne, une table ou des valeurs liées à la ligne actuelle. Vous pouvez utiliser les fonctions de filtre DAX pour renvoyer des types de données spécifiques, rechercher des valeurs dans des tables associées et filtrer par valeurs associées. Les fonctions de recherche DAX fonctionnent en utilisant des tables et des relations entre elles. Les fonctions de filtre DAX vous permettent de manipuler le contexte des données pour créer des calculs dynamiques.
Voici quelques fonctions de filtre DAX -
ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>]…, <table>, <groupingColumn>, [<groupingColumn>]… [filterTable]…)
TOUT ({<table> | <colonne>, [<colonne>], [<colonne>]…})
ALLEXCEPT (<table>, <colonne>, [<colonne>]…)
ALLNOBLANKROW(<table>|<column>)
ALLSELECTED ([<tableName> | <columnName>])
CALCULER (<expression>, <filter1>, <filter2>…)
CALCULATETABLE (<expression>, <filter1>, <filter2>…)
CROSSFILTER (<columnName1>, <columnName2>, <direction>)
DISTINCT (<colonne>)
EARLIER (<colonne>, <numéro>)
EARLIEST(<column>)
FILTER(<table>,<filter>)
FILTERS(<columnName>)
HASONEFILTER(<columnName>)
HASONEVALUE(<columnName>)
ISCROSSFILTERED (<nomcolonne>)
ISFILTERED (<nomcolonne>)
KEEPFILTERS (<expression>)
RELATED(<column>)
RELATEDTABLE(<tableName>)
SUBSTITUTEWITHINDEX (<table>, <indexColumnName>, <indexColumnsTable>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…])
USERELATIONSHIP(<columnName1>,<columnName2>)
VALUES(<TableNameOrColumnName>)
Fonctions DAX Time Intelligence
Les fonctions DAX Time Intelligence renvoient une table de dates ou utilisent une table de dates pour calculer une agrégation. Ces fonctions DAX vous aident à créer des calculs qui prennent en charge les besoins de l'analyse de Business Intelligence en vous permettant de manipuler des données à l'aide de périodes de temps, y compris les jours, mois, trimestres et années.
Voici quelques fonctions de DAX Time Intelligence -
CLOSINGBALANCEMONTH (<expression>, <dates> [, <filter>])
CLOSINGBALANCEQUARTER (<expression>, <dates>, [<filter>])
CLOSINGBALANCEYEAR (<expression>, <dates>, [<filter>], [<year_end_date>])
DATEADD (<dates>, <number_of_intervals>, <interval>)
DATESBETWEEN (<dates>, <start_date>, <end_date>)
DATESINPERIOD (<dates>, <start_date>, <number_of_intervals>, <interval>)
DATESMTD (<dates>)
DATESQTD (<dates>)
DATESYTD (<dates>, [<year_end_date>])
ENDOFMONTH (<dates>)
FIN DU QUARTIER (<dates>)
ENDOFYEAR (<dates>, [<year_end_date>])
FIRSTDATE (<dates>)
FIRSTNONBLANK (<colonne>, <expression>)
LASTDATE (<dates>)
LASTNONBLANK (<colonne>, <expression>)
NEXTDAY (<dates>)
NEXTMONTH (<dates>)
QUARTIER SUIVANT (<dates>)
NEXTYEAR (<dates>, [<year_end_date>])
OPENINGBALANCEMONTH (<expression>, <dates>, [<filter>])
OPENINGBALANCEQUARTER (<expression>, <dates>, [<filter>])
OPENINGBALANCEYEAR (<expression>, <dates>, [<filter>], [<year_end_date>])
PARALLELPERIOD (<dates>, <number_of_intervals>, <interval>)
PREVIOUSDAY(<dates>)
PREVIOUSMONTH(<dates>)
PREVIOUSQUARTER(<dates>)
PREVIOUSYEAR (<dates>, [<year_end_date>])
SAMEPERIODLASTYEAR(<dates>)
STARTOFMONTH(<dates>)
STARTOFQUARTER(<dates>)
STARTOFYEAR(<dates>)
TOTALMTD (<expression>, <dates>, [<filtre>])
TOTALQTD (<expression>, <dates>, [<filtre>])
TOTALYTD (<expression>, <dates>, [<filter>], [<year_end_date>])
Fonctions de date et d'heure DAX
Les fonctions de date et d'heure DAX sont similaires aux fonctions de date et d'heure d'Excel. Cependant, les fonctions de date et d'heure DAX sont basées sur le type de données datetime de DAX.
Voici les fonctions de date et d'heure DAX -
- DATE (<année>, <mois>, <jour>)
- DATEVALUE(date_text)
- DAY(<date>)
- EDATE (<start_date>, <mois>)
- EOMONTH (<date_début>, <mois>)
- HOUR(<datetime>)
- MINUTE(<datetime>)
- MONTH(<datetime>)
- NOW()
- SECOND(<time>)
- TIME (heure, minute, seconde)
- TIMEVALUE(time_text)
- TODAY()
- WEEKDAY (<date>, <return_type>)
- SEMAINE (<date>, <type_retour>)
- YEAR(<date>)
- YEARFRAC (<start_date>, <end_date>, <basis>)
Fonctions d'informations DAX
Les fonctions d'informations DAX examinent la cellule ou la ligne fournie en tant qu'argument et vous indiquent si la valeur correspond au type attendu.
Voici quelques fonctions d'informations DAX -
CONTIENT (<table>, <columnName>, <value>, [<columnName>, <value>]…)
CUSTOMDATA()
ISBLANK(<value>)
ISERROR(<value>)
ISEVEN(number)
ISLOGICAL(<value>)
ISNONTEXT(<value>)
ISNUMBER(<value>)
ISONORAFTER (<expression_calaire>, <expression_calaire>, [ordre_tri], [<expression_calaire>, <expression_scalaire>, [ordre_ tri]]…)
ISTEXT(<value>)
LOOKUPVALUE (<result_columnName>, <search_columnName>, <search_value>, [<search_columnName>, <search_value>]…)
USERNAME()
Fonctions logiques DAX
Les fonctions logiques DAX renvoient des informations sur les valeurs d'une expression. Par exemple, la fonction DAX TRUE vous permet de savoir si une expression que vous évaluez renvoie une valeur TRUE.
Voici les fonctions logiques DAX -
- AND(<logical1>,<logical2>)
- FALSE()
- IF (test_logique>, <value_if_true>, value_if_false)
- IFERROR (valeur, valeur_if_error)
- NOT(<logical>)
- OR(<logical1>,<logical2>)
- SWITCH (<expression>, <valeur>, <résultat>, [<valeur>, <résultat>]…, [<else>])
- TRUE()
Fonctions mathématiques et de déclenchement DAX
Les fonctions mathématiques et trigonométriques DAX sont très similaires aux fonctions mathématiques et trigonométriques d'Excel.
Voici quelques fonctions DAX Math et Trig -
- ABS(<number>)
- ACOS(number)
- ACOSH(number)
- ASIN(number)
- ASINH(number)
- ATAN(number)
- ATANH(number)
- PLAFOND (<numéro>, <importance>)
- COMBIN (nombre, nombre_choisi)
- COMBINA (nombre, nombre_choisi)
- COS(number)
- COSH(number)
- CURRENCY(<value>)
- DEGREES(angle)
- DIVIDE (<numérateur>, <dénominateur>, [<alternateresult>])
- EVEN(number)
- EXP(<number>)
- FACT(<number>)
- PLANCHER (<numéro>, <importance>)
- GCD (numéro1, [numéro2], ...)
- INT(<number>)
- PLAFOND ISO (<numéro>, [<importance>])
- LCM (numéro1, [numéro2], ...)
- LN(<number>)
- LOG(<number>,<base>)
- LOG10(<number>)
- INT(<number>)
- MROUND (<numéro>, <multiple>)
- ODD(number)
- PI()
- PUISSANCE (<numéro>, <puissance>)
- PRODUCT(<column>)
- PRODUCTX (<table>, <expression>)
- QUOTIENT (<numérateur>, <dénominateur>)
- RADIANS(angle)
- RAND()
- RANDBETWEEN(<bottom>,<top>)
- ROUND (<nombre>, <num_digits>)
- ROUNDDOWN (<nombre>, <num_digits>)
- ROUNDUP (<nombre>, <num_digits>)
- SIN(number)
- SINH(number)
- SIGN(<number>)
- SQRT(<number>)
- SUM(<column>)
- SUMX (<table>, <expression>)
- TAN(number)
- TANH(number)
- TRUNC(<number>,<num_digits>)
Autres fonctions DAX
Ces fonctions DAX exécutent des actions uniques qui ne peuvent être définies par aucune des catégories auxquelles appartiennent la plupart des autres fonctions.
Voici quelques autres fonctions DAX -
SAUF (<expression_table1>, <expression_table2>
GROUPBY (<table>, [<groupBy_columnName1>], [<nom>, <expression>]…)
INTERSECT (<expression_table1>, <expression_table2>)
ISEMPTY(<table_expression>)
NATURALINNERJOIN (<leftJoinTable>, <rightJoinTable>)
NATURALLEFTOUTERJOIN (<leftJoinTable>, <rightJoinTable>)
SUMMARIZECOLUMNS (<groupBy_columnName>, [<groupBy_columnName>]…, [<filterTable>]…, [<name>, <expression>]…)
UNION (<table_expression1>, <table_expression2>, [<table_expression>]…)
VAR <nom> = <expression>
Fonctions parent et enfant DAX
Les fonctions parent et enfant DAX sont utiles pour gérer les données présentées sous forme de hiérarchie parent / enfant dans le modèle de données.
Voici quelques fonctions parent et enfant DAX -
- CHEMIN (<ID_columnName>, <parent_columnName>)
- PATHCONTAINS (<chemin>, <item>)
- PATHITEM (<chemin>, <position>, [<type>])
- PATHITEMREVERSE (<chemin>, <position>, [<type>])
- PATHLENGTH(<path>)
Fonctions statistiques DAX
Les fonctions statistiques DAX sont très similaires aux fonctions statistiques Excel.
Voici quelques fonctions statistiques DAX -
BETA.DIST (x, alpha, bêta, cumulatif, [A], [B])
BETA.INV (probabilité, alpha, bêta, [A], [B])
CHISQ.INV (probabilité, deg_liberté)
CHISQ.INV.RT (probabilité, deg_liberté)
CONFIDENCE.NORM (alpha, standard_dev, taille)
CONFIDENCE.T (alpha, standard_dev, taille)
DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2 ..., {{Value1, Value2 ...}, {ValueN, ValueN + 1 ...} ...})
EXPON.DIST (x, lambda, cumulatif)
GEOMEAN(<column>)
GEOMEANX (<table>, <expression>)
MEDIAN(<column>)
MEDIANX (<table>, <expression>)
PERCENTILE.EXC (<colonne>, <k>)
PERCENTILE.INC (<colonne>, <k>)
PERCENTILEX.EXC (<table>, <expression>, k)
PERCENTILEX.EXC (<table>, <expression>, k)
POISSON.DIST (x, moyenne, cumulée)
RANK.EQ (<valeur>, <columnName> [, <order>])
RANKX (<table>, <expression> [, <valeur> [, <order> [, <ties>]]])
EXEMPLE (<n_valeur>, <table>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…)
STDEV.P(<ColumnName>)
STDEV.S(<ColumnName>)
STDEVX.P (<table>, <expression>)
STDEVX.S (<table>, <expression>)
SQRTPI(number)
VAR.P(<columnName>)
VAR.S(<columnName>)
VARX.P (<table>, <expression>)
VARX.S (<table>, <expression>)
XIRR (<table>, <values>, <dates>, [suppose])
XNPV (<table>, <valeurs>, <dates>, <rate>)
Fonctions de texte DAX
Les fonctions de texte DAX fonctionnent avec les tables et les colonnes. Avec les fonctions de texte DAX, vous pouvez renvoyer la partie d'une chaîne, rechercher du texte dans une chaîne ou concaténer des valeurs de chaîne. Vous pouvez également contrôler les formats des dates, des heures et des nombres.
Voici quelques fonctions de texte DAX -
- BLANK()
- CODE(text)
- CONCATENER (<texte1>, <texte2>)
- CONCATENATEX (<table>, <expression>, [délimiteur])
- EXACT(<text1>,<text2>)
- FIND (<find_text>, <within_text>, [<start_num>], [<NotFoundValue>])
- FIXE (<numéro>, <décimales>, <pas de virgule>)
- FORMAT (<valeur>, <chaîne_format>)
- GAUCHE (<text>, <num_chars>)
- LEN(<text>)
- LOWER(<text>)
- MID (<texte>, <num_démarrage>, <num_chars>)
- REMPLACER (<old_text>, <start_num>, <num_chars>, <new_text>)
- REPT (<texte>, <num_heures>)
- DROITE (<text>, <num_chars>)
- RECHERCHE (<find_text>, <within_text>, [<start_num>], [<NotFoundValue>])
- SUBSTITUT (<text>, <old_text>, <nouveau_texte>, <instance_num>)
- TRIM(<text>)
- UPPER (<texte>)
- VALUE(<text>)