在 Power BI(DAX)中,MIN 和 MINX 的区别,和 SUM vs SUMX 非常类似:一个是直接对列求最小值,另一个是对每一行计算表达式后求最小值。
✅ 一句话总结:
🔹
MIN是对某一列直接取最小值
🔹MINX是对一张表逐行计算表达式后取最小值
🔍 区别对比表
| 特性 | MIN | MINX |
|---|---|---|
| 计算方式 | 直接对一列求最小值 | 对每行计算表达式,结果集中再取最小值 |
| 输入参数 | 单个列名 | 表 + 表达式 |
| 是否逐行运算 | ❌ 否 | ✅ 是 |
| 场景 | 简单列最小值 | 表达式或跨表字段组合后的最小值 |
🎯 示例对比
✅ 示例 1:MIN 的用法
最早订单日期 = MIN(Sales[OrderDate])
👉 表示直接从 Sales 表的 OrderDate 列中,找出最早的一天。
✅ 示例 2:MINX 的用法
最低利润 =
MINX(
Sales,
Sales[Quantity] * RELATED(Product[ProfitPerUnit])
)
👉 对 Sales 表每一行计算:
数量 × 单位利润,然后从所有结果中找出最小利润
🔥 实战区别场景
| 想要做的事 | 用哪个? | 示例 |
|---|---|---|
| 取一列中的最小值 | MIN | MIN(Sales[Amount]) |
| 计算“数量 × 单价”的每一行,再取最小值 | MINX | MINX(Sales, Sales[Qty] * Sales[Price]) |
| 取每个产品的最低利润(跨表字段) | MINX + RELATED | MINX(Sales, Sales[Qty] * RELATED(Product[Profit])) |
🧠 常和 MINX 搭配的函数
| 函数 | 说明 |
|---|---|
RELATED() | 跨表取字段(例如产品成本) |
FILTER() | 筛选特定行后再求最小值 |
VAR | 复杂表达式里定义变量更清晰 |
📌 总结口诀
🟡 简单字段最小值 → 用
MIN
🟢 表达式最小值、逐行计算 → 用MINX
同理,我们可以扩展到MAX和MAXX:
✅ 总体思维图
| 功能 | 用于哪种情况 | 举例 |
|---|---|---|
MIN | 对“某一列”直接取最小值 | MIN(Sales[Amount]) |
MINX | 对“每一行的表达式”求最小值 | MINX(Sales, Sales[Qty] * Sales[Price]) |
MAX | 对“某一列”直接取最大值 | MAX(Sales[Amount]) |
MAXX | 对“每一行的表达式”求最大值 | MAXX(Sales, Sales[Qty] * Sales[Price]) |
🟡 MIN vs MINX
| 对比点 | MIN | MINX |
|---|---|---|
| 输入参数 | 一列(Column) | 表 + 表达式(Row Context) |
| 是否逐行处理 | ❌ 否 | ✅ 是 |
| 典型用途 | 找一列中的最小值 | 每行计算利润等复杂值后,再找最小值 |
🔸 示例:
-- 直接找订单日期最小值
最早订单日期 = MIN(Sales[OrderDate])
-- 找最小的订单利润
最低利润 = MINX(Sales, Sales[Quantity] * Sales[ProfitPerUnit])
🔵 MAX vs MAXX
| 对比点 | MAX | MAXX |
|---|---|---|
| 输入参数 | 一列(Column) | 表 + 表达式(Row Context) |
| 是否逐行处理 | ❌ 否 | ✅ 是 |
| 典型用途 | 找一列中的最大值 | 每行计算利润、金额后,再取最大值 |
🔹 示例:
-- 找销售最大金额
最大销售额 = MAX(Sales[Amount])
-- 找最大利润订单
最大利润 = MAXX(Sales, Sales[Quantity] * Sales[ProfitPerUnit])
✅ 总结口诀
| 功能 | 使用场景 | 用法 |
|---|---|---|
MIN | 某列的最小值 | MIN(表[列]) |
MINX | 表达式的最小值 | MINX(表, 表达式) |
MAX | 某列的最大值 | MAX(表[列]) |
MAXX | 表达式的最大值 | MAXX(表, 表达式) |
📌 小贴士:
-
如果你写的是这样:
MAXX(Sales, Sales[Amount])其实和:
MAX(Sales[Amount])结果一样,只是第一种写法更灵活、能扩展表达式。
🎯 推荐应用场景
| 目标 | 函数推荐 |
|---|---|
| 最早/最晚下单时间 | MIN() / MAX() |
| 最贵商品的成本(跨表) | MAXX(Product, Product[Cost]) |
| 每笔交易利润的最大值(跨字段计算) | MAXX(Sales, Sales[Qty] * Sales[Profit]) |