Finding Minimum Values Using MIN and MINA in DAX
In this article, we will learn how to find the minimum value from columns and compare values using
MIN and MINA in DAX. We will also see how MIN can work
with two scalar values and how MINA behaves differently when logical values are involved.
📥 Practice Data:
Download Practice Data Free
🎥 Prefer learning through video?
DAX YouTube Playlist
What Is MIN in DAX?
MIN returns the smallest value from a column or the smaller value between two scalar expressions.
It is commonly used when you need to identify the minimum sales amount, lowest price, earliest numeric value,
or any other smallest numeric value.
The basic forms used in this query are:
MIN(<Column>)
MIN(<Expression1>, <Expression2>)
1. Viewing the Source Table
Query
EVALUATE
MaxMinTable
Step-by-step explanation
Step 1: EVALUATE
EVALUATE is used to return a table expression as the result of a DAX query.
Step 2: MaxMinTable
MaxMinTable is the table being returned. This allows us to inspect the source data before
applying the minimum-value calculations.
What will you get?
The query returns the complete MaxMinTable table. The actual rows and values depend on the
practice dataset.
Before calculating a minimum value, it is useful to understand the values contained in the source column.
2. Finding the Minimum Value from a Column
Query
EVALUATE
ROW(
"Col A", MIN(MaxMinTable[Column A])
)
Step-by-step explanation
Step 1: ROW
ROW creates a one-row table containing the calculation result.
Step 2: “Col A”
This is the name given to the output column.
Step 3: MIN(MaxMinTable[Column A])
MIN examines the values in Column A and returns the smallest value.
What will you get?
| Col A |
|---|
| Minimum value from Column A |
The exact result depends on the values available in MaxMinTable[Column A].
MIN(Column) returns the smallest value found in the specified column.
3. Comparing Two Values Using MIN
Query
EVALUATE
ROW(
"Comparison", MIN(50, 20)
)
Step-by-step explanation
Step 1: MIN(50, 20)
In this form, MIN compares two scalar values instead of scanning a column.
Step 2: Compare the values
DAX compares 50 and 20 and identifies the smaller value.
Step 3: Return the result
Since 20 is smaller than 50, the result is 20.
| Expression | Result |
|---|---|
| MIN(50, 20) | 20 |
MIN can be used both with a column and with two scalar expressions.
4. Finding Minimum Values from Multiple Columns
Query
EVALUATE
ROW(
"Col A", MIN(MaxMinTable[Column A]),
"Comparison", MIN(50, 20),
"Col B", MIN(MaxMinTable[Column B]),
"Col C", MIN(MaxMinTable[Column C]),
"Col D", MINA(MaxMinTable[Column D]),
"Col E", MIN(MaxMinTable[Column E])
)
Step-by-step explanation
Step 1: ROW creates the result table
ROW combines all the calculations into a single-row result.
Step 2: Find the minimum of Column A
MIN(MaxMinTable[Column A]) scans Column A and returns its smallest value.
Step 3: Compare 50 and 20
MIN(50, 20) compares the two supplied values and returns 20.
Step 4: Find the minimum of Column B
MIN(MaxMinTable[Column B]) returns the smallest value from Column B.
Step 5: Find the minimum of Column C
MIN(MaxMinTable[Column C]) returns the smallest value from Column C.
Step 6: Use MINA for Column D
MINA(MaxMinTable[Column D]) is used instead of MIN. MINA evaluates values including logical
values, so its behavior can differ from MIN when logical values such as TRUE
and FALSE are present.
Step 7: Find the minimum of Column E
MIN(MaxMinTable[Column E]) returns the smallest value from Column E.
Understanding the result
| Output Column | Expression | Purpose |
|---|---|---|
| Col A | MIN(MaxMinTable[Column A]) | Finds the minimum value in Column A |
| Comparison | MIN(50, 20) | Returns the smaller of two values |
| Col B | MIN(MaxMinTable[Column B]) | Finds the minimum value in Column B |
| Col C | MIN(MaxMinTable[Column C]) | Finds the minimum value in Column C |
| Col D | MINA(MaxMinTable[Column D]) | Finds the minimum while evaluating logical values |
| Col E | MIN(MaxMinTable[Column E]) | Finds the minimum value in Column E |
MIN vs MINA in DAX
The most important difference demonstrated by this query is the use of MIN for most columns
and MINA for Column D.
| Function | Purpose | Important behavior |
|---|---|---|
| MIN | Returns the smallest value | Commonly used for numeric columns and scalar comparisons |
| MINA | Returns the smallest value | Also evaluates logical values such as TRUE and FALSE |
Why is MINA used for Column D?
The query deliberately uses MINA for Column D rather than MIN.
This is useful when the column may contain logical values and you want those values to participate in the
minimum calculation.
In DAX, logical values are considered numerically when evaluated by MINA:
TRUE is treated as 1 and FALSE as 0.
Use MIN for normal minimum-value calculations. Consider MINA when logical
values need to be evaluated as part of the calculation.
Understanding ROW in This Query
The query uses ROW to place several independent calculations into one result row.
This is particularly useful when testing DAX expressions in DAX Studio.
EVALUATE
ROW(
"Output 1", Expression1,
"Output 2", Expression2,
"Output 3", Expression3
)
Each pair consists of an output column name followed by the expression that calculates its value.
Important Notes
1. MIN can work with a column
When a column is supplied, MIN searches the column for the smallest value.
2. MIN can compare two scalar values
Expressions such as MIN(50, 20) allow you to compare two values directly.
3. MINA has different logical-value behavior
MINA is useful when logical values need to participate in the calculation. This is why
MINA is specifically used for Column D in this query.
4. ROW returns the calculations as a table
Even though the query contains scalar calculations, ROW produces a one-row table, making the
expressions easy to inspect in a DAX query result.
📝 Practice Exercise
Using the MaxMinTable, try creating a query that returns the minimum values of
Column A, Column B, and Column C in a single row.
Then add a scalar comparison using:
MIN(100, 75)
Finally, check what happens when you use MINA instead of MIN for a column
containing logical values.
Conclusion
In this article, we learned how to find minimum values using MIN and MINA
in DAX.
- MIN returns the smallest value from a column.
- MIN can also compare two scalar values, such as MIN(50, 20).
- ROW can be used to return multiple DAX calculations in a single result row.
- MINA can evaluate logical values such as TRUE and FALSE.
- Choosing between MIN and MINA depends on the type of values that need to participate in the calculation.
These concepts provide a foundation for working with minimum-value calculations in DAX and are especially
useful when testing expressions in DAX Studio.
📥 Practice Data:
Download Practice Data Free
🎥 Prefer learning through video?
DAX YouTube Playlist