使用 DAX 进行筛选与计数

Power BI 中的 DAX 函数

Maarten Van den Broeck

Content Developer at DataCamp

筛选函数

  • 筛选应用于筛选上下文
  • 筛选优先于任何可视化
Total Sales = SUM(Orders[Sales])

Power BI 中的 DAX 函数

筛选函数

  • 筛选应用于筛选上下文
  • 筛选优先于任何可视化
Total Sales = SUM(Orders[Sales])
CALCULATE(<expression>, 
            <filter1> , [<filter2> [, ...]])
  • 与中间函数配合使用
Total Sales ALL = CALCULATE(
                    [Total Sales],
                    ALL(Orders))

$$ $$ $$

Region Total Sales
Central $501,239.89
East $678,781.24
South $391,721.91
West $725,457.82
TOTAL $2,297,200.86
Power BI 中的 DAX 函数

筛选函数

  • 筛选应用于筛选上下文
  • 筛选优先于任何可视化
Total Sales = SUM(Orders[Sales])
CALCULATE(<expression>, 
            <filter1> , [<filter2> [, ...]])
  • 与中间函数配合使用
Total Sales ALL = CALCULATE(
                    [Total Sales],
                    ALL(Orders))

$$ $$ $$

Region Total Sales Total Sales ALL
Central $501,239.89 $2,297,200.86
East $678,781.24 $2,297,200.86
South $391,721.91 $2,297,200.86
West $725,457.82 $2,297,200.86
TOTAL $2,297,200.86 $2,297,200.86
Power BI 中的 DAX 函数

更多筛选选项

  • FILTER(<table>, <filter>)
    • 返回筛选后的表
Total Sales Chuck = 
CALCULATE(
    [Total Sales],
    FILTER(Fact_Orders,
        RELATED(Dim_Sales[Salesperson]) = "Chuck"))
Power BI 中的 DAX 函数

更多筛选选项

  • FILTER(<table>, <filter>)
    • 返回筛选后的表
Total Sales Chuck = 
CALCULATE(
    [Total Sales],
    FILTER(Fact_Orders,
        RELATED(Dim_Sales[Salesperson]) = "Chuck"))
Total Sales Total Sales Chuck
$2,297,200.86 $235,856.05

$$

  • 使用 RELATED() 从其他表返回值
Power BI 中的 DAX 函数

更多筛选选项

  • CROSSFILTER(<col1>, <col2>, <direction>)
    • 指定两列之间的交叉筛选方向

两个表 Fact_Orders 和 Dim_Returns 之间的单向关系

CROSSFILTER(Dim_Returns[Order ID], 
            Fact_Orders[Order ID],
            Both)
  • 覆盖数据模型中的关系方向
Power BI 中的 DAX 函数

在 DAX 中筛选的益处

  • 提升性能
    • 筛除不必要的数据
    • 定义表间特定关系
  • 可复用性
    • 可引用其他计算度量
  • 更复杂的计算
    • 语法更精炼
Power BI 中的 DAX 函数

计数

  • COUNT(<column>)
    • 返回列中包含数字、日期或字符串的行数
  • COUNTA(<column>)
    • 返回列中包含数字、日期、字符串或布尔值的行数
  • COUNTBLANKS(<column>)
    • 返回空白行数
  • DISTINCTCOUNT(<column>)
    • 返回列中不同值的个数
  • COUNTROWS(<table>)
    • 返回表中包含数字、日期和字符串的行数
Power BI 中的 DAX 函数

Ayo berlatih!

Power BI 中的 DAX 函数

Preparing Video For Download...