If you use DAX, you should try DAX Formatter. Now it supports all the new functions introduced in Power BI Desktop and in Excel 2016.

There are more than 70 new functions, even if half of them corresponds to Excel functions with the same name (see the second group). DAX Formatter also supports the variable syntax available in the new DAX.

These are the new “original” DAX functions:

- ADDMISSINGITEMS
- CALENDAR
- CALENDARAUTO
- CONCATENATEX
- CROSSFILTER
- CURRENTGROUP
- DATEDIFF
- EXACT
- EXCEPT
- GEOMEAN
- GEOMEANX
- GETIMAGE
- GROUPBY
- IGNORE
- INTERSECT
- ISONORAFTER
- KEYWORDMATCH
- MEDIAN
- MEDIANX
- NATURALINNERJOIN
- NATURALLEFTOUTERJOIN
- PERCENTILE.EXC
- PERCENTILE.INC
- PERCENTILEX.EXC
- PERCENTILEX.INC
- PRODUCT
- PRODUCTX
- ROLLUPADDISSUBTOTAL
- ROLLUPISSUBTOTAL
- SELECTCOLUMNS
- SUBSTITUTEWITHINDEX
- SUMMARIZECOLUMNS
- UNION
- XIRR
- XNPV

And this is the list of the functions identical to the Excel ones:

- ACOS
- ACOSH
- ACOT
- ACOTH
- ASIN
- ASINH
- ATAN
- ATANH
- BETA.DIST
- BETA.INV
- CEILING
- CHISQ.DIST
- CHISQ.DIST.RT
- CHISQ.INV
- CHISQ.INV.RT
- COMBIN
- COMBINA
- CONFIDENCE.NORM
- CONFIDENCE.T
- COS
- COSH
- COT
- COTH
- DEGREES
- EVEN
- EXPON.DIST
- GCD
- ISODD
- ISEVEN
- LCM
- ODD
- PERMUT
- POISSON.DIST
- RADIANS
- SIN
- SINH
- SQRTPI
- TAN
- TANH

**ADDMISSINGITEMS**

Add the rows with empty measure values back.

`ADDMISSINGITEMS ( [<ShowAll_ColumnName> [, <ShowAll_ColumnName> [, … ] ] ], <Table> [, <GroupBy_ColumnName> [, [<FilterTable>] [, <GroupBy_ColumnName> [, [<FilterTable>] [, … ] ] ] ] ] ] )`

**CALENDAR**

Returns a table with one column of all dates between StartDate and EndDate.

`CALENDAR ( <StartDate>, <EndDate> )`

**CALENDARAUTO**

Returns a table with one column of dates calculated from the model automatically.

`CALENDARAUTO ( [<FiscalYearEndMonth>] )`

**CONCATENATEX**

Evaluates expression for each row on the table, then return the concatenation of those values in a single string result, seperated by the specified delimiter.

`CONCATENATEX ( <Table>, <Expression> [, <Delimiter>] [, <OrderBy_Expression> [, [<Order>] [, <OrderBy_Expression> [, [<Order>] [, … ] ] ] ] ] )`

**CROSSFILTER**

Specifies cross filtering direction to be used in the evaluation of a DAX expression. The relationship is defined by naming, as arguments, the two columns that serve as endpoints.

`CROSSFILTER ( <LeftColumnName>, <RightColumnName>, <CrossFilterType> )`

**CURRENTGROUP**

Access to the (sub)table representing current group in GroupBy function. Can be used only inside GroupBy function.

`CURRENTGROUP ( )`

**DATEDIFF**

Returns the number of units (unit specified in Interval) between the input two dates.

`DATEDIFF ( <Date1>, <Date2>, <Interval> )`

**EXACT**

Checks whether two text strings are exactly the same, and returns TRUE or FALSE. EXACT is case-sensitive.

`EXACT ( <Text1>, <Text2> )`

**EXCEPT**

Returns the rows of left-side table which do not appear in right-side table.

`EXCEPT ( <LeftTable>, <RightTable> )`

**GEOMEAN**

Returns geometric mean of given column reference.

`GEOMEAN ( <ColumnName> )`

**GEOMEANX**

Returns geometric mean of an expression values in a table.

`GEOMEANX ( <Table>, <Expression> )`

**GROUPBY**

Creates a summary the input table grouped by the specified columns.

`GROUPBY ( <Table> [, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, … ] ] ] ] ] ] ] )`

**IGNORE**

Tags a measure expression specified in the call to SUMMARIZECOLUMNS function to be ignored when determining the non-blank rows.

`IGNORE ( <Measure_Expression> )`

**INTERSECT**

Returns the rows of left-side table which appear in right-side table.

`INTERSECT ( <LeftTable>, <RightTable> )`

**ISONORAFTER**

The IsOnOrAfter function is a boolean function that emulates the behavior of Start At clause and returns true for a row that meets all the conditions mentioned as parameters in this function.

`ISONORAFTER ( <Value1>, <Value2> [, [<Order>] [, <Value1>, <Value2> [, [<Order>] [, … ] ] ] ] )`

**KEYWORDMATCH**

Returns TRUE if there is a match between the MatchExpression and Text.

`KEYWORDMATCH ( <MatchExpression>, <Text> )`

**MEDIAN**

Returns the 50th percentile of values in a column.

`MEDIAN ( <Column> )`

**MEDIANX**

Returns the 50th percentile of an expression values in a table.

`MEDIANX ( <Table>, <Expression> )`

**NATURALINNERJOIN**

Joins the Left table with right table using the Inner Join semantics.

`NATURALINNERJOIN ( <LeftTable>, <RightTable> )`

**NATURALLEFTOUTERJOIN**

Joins the Left table with right table using the Left Outer Join semantics.

`NATURALLEFTOUTERJOIN ( <LeftTable>, <RightTable> )`

**PERCENTILE.EXC**

Returns the k-th (exclusive) percentile of values in a column.

`PERCENTILE.EXC ( <Column>, <K> )`

**PERCENTILE.INC**

Returns the k-th (inclusive) percentile of values in a column.

`PERCENTILE.INC ( <Column>, <K> )`

**PERCENTILEX.EXC**

Returns the k-th (exclusive) percentile of an expression values in a table.

`PERCENTILEX.EXC ( <Table>, <Expression>, <K> )`

**PERCENTILEX.INC**

Returns the k-th (inclusive) percentile of an expression values in a table.

`PERCENTILEX.INC ( <Table>, <Expression>, <K> )`

**PRODUCT**

Returns the product of given column reference.

`PRODUCT ( <ColumnName> )`

**PRODUCTX**

Returns the product of an expression values in a table.

`PRODUCTX ( <Table>, <Expression> )`

**ROLLUPADDISSUBTOTAL**

Identifies a subset of columns specified in the call to SUMMARIZECOLUMNS function that should be used to calculate groups of subtotals.

`ROLLUPADDISSUBTOTAL ( [<GrandtotalFilter>], <GroupBy_ColumnName>, <Name> [, [<GroupLevelFilter>] [, <GroupBy_ColumnName>, <Name> [, [<GroupLevelFilter>] [, … ] ] ] ] )`

**ROLLUPISSUBTOTAL**

Pairs up the rollup groups with the column added by ROLLUPADDISSUBTOTAL.

`ROLLUPISSUBTOTAL ( [<GrandtotalFilter>], <GroupBy_ColumnName>, <IsSubtotal_ColumnName> [, [<GroupLevelFilter>] [, <GroupBy_ColumnName>, <IsSubtotal_ColumnName> [, [<GroupLevelFilter>] [, … ] ] ] ] )`

**SELECTCOLUMNS**

Returns a table with selected columns from the table and new columns specified by the DAX expressions.

`SELECTCOLUMNS ( <Table> [[, <Name>], <Expression> [[, <Name>], <Expression> [, … ] ] ] )`

**SUBSTITUTEWITHINDEX**

Returns a table which represents the semijoin of two tables supplied and for which the common set of columns are replaced by a 0-based index column. The index is based on the rows of the second table sorted by specified order expressions.

`SUBSTITUTEWITHINDEX ( <Table>, <Name>, <SemiJoinIndexTable>, <Expression> [, [<Order>] [, <Expression> [, [<Order>] [, … ] ] ] ] )`

**SUMMARIZECOLUMNS**

Create a summary table for the requested totals over set of groups.

`SUMMARIZECOLUMNS ( [<GroupBy_ColumnName> [, [<FilterTable>] [, [<Name>] [, [<Expression>] [, <GroupBy_ColumnName> [, [<FilterTable>] [, [<Name>] [, [<Expression>] [, … ] ] ] ] ] ] ] ] ] )`

**UNION**

Returns the union of the tables whose columns match.

`UNION ( <Table>, <Table> [, <Table> [, … ] ] )`

**XIRR**

Returns the internal rate of return for a schedule of cash flows that is not necessarily periodic.

`XIRR ( <Table>, <Values>, <Dates> [, <Guess>] [, <AlternateResult>] )`

**XNPV**

Returns the net present value for a schedule of cash flows.

`XNPV ( <Table>, <Values>, <Dates>, <Rate> )`

**ACOS**

Returns the arccosine, or inverse cosine, of a number. The arccosine is the angle whose cosine is number. The returned angle is given in radians in the range 0 (zero) to pi.

`ACOS ( <Number> )`

**ACOSH**

Returns the inverse hyperbolic cosine of a number. The number must be greater than or equal to 1. The inverse hyperbolic cosine is the value whose hyperbolic cosine is number, so ACOSH(COSH(number)) equals number.

`ACOSH ( <Number> )`

**ACOT**

Returns the principal value of the arccotangent, or inverse cotangent, of a number.

`ACOT ( <Number> )`

**ACOTH**

Returns the inverse hyperbolic cotangent of a number.

`ACOTH ( <Number> )`

**ASIN**

Returns the arcsine, or inverse sine, of a number. The arcsine is the angle whose sine is number. The returned angle is given in radians in the range -pi/2 to pi/2.

`ASIN ( <Number> )`

**ASINH**

Returns the inverse hyperbolic sine of a number. The inverse hyperbolic sine is the value whose hyperbolic sine is number, so ASINH(SINH(number)) equals number.

`ASINH ( <Number> )`

**ATAN**

Returns the arctangent, or inverse tangent, of a number. The arctangent is the angle whose tangent is number. The returned angle is given in radians in the range -pi/2 to pi/2.

`ATAN ( <Number> )`

**ATANH**

Returns the inverse hyperbolic tangent of a number. Number must be between -1 and 1 (excluding -1 and 1). The inverse hyperbolic tangent is the value whose hyperbolic tangent is number, so ATANH(TANH(number)) equals number.

`ATANH ( <Number> )`

**BETA.DIST**

Returns the beta distribution. The beta distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television.

`BETA.DIST ( <X>, <Alpha>, <Beta>, <Cumulative> [, <A>] [, <B>] )`

**BETA.INV**

Returns the inverse of the beta cumulative probability density function (BETA.DIST). If probability = BETA.DIST(x,…TRUE), then BETA.INV(probability,…) = x. The beta distribution can be used in project planning to model probable completion times given an expected completion time and variability.

`BETA.INV ( <Probability>, <Alpha>, <Beta> [, <A>] [, <B>] )`

**CEILING**

Rounds a number up, to the nearest integer or to the nearest unit of significance.

`CEILING ( <Number>, <Significance> )`

**CHISQ.DIST**

Returns the chi-squared distribution. The chi-squared distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television.

`CHISQ.DIST ( <X>, <Deg_freedom>, <Cumulative> )`

**CHISQ.DIST.RT**

Returns the right-tailed probability of the chi-squared distribution. The chi-squared distribution is associated with a chi-squared test. Use the chi-squared test to compare observed and expected values. For example, a genetic experiment might hypothesize that the next generation of plants will exhibit a certain set of colors. By comparing the observed results with the expected ones, you can decide whether your original hypothesis is valid.

`CHISQ.DIST.RT ( <X>, <Deg_freedom> )`

**CHISQ.INV**

Returns the inverse of the left-tailed probability of the chi-squared distribution. The chi-squared distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television.

`CHISQ.INV ( <Probability>, <Deg_freedom> )`

**CHISQ.INV.RT**

Returns the inverse of the right-tailed probability of the chi-squared distribution. If probability = CHISQ.DIST.RT(x,…), then CHISQ.INV.RT(probability,…) = x. Use this function to compare observed results with expected ones in order to decide whether your original hypothesis is valid.

`CHISQ.INV.RT ( <Probability>, <Deg_freedom> )`

**COMBIN**

Returns the number of combinations for a given number of items. Use COMBIN to determine the total possible number of groups for a given number of items.

`COMBIN ( <Number>, <Number_chosen> )`

**COMBINA**

Returns the number of combinations (with repetitions) for a given number of items.

`COMBINA ( <Number>, <Number_chosen> )`

**CONFIDENCE.NORM**

Returns the confidence interval for a population mean, using a normal distribution.

`CONFIDENCE.NORM ( <Alpha>, <Standard_dev>, <Size> )`

**CONFIDENCE.T**

Returns the confidence interval for a population mean, using a Student’s t distribution.

`CONFIDENCE.T ( <Alpha>, <Standard_dev>, <Size> )`

**COS**

Returns the cosine of the given angle.

`COS ( <Number> )`

**COSH**

Returns the hyperbolic cosine of a number.

`COSH ( <Number> )`

**COT**

Return the cotangent of an angle specified in radians.

`COT ( <Number> )`

**COTH**

Return the hyperbolic cotangent of a hyperbolic angle.

`COTH ( <Number> )`

**DEGREES**

Converts radians into degrees.

`DEGREES ( <Number> )`

**EVEN**

Returns number rounded up to the nearest even integer. You can use this function for processing items that come in twos. For example, a packing crate accepts rows of one or two items. The crate is full when the number of items, rounded up to the nearest two, matches the crate’s capacity.

`EVEN ( <Number> )`

**EXPON.DIST**

Returns the exponential distribution. Use EXPON.DIST to model the time between events, such as how long an automated bank teller takes to deliver cash. For example, you can use EXPON.DIST to determine the probability that the process takes at most 1 minute.

`EXPON.DIST ( <X>, <Lambda>, <Cumulative> )`

**GCD**

Returns the greatest common divisor of two integers. The greatest common divisor is the largest integer that divides both number1 and number2 without a remainder.

`GCD ( <Number1>, <Number2> )`

**ISODD**

Returns TRUE if number is odd, or FALSE if number is even.

`ISODD ( <Number> )`

**ISEVEN**

Returns TRUE if number is even, or FALSE if number is odd.

`ISEVEN ( <Number> )`

**LCM**

Returns the least common multiple of integers. The least common multiple is the smallest positive integer that is a multiple of both integer arguments number1, number2. Use LCM to add fractions with different denominators.

`LCM ( <Number1>, <Number2> )`

**ODD**

Returns number rounded up to the nearest odd integer.

`ODD ( <Number> )`

**PERMUT**

Returns the number of permutations for a given number of objects that can be selected from number objects. A permutation is any set or subset of objects or events where internal order is significant. Permutations are different from combinations, for which the internal order is not significant. Use this function for lottery-style probability calculations.

`PERMUT ( <Number>, <Number_chosen> )`

**POISSON.DIST**

Returns the Poisson distribution. A common application of the Poisson distribution is predicting the number of events over a specific time, such as the number of cars arriving at a toll plaza in 1 minute.

`POISSON.DIST ( <X>, <Mean>, <Cumulative> )`

**RADIANS**

Converts degrees to radians.

`RADIANS ( <Number> )`

**SIN**

Returns the sine of the given angle.

`SIN ( <Number> )`

**SINH**

Returns the hyperbolic sine of a number.

`SINH ( <Number> )`

**SQRTPI**

Returns the square root of (number * pi).

`SQRTPI ( <Number> )`

**TAN**

Returns the tangent of the given angle.

`TAN ( <Number> )`

**TANH**

Returns the hyperbolic tangent of a number.

`TANH ( <Number> )`