Filtrering och räkning med DAX

DAX-funktioner i Power BI

Maarten Van den Broeck

Content Developer at DataCamp

Filterfunktioner

  • Filter tillämpas på filterkontexten
  • Filter har företräde framför visuella objekt
Total Sales = SUM(Orders[Sales])

DAX-funktioner i Power BI

Filterfunktioner

  • Filter tillämpas på filterkontexten
  • Filter har företräde framför visuella objekt
Total Sales = SUM(Orders[Sales])
CALCULATE(<expression>, 
            <filter1> , [<filter2> [, ...]])
  • Används med mellanliggande funktioner
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
DAX-funktioner i Power BI

Filterfunktioner

  • Filter tillämpas på filterkontexten
  • Filter har företräde framför visuella objekt
Total Sales = SUM(Orders[Sales])
CALCULATE(<expression>, 
            <filter1> , [<filter2> [, ...]])
  • Används med mellanliggande funktioner
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
DAX-funktioner i Power BI

Fler filteralternativ

  • FILTER(<table>, <filter>)
    • Returnerar en filtrerad tabell
Total Sales Chuck = 
CALCULATE(
    [Total Sales],
    FILTER(Fact_Orders,
        RELATED(Dim_Sales[Salesperson]) = "Chuck"))
DAX-funktioner i Power BI

Fler filteralternativ

  • FILTER(<table>, <filter>)
    • Returnerar en filtrerad tabell
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() används för att hämta värden från en annan tabell
DAX-funktioner i Power BI

Fler filteralternativ

  • CROSSFILTER(<col1>, <col2>, <direction>)
    • Anger korsfiltreringsriktningen mellan två kolumner

Enkelriktad relation mellan två tabeller, Fact_Orders och Dim_Returns

CROSSFILTER(Dim_Returns[Order ID], 
            Fact_Orders[Order ID],
            Both)
  • Åsidosätter relationsriktningen i datamodellen
DAX-funktioner i Power BI

Fördelarna med filtrering i DAX

  • Förbättrar prestanda
    • Filtrera bort onödiga data
    • Definiera specifika relationer mellan tabeller
  • Återanvändbarhet
    • Referera till andra beräknade mått
  • Mer komplexa beräkningar
    • Kompakt syntax
DAX-funktioner i Power BI

Räkning

  • COUNT(<column>)
    • Returnerar antalet rader med tal, datum eller strängar i en kolumn
  • COUNTA(<column>)
    • Returnerar antalet rader med tal, datum, strängar eller booleska värden i en kolumn
  • COUNTBLANKS(<column>)
    • Returnerar antalet tomma rader
  • DISTINCTCOUNT(<column>)
    • Returnerar antalet distinkta värden i en kolumn
  • COUNTROWS(<table>)
    • Returnerar antalet rader med tal, datum och strängar i en tabell
DAX-funktioner i Power BI

Nu kör vi en övning!

DAX-funktioner i Power BI

Preparing Video For Download...