AVERAGE, AVERAGEA & AVERAGEX
Functions
by Power BI Docs
DAX
Power Bi DAX functions AVERAGE, AVERAGEA & AVERAGEX are returns the average
(arithmetic mean) of all the numbers in a column, All functions comes under statistical
functions Dax categories.
1- AVERAGE DAX Function:
Returns the average (arithmetic mean) of all the numbers in a column.
Syntax:
AVERAGE(<Column>)Copy
Description:
S no. Parameter Description
1 column The column that contains the numbers for which you want the average.
Dataset format as below:
ID Amount Blank Boolean SalesDate Name
1 TRUE 29/5/2020 A
2 1000 FALSE B
3 2000 TRUE 29/5/2020
4 1000 FALSE 28/5/2020 C
Note:
1. This function takes the specified column as an argument and finds the average of
the values in that column.
2. Does not support Logical value & Text Value
3. Cells with the value zero are included.
4. If Data type is Integer/ Numeric/ Decimal, Average skip the null value.
Let’s create measure for Average function with different-different columns
Average with ID column:
AVERAGE 1 =
AVERAGE(SampleTable[ID]) ---- Output = 2.50
Copy
Average with Amount column:
AVERAGE 2=
AVERAGE(SampleTable[Amount])Copy
Output = 1333.33, Amount column contains 3 values with 1 blank value, so total no of
rows are 4 but Amount column data type is Int. So Avg skip the null value now total no
of rows are 3 and it will divide total sum of amount with 3.
2- AVERAGEA DAX Function:
Returns the average (arithmetic mean) of the values in a column. Handles text and non-
numeric values.
Syntax:
AVERAGEA(<Column>)Copy
Description:
S no. Parameter Description
1 column The column that contains the numbers for which you want the average.
Note :
The AVERAGEA function takes a column and averages the numbers, but also handles
non-numeric data types according to the following rules:
1. It support Logical values.
2. Logical value TRUE count as 1 & FALSE count as 0 (zero).
3. Values that contain non-numeric text count as 0 (zero).
4. Empty text (“”) counts as 0 (zero).
Let’s create measure for AVERAGEA function with different-different columns
AVERAGEA with ID column:
AVERAGEA 1 =
AVERAGEA(SampleTable[ID])-- Output = 2.50Copy
AVERAGEA with Amount column:
AVERAGEA 2=
AVERAGEA(SampleTable[Amount])--- Output = 1333.33Copy
AVERAGEA with Logical value:
AVERAGEA With Boolean =
AVERAGEA(SampleTable[Boolean]) --- Output = 0.50Copy
As per Sample data set we have 2 True values & 2 False values under “Boolean” column,
So AVERAGEA consider True as 1 and False as 0, that’s mean Total Sum of Boolean
column values are 2 and no of values are 4, so it will divide 2 with 4 and ans will be 0.50.
3- AVERAGEX DAX Function:
Calculates the average (arithmetic mean) of a set of expressions evaluated over a table.
Syntax:
AVERAGEX(<table>,<expression>)Copy
Description:
S no. Parameter Description
Name of a table, or an expression that specifies the table over which the aggregation can
1 table
performed.
An expression with a scalar result, which will be evaluated for each row of the table in t
2 expression
first argument.
Note:
1. The function takes a table as its first argument, and an expression as the second
argument.
2. The AVERAGEX function enables you to evaluate expressions for each row of a
table, and then take the resulting set of values and calculate its arithmetic mean.
3. You cannot include non-numeric or null cells. Both the table and expression
arguments are required.
4. When there are no rows to aggregate, the function returns a blank. When there
are rows, but none of them meet the specified criteria, then the function returns
0.
5. Does not support Logical/ boolean values.
Let’s create measure for AVERAGEX function with different-different columns
AVERAGEX with ID column:
AVERAGEX 1 =
AVERAGEX(SampleTable,SampleTable[ID])Copy
AVERAGEX with Amount column:
AVERAGEX 2 =
AVERAGEX(SampleTable, SampleTable[Amount])--- Output = 1333.33
Copy
You can use Filter DAX function with AVERAGEX :
Suppose you want see Average of Amount column values where amount values are
equal to 1000.
AVERAGEX With Filter =
AVERAGEX(
FILTER(SampleTable, SampleTable[Amount]=1000),
SampleTable[Amount]
Output = 1000Copy
Hope you enjoyed the post. Your valuable feedback, question, or comments about this
post are always welcome or you can leave us message on our contact form , we will
revert to you asap.