IF si CALCULATE functii DAX, mod de folosire impreuna
16236
post-template-default,single,single-post,postid-16236,single-format-standard,bridge-core-1.0.6,ajax_fade,page_not_loaded,,qode_grid_1200,qode-theme-ver-18.2,qode-theme-bridge,qode_header_in_grid,wpb-js-composer js-comp-ver-6.0.5,vc_responsive

IF si CALCULATE – Functii DAX folosite impreuna in Power BI

Power BI, Power Pivot (Functiile IF, CALCULATE, ALLEXCEPT, MIN)
IFCALCULATEfunctiiDAX

IF si CALCULATE utilizate impreuna

Am pornit aceasta postare de la o problema expusa de membrul unuia din forumurile dedicate subiectului Power BI si de modul ei original de rezolvare pornind de la functile IF si CALCULATE.

IF cum probabil stiti deja, este o functie logica care testeaza daca o anumita conditie este indeplinita avand ca rezultat “True” (1) sau daca nu, “False” (0).

Pentru cine inca nu a aflat, CALCULATE este una dintre cele mai importante si folosite functii DAX in Power BI si Power Pivot din Microsoft Excel. Cu ajutorul acestei functii putem face calcule destul de puternice (care rezulta in Measures/Masuri) insa ea functioneaza ca un “container” pentru formule DAX mult mai sofisticate si compexe.

Situatia din tabela de date

Problema utilizatorului pornea de la o tabela simpla cu 2 coloane, una cu UserName si cealalta cu Datetime ca in tabelul de mai jos:

Practic tabelul face referire la utilizatori si data/ora de logare intr-un sistem, utilizatorul dorind sa creeze o coloana calculata (Calculated Column) numita First_Interaction. In aceasta, trebuie sa fie marcat cu “True” prima logare a utilizatorului din ziua respectiva si cu “False” celelalte logari. In final, totul trebuie sa arate ca in imaginea de mai jos:

IF si CALCULATE, mod de utilizare impreuna

Am pornit de la functia IF, cea care ne ajuta sa validam conditia. Insa fara functia CALCULATE nu am putea testa aceste conditii. Mai avem nevoie de MIN, care ne returneaza valoarea cea mai mica (prima) si de o alta functie ALLEXCEPT.

Functia DAX ALLEXCEPT are rolul de a elimina contextul de filtrare in tabel cu exceptia filtrelor aplicate coloanei sau coloanelor specificate. Vom vorbi mai mult despre ea intr-un articol separat.

Combinand cele de mai sus, formula noastra DAX in Power BI sau Power Query arata de felul urmator:

First_Interaction =
IF (
    CustomerLog[Datetime]
        CALCULATE (
            MIN ( CustomerLog[Datetime] ),
            ALLEXCEPT ( CustomerLog, CustomerLog[UserName] )
        ),
    1,
    0
)

Intrebari/nelamuriri?

Daca aveti intrebari legate de modul de utilizare a acestei functii, va asteptam la sectiunea comentarii. In cazul in care aveti un subiect diferit de cel prezent, scrie-ne! Iti vom raspunde in cel mult 48 ore!

1 Comment

Post A Comment