Adventure Works
Adventure Works er en fiktiv multinationel fremstillingsvirksomhed, der bruges som en eksempel database i Microsofts produktdokumentation og træningsmaterialer.
Den omfatter oplysninger om virksomhedens ansatte, produkter, salg, køb og mange andre aspekter af virksomhedens drift.
Den indeholder typisk data for en række forskellige afdelinger, herunder Human Resources, Production, Sales, Marketing og Finance.
ER-Diagram
Datafiler
Datafiler som en samlet ZIP fil
Power BI Filer
- AWC Salgsrapport - Datamodellering.pbix
- AWC Salgsrapport - Visualisering.pbix
- AWC Salgsrapport - DAX.pbix
- AWC Salgsrapport - Final TUEH.pbix
DAX
DAX står for Data Analysis Expressions og er et formelsprog, der bruges i Power BI, samt i andre Microsoft dataanalyseværktøjer som Power Pivot i Excel og SQL Server Analysis Services.
DAX hjælper med at skabe nye informationer fra de data, der allerede er i din model.
DAX er primært et formelsprog, der bruges til at beregne kolonne- og målværdier (kendt som calculated columns og measures) i Power BI’s datamodeller.
Det er et kraftfuldt værktøj til at skabe komplekse beregninger, som er nødvendige for avanceret dataanalyse og rapportering. DAX-formler ligner Excel-formler, men er designet til at arbejde med relationelle data og udføre mere dynamiske og komplekse beregninger.
Nøgleegenskaber ved DAX
- Rækkesammenhæng: DAX kan udføre beregninger på rækkeniveau i en tabel, hvilket gør det muligt at skabe beregnede kolonner.
- Filterkontekst: DAX forstår den aktuelle filterkontekst, som en rapport eller visualisering giver, og beregner resultater inden for denne kontekst.
- Tidsintelligens: DAX indeholder funktioner til at håndtere dato- og tidsbaserede data på en intelligent måde, hvilket gør det nemt at udføre beregninger som year-to-date, month-to-date, og lignende sammenligninger over tid.
- Funktioner: DAX indeholder en række funktioner, der ligner dem i Excel, men også mange, der er unikke for DAX, som er optimeret til at arbejde med data i en datamodel.
DAX er en essentiel del af Power BI, der giver dig mulighed for at tilføje avanceret funktionalitet til rapporter og dashboards, hvilket gør det muligt at udføre dybdegående dataanalyse og opnå indsigt, der ikke er umiddelbart tilgængelige gennem standard visualiseringer og dataopsætninger.
DAX Formler Adventure Works
All Orders
All Orders = CALCULATE( [Total Orders], ALL( Sales))
Average Retail Price
Average Retail Price = AVERAGE( 'Product'[Price] )
% of All Orders
% of All Orders = DIVIDE( [Total Orders], [All Orders] )
Total Orders
Total Orders = DISTINCTCOUNT( Sales[Order Number] )
Total Profit
Total Profit = [Total Revenue] - [Total Cost]
Total Revenue
Total Revenue = SUM( Sales[Extended Price])
Total Cost
Total Cost = SUMX( Sales, Sales[Order Quantity] * RELATED( 'Product'[Cost] ))
Quantity Sold
Quantity Sold = SUM( Sales[Order Quantity])
90-day Rolling Profit
90-day Rolling Profit = CALCULATE ( [Total Profit] , DATESINPERIOD ( Calendar[Date] , MAX ( Calendar[Date] ) , -90 , DAY ) )
Bulk Orders
Bulk Orders = CALCULATE( [Total Orders], Sales[Order Quantity] > 1 )
High Ticket Orders
High Ticket Orders = CALCULATE( [Total Orders], FILTER( 'Product', 'Product'[Price] > [Overall Avg Price]))
Order Target
Order Target = [Prev Month Orders] * 1.1
Overall Avg Price
Overall Avg Price = CALCULATE( [Average Retail Price], ALL( 'Product' ))
Prev Month Orders
Prev Month Orders = IF( MAX( 'Calendar'[Date] ) <= MAX( Sales[Order Date] ), CALCULATE ( [Total Orders], DATEADD (Calendar[Date], -1, MONTH ) ) )
Prev Month Revenue
Prev Month Revenue = IF( MAX( 'Calendar'[Date] ) <= MAX( Sales[Order Date] ), CALCULATE( [Total Revenue], DATEADD( 'Calendar'[Date], -1, MONTH )))
Revenue Target
Revenue Target =
IF (
ISBLANK( MAX ( Sales[Extended Price] ) ),
BLANK(),
[Prev Month Revenue] * 1.1
)
Total Revenue YTD
Total Revenue YTD = TOTALYTD( [Total Revenue], 'Calendar'[Date] )
Weekend Orders
Weekend Orders = CALCULATE( [Total Orders], 'Calendar'[Type of Day] = "Weekend" )
Revenue Target
Revenue Target =
IF (
ISBLANK( MAX ( Sales[Extended Price] ) ),
BLANK(),
[Prev Month Revenue] * 1.1
)
YTD Revenue
YTD Revenue =
VAR IsItFiltered = ISFILTERED ( 'Calendar'[Start of Month] )
VAR DoesItHaveData = NOT ( ISBLANK ( Sales[Total Revenue] ) )
RETURN
IF (
IsItFiltered && DoesItHaveData,
TOTALYTD(
[Total Revenue],
'Calendar'[Date]
)
)