Home » DAX » DAX – AVERAGE, AVERAGEA & AVERAGEX Functions

DAX – AVERAGE, AVERAGEA & AVERAGEX Functions

Average 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 Aggregation functions Dax categories.

1- AVERAGE DAX Function:

Returns the average (arithmetic mean) of all the numbers in a column.

Syntax:

AVERAGE(<Column>)




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
Average with Amount column:

AVERAGE 2=
AVERAGE(SampleTable[Amount])

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>)

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.50
AVERAGEA with Amount column:

AVERAGEA 2=
AVERAGEA(SampleTable[Amount])--- Output = 1333.33
AVERAGEA with Logical value:

AVERAGEA With Boolean =
AVERAGEA(SampleTable[Boolean]) --- Output = 0.50

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 answer 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>)

Description:

S no. Parameter Description
1 table Name of a table, or an expression that specifies the table over which the aggregation can be performed.
2 expression An expression with a scalar result, which will be evaluated for each row of the table in the 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])
AVERAGEX with Amount column: 
AVERAGEX 2 = 
AVERAGEX(SampleTable, SampleTable[Amount])--- Output = 1333.33

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 = 1000

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.



Leave a Reply