Power BI / DAX berekening

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • makooy
  • Registratie: Januari 2011
  • Laatst online: 18:57
Hi,

Ik ben een beginner in Power BI en wil daarmee enkele excelsheets vervangen die op dit moment nog handmatig bijgewerkt worden.

- input:
1 excel sheet met export van alle uren vanuit AFAS. Hierin staan alle uren die de werknemers hebben gemaakt per regel. kan dus heel goed zijn dat 1 werknemer meerdere regels op een dag heeft.

1 tabel met "target" uren per werknemer. een aantal werknemers hebben target uren, eronder is niet goed (dan is er te weinig werk), er boven is ook niet goed (teveel werk).


- Wat we willen:
Een tabel waarin per werknemer per week staat of die werknemer die week te weinig of te veel "target"-uren heeft gemaakt.

- We zijn nu aan het stoeien met het volgende:
we hebben een measure voor de gewerkte uren van die week op basis van de lose entries. dat gaat goed.
Echter "Target"-uren - "gewerkte uren" in een cell krijgen lukt niet. Als ik een calculate maak op basis van de "target-uren dan telt hij alle waardes in de kolom op en pakt hij niet de waarde die bij de desbetreffende werknemer hoort.

Ik heb de file geupload op WeTransfer: https://we.tl/t-PyzxQaVVIH met demo-data, dus niet onze echte data maar wel vergelijkbare data.

Iemand enig idee hoe ik de "sum" van een colum van een medewerker minus een vaste waarde uit een andere column voor elkaar kan krijgen?

TWEAKERS EREDIVISIE VOETBALPOULE!

Beste antwoord (via makooy op 11-08-2021 14:18)


  • tdn135
  • Registratie: December 2003
  • Niet online
Allereerst dien je een relatie te maken tussen de twee tabellen. Je koppeling lukt alleen niet goed omdat in de ene tabel Employee 1 bevat en in de andere tabel employee1. Dit dien je even in de query editor aan te passen.

Vervolgens ga je vanuit Target[Consultant] de tabel starten i.p.v. importfile[Consultant].

Vervolgens haal je uit je formule 'importfile'[Totaal] > 0. Bijvoorbeeld:
code:
1
2
3
Verschil = 
CALCULATE ( SUM ( importfile[Aantal] ), importfile[Werksoort] <> "KM" )
    - SUM ( Target[Targethours] )


Dit gaat per week goed, alleen niet op totaalniveau bij meerdere weken. Daarvoor zal je iets moeten bedenken dat je de targets vermenigvuldigt met het aantal geselecteerde weken.

Alle reacties


Acties:
  • 0 Henk 'm!

  • ShitHappens
  • Registratie: Juli 2008
  • Laatst online: 20:47
Dit is een vraag die heel erg lijkt op Excel vraag en als ik me niet vergis, zijn de formules nagenoeg hetzelfde. Misschien is daar wat inspiratie uit te halen.?

Acties:
  • 0 Henk 'm!

  • HKLM_
  • Registratie: Februari 2009
  • Laatst online: 22:07
Waarom met excel hannesen als je Power Bi ook kan koppelen met AFAS ik denk dat je data extractie dan ook makkelijker gaat worden.

Cloud ☁️


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • tdn135
  • Registratie: December 2003
  • Niet online
Allereerst dien je een relatie te maken tussen de twee tabellen. Je koppeling lukt alleen niet goed omdat in de ene tabel Employee 1 bevat en in de andere tabel employee1. Dit dien je even in de query editor aan te passen.

Vervolgens ga je vanuit Target[Consultant] de tabel starten i.p.v. importfile[Consultant].

Vervolgens haal je uit je formule 'importfile'[Totaal] > 0. Bijvoorbeeld:
code:
1
2
3
Verschil = 
CALCULATE ( SUM ( importfile[Aantal] ), importfile[Werksoort] <> "KM" )
    - SUM ( Target[Targethours] )


Dit gaat per week goed, alleen niet op totaalniveau bij meerdere weken. Daarvoor zal je iets moeten bedenken dat je de targets vermenigvuldigt met het aantal geselecteerde weken.

Acties:
  • 0 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 15:27
Ik werk normaal niet met PowerBI, maar wel met PowerQuery in Excel en als ik het goed heb werkt het allebei hetzelfde.

Volgens mij moet je de twee tabellen nu in Query onder elkaar plakken (mergen)? Je kunt als ik het goed heb geen berekeningen uitvoeren op gegevens in twee verschillende tabellen, ook niet als ze gekoppeld zijn. Al je data dienen in één tabel te staan (de brondata). Aanvullende tabellen die je koppelt zijn bedoeld om sorteringen, groeperingen e.d. aan te brengen.

Stel: tabel Realisatie ziet bijvoorbeeld zo uit:
code:
1
2
3
4
5
6
7
Medewerker   Datum   Uren Klant/opdracht
Jantje       1-4-21  2    Philips
Jantje       1-4-21  6    Unilever
Greetje      1-4-21  8    Shell
Jantje       2-4-21  8    Philips
Greetje      2-4-21  5    Shell
Greetje      2-4-21  3    Unilever

En tabel Norm ziet er zo uit:
code:
1
2
3
4
5
Medewerker   Datum   Uren 
Jantje       1-4-21  8
Jantje       2-4-21  8
Greetje      1-4-21  8
Greetje      2-4-21  8

Plak je ze onder elkaar, dan krijg je dit:
code:
1
2
3
4
5
6
7
8
9
10
11
Bron Medewerker   Datum   Uren Klant/opdracht
Real Jantje       1-4-21  2    Philips
Real Jantje       1-4-21  6    Unilever
Real Greetje      1-4-21  8    Shell
Real Jantje       2-4-21  8    Philips
Real Greetje      2-4-21  5    Shell
Real Greetje      2-4-21  3    Unilever
Norm Jantje       1-4-21  8
Norm Jantje       2-4-21  8
Norm Greetje      1-4-21  8
Norm Greetje      2-4-21  8

Volgens mij kun je dan met een Measure het verschil tussen Norm en Real berekenen?

Hier zou een handtekening kunnen staan.


Acties:
  • 0 Henk 'm!

  • tdn135
  • Registratie: December 2003
  • Niet online
Patrick_6369 schreef op woensdag 11 augustus 2021 @ 12:24:
Ik werk normaal niet met PowerBI, maar wel met PowerQuery in Excel en als ik het goed heb werkt het allebei hetzelfde.

Volgens mij moet je de twee tabellen nu in Query onder elkaar plakken (mergen)? Je kunt als ik het goed heb geen berekeningen uitvoeren op gegevens in twee verschillende tabellen, ook niet als ze gekoppeld zijn. Al je data dienen in één tabel te staan (de brondata). Aanvullende tabellen die je koppelt zijn bedoeld om sorteringen, groeperingen e.d. aan te brengen.

Stel: tabel Realisatie ziet bijvoorbeeld zo uit:
code:
1
2
3
4
5
6
7
Medewerker   Datum   Uren Klant/opdracht
Jantje       1-4-21  2    Philips
Jantje       1-4-21  6    Unilever
Greetje      1-4-21  8    Shell
Jantje       2-4-21  8    Philips
Greetje      2-4-21  5    Shell
Greetje      2-4-21  3    Unilever

En tabel Norm ziet er zo uit:
code:
1
2
3
4
5
Medewerker   Datum   Uren 
Jantje       1-4-21  8
Jantje       2-4-21  8
Greetje      1-4-21  8
Greetje      2-4-21  8

Plak je ze onder elkaar, dan krijg je dit:
code:
1
2
3
4
5
6
7
8
9
10
11
Bron Medewerker   Datum   Uren Klant/opdracht
Real Jantje       1-4-21  2    Philips
Real Jantje       1-4-21  6    Unilever
Real Greetje      1-4-21  8    Shell
Real Jantje       2-4-21  8    Philips
Real Greetje      2-4-21  5    Shell
Real Greetje      2-4-21  3    Unilever
Norm Jantje       1-4-21  8
Norm Jantje       2-4-21  8
Norm Greetje      1-4-21  8
Norm Greetje      2-4-21  8

Volgens mij kun je dan met een Measure het verschil tussen Norm en Real berekenen?
PowerQuery is (nagenoeg) hetzelfde en DAX is ook beschikbaar in Excel. Je kunt ook relaties maken in Excel. Je oplossing werkt wel, ik zou alleen proberen om het relationeel op te lossen i.p.v. 1 tabel te maken. Dan kun je enorme tabellen krijgen die daardoor traag werken. In dit geval gaat het om potentieel veel mutatie regels dus dan wordt het al snel groot.

Acties:
  • +1 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 15:27
tdn135 schreef op woensdag 11 augustus 2021 @ 17:09:
[...]
ik zou alleen proberen om het relationeel op te lossen i.p.v. 1 tabel te maken.
Stel de data van de TS ziet er inderdaad uit zoals ik hierboven heb weergegeven, hoe zou je die relatie dan maken? Want er is in die data geen one-to-many relatie mogelijk, alleen many-to-many en dat gaat niet. Ik ben benieuwd zodat ik mijn eigen modellen ook beter kan maken in de toekomst!

EDIT: Ik vergat dat je voor mij al een antwoord had gepost. Dat lijkt mijn kennis van Query al te boven te gaan, dus pas ik daar maar even voor.

[ Voor 13% gewijzigd door Patrick_6369 op 12-08-2021 08:30 . Reden: Niet goed gelezen ]

Hier zou een handtekening kunnen staan.


Acties:
  • +1 Henk 'm!

  • tdn135
  • Registratie: December 2003
  • Niet online
Patrick_6369 schreef op donderdag 12 augustus 2021 @ 08:27:
[...]

Stel de data van de TS ziet er inderdaad uit zoals ik hierboven heb weergegeven, hoe zou je die relatie dan maken? Want er is in die data geen one-to-many relatie mogelijk, alleen many-to-many en dat gaat niet. Ik ben benieuwd zodat ik mijn eigen modellen ook beter kan maken in de toekomst!

EDIT: Ik vergat dat je voor mij al een antwoord had gepost. Dat lijkt mijn kennis van Query al te boven te gaan, dus pas ik daar maar even voor.
Het verschil is dat jij waarschijnlijk terecht een datum bij de norm bedenkt. Dan krijg je inderdaad meerdere keren de naam en het aantal uren. De TS heeft een vast bestand met het aantal normuren per medewerker, dus maar 4 regels.

Many-to-many kan overigens wel in Power BI, maar is niet aan te raden i.v.m. mogelijk foutieve resultaten als je niet precies weet wat de impact daarvan is en een mindere performance.

Ik kan overigens de Power BI CheatSheet aan de TS aanraden en ieder die met Power BI aan de slag is.
Pagina: 1