< návrat zpět

MS Excel


Téma: PowerPivot - DAX - počítaná "položka" rss

Zaslal/a 11.3.2023 13:09

Data, tabulka Vypocet
Rok | Hodnota
2021 | 10
2022 | 15

V KT na listu by se meziroční rozdíl hodnot dělal buď počítanou položkou nebo přes Součet hodnoty: Zobrazení hodnot (Rozdíl mezi).

Tabulka je ale v datovém modelu (Power Pivotu) a vrací se do listu v podobě KT. Jak se v DAXu udělá ta počítaná "položka"?

Jakože míry přes ekvivalent SUMIFS?
Hodnoty2020:=CALCULATE(sum(Vypocet[Hodnota]);Vypocet[Rok]="2020")
Hodnoty2021:=CALCULATE(sum(Vypocet[Hodnota]);Vypocet[Rok]="2021")
HodnotyDelta:=[Hodnoty2021]-[Hodnoty2020]
možná vše v jednom, pokud je to tedy dobře(jednoduše).

Když dám Rok do sloupců v KT (z datového modelu) ...
Rok
2021 | 2022

a HodnotyDelta se přesunou pod Σ Hodnoty, tak se čísla objeví v každém z roku (+ Celkem)

2021 | HodnotyDelta | 2022 | HodnotyDelta + Celkem | Celkem HodnotyDelta

Jak to udělat jinak, abych HodnotyDelta viděl jen za dvojicí let, resp. co dělám špatně?

Zaslat odpověď >

#054617
avatar
Ještě tedy takhle: Ono tady by stačilo Součet hodnoty: Zobrazení hodnot (Rozdíl mezi), ale co kdyby výpočet byl malinko jinak, jakože hodnoty 2022 chci zobrazovat třeba jako 100*2022/2021 nebo zkrátka něco, co není v průvodci pro zobrazení hodnot?citovat
#054626
avatar
Co je špatně. Datový model je databáze a podle toho je potřebné psát výrazy.
Předpokládám, že těch roků může být více.

Hodnota_sum :=
SUM ( Vypocet[Hodnota] )

Hodnoty_delta :=
VAR akt_rok =
IF ( HASONEVALUE ( Vypocet[Rok] ); VALUES ( Vypocet[Rok] ); BLANK () )
VAR min_rok = akt_rok - 1
VAR akt_hodnota =
IF ( ISBLANK ( akt_rok ); BLANK (); [hodnota_sum] )
VAR min_hodnota =
CALCULATE ( [hodnota_sum]; Vypocet[Rok] = min_rok )
RETURN
akt_hodnota - min_hodnota

Je to z mobilu, spíš možný koncept. Vůbec jste nezmínil verzi, objem dat, ...
Není tu řešen souhrn, ...

Pokud vadí vzorec s použitím var - je to obvykle čitelnější, lépe se to ladí, snadno se to převede na kompaktní obludu.

Poslední otázku jsem nepochopil.citovat
#054634
avatar
Roky jsou tam dva.
Nad roky je ještě v hierarchii jakože účet, tudíž ty dva roky se ve sloupci zdrojových dat opakují.
Co nejjedodušeji řečeno, zajímalo mě, jak se z v datovém modelu udělá ekvivalent počítané položky = 100 * 2022 / 2021 (což je jakýsi hybrid mezi rozdílem a procentem), tj. na té výše uvedené uvedené dvojici hodnot je 150 (%).citovat
#054640
avatar
Další dodatek: Datumy 2021 a 2022 neleží pod sebou, takže podle mě nejde dost dobře použít trik v Power Query přes dvojí indexovaný sloupec (od nuly a jedničky)citovat
#054642
avatar

PetrKop napsal/a:

Roky jsou tam dva.
Co nejjedodušeji řečeno, zajímalo mě, jak se z v datovém modelu udělá ekvivalent počítané položky = 100 * 2022 / 2021 (což je jakýsi hybrid mezi rozdílem a procentem), tj. na té výše uvedené uvedené dvojici hodnot je 150 (%).


přírůstek :=
VAR akt_rok =
IF ( HASONEVALUE ( Vypocet[Rok] ); VALUES ( Vypocet[Rok] ); BLANK () )
VAR min_rok = akt_rok - 1
VAR akt_hodnota =
IF ( ISBLANK ( akt_rok ); BLANK (); [hodnota_sum] )
VAR min_hodnota =
CALCULATE ( [hodnota_sum]; Vypocet[Rok] = min_rok )
RETURN
DIVIDE ( akt_hodnota; min_hodnota )

Měřítko naformátujte jako procento.

Jde o standardní přístup, funguje pro více let. Měl by se zobrazit druhého roku. Nevím, jak si představujete chování výpočtu.

Pokud to má být v jen souhrnu a jen dva roky 2021 a 2022, tak

přírůstek :=
IF (
DISTINCTCOUNT ( Vypocet[Rok] ) = 2;
DIVIDE (
CALCULATE ( [Hodnota_sum]; Vypocet[Rok] = 2022 );
CALCULATE ( [Hodnota_sum]; Vypocet[Rok] = 2021 )
);
BLANK ()
)


PS Netestováno, nechce se mi vymýšlet data a sestavy.citovat
#054643
avatar

PetrKop napsal/a:

Další dodatek: Datumy 2021 a 2022 neleží pod sebou, takže podle mě nejde dost dobře použít trik v Power Query přes dvojí indexovaný sloupec (od nuly a jedničky)


Nechápu, jak to souvisí s výpočtem v DAX.

Nevím, o jaký "trik" jde a tedy ani jaký je jeho účel.

Jak jsem už zmiňoval, datový model je DATABÁZE a ne list excelu.citovat
#054644
avatar
Vyzkouším, zkusím nastudovat, zatím díky za čas.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Čas od do

lubo • 19.4. 16:30

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32