A co třeba podmíněný formát v buňce C3? Vzorec: =COUNTIF(oblast;C3)>0
Vložil bych pomocný sloupec, kde by byl rozdíl mezi S a T a šipky by ukazovaly záporné/kladné/nula.
Navíc by se dalo snadno filtrovat řádky.
Pěkné, ale
pokud přidáme sloupec se souhrny za více let, bude výsledek ... podivný.
Kromě toho se metoda nehodí pro jiné míry (průměr unikátných zákazníků v měsíci, ...
Podobně, jako v excelu existují *ifs funkce, má datový model *X funkce. V určitém ohledu si jsou podobné, jen verze v datovém modelu je podstatně výkonější.
Pro výpočet průměru čehokoliv můžeme použít funkci AVERAGEX.
Pokud chceme tedy počítat průměry měsíčních sum, je v daxu přirozený zápis:
Definujeme sumu (tady ji máme) : [Total sales]
Spočítáme průměr:
=AVERAGEX(VALUES(tabulka[mesic]);[Total sales])
Toto je ekvivalent měřítka v článku.
Výraz VALUES(tabulka[mesic]) vrátí tabulku s unikátními měsíci v aktuálním výběru. AVERAGEX pro každý takto vybraný měsíc spočte [Total sales] a vrátí průměr spočtených hodnot.
Pokud chceme navíc zohlednit rok (tj. aby výraz fungoval i pro více let) upravíme první parametr:
=AVERAGEX(SUMMARIZE(tabulka; tabulka[rok], tabulka[mesic] );[Total sales])
Výraz, pokud jsou ve výběru data za více let, spočte pro každý rok a měsíc v aktuálním výběru hodnotu [Total sales] a vrátí průměr spočtených měsíčních hodnot.
Funkce počítá s blokem. Na tvaru nezáleží, řádek, sloupec, více řádků nebo sloupců, ... Druhý blok se nemusí zadat nebo to může být jakýkoliv odkaz. Pokud se počet řádků a sloupců v parametrech neliší, je to ok. Pokud se liší... Hádejte, co pak spočte, tyhle chyby se dost špatně hledají. To je i důvod proč tuto funkci nepoužívat.
Neposlal jste příklad. Tedy jen obecně. První a třetí (pokud je zadán) parametr musí být odkaz. A pak si zkontrolujte, co máte v buňkách. A zkontrolujte si podmínku.
Moc nechápu. Pokud je to výpis z jednotlivých listů a listy jsou řazené za sebou, pak by stačilo:
=SROVNAT.VODOROVNĚ(DO.SLOUPCE(List1:List1000!B3);DO.SLOUPCE(List1:List1000!X4))
Pokud je to drobnost, tak prostě změny neuložím. Pokud vím, že změn bude víc, tak dotaz zduplikuji (pravý klik, duplikovat) a úpravy dělám v kopii.
Pokud je vše ok, tak otevřu editor zkopíruji obsah do schránky a přenesu zase přes editor do původního dotazu.
Tohle, zdá se, funguje. Ignorování velikosti písmen se dá nastavit v parametrech. Předpokládám, že text k odstranění je uveden celý a bude mezi čárkami nebo na začátku a nebo na konci.
=LET(
txt; B2;
f_obalit; LAMBDA(x; "," & x & ",");
f_2carky; LAMBDA(x; DOSADIT(x; ","; ",,"));
f_1carka; LAMBDA(x;
TEXTJOIN(","; PRAVDA; ROZDĚLIT.TEXT(x; ","; ; PRAVDA))
);
vyradit; MAP(
Odstranit[Potřebuji odstranit];
LAMBDA(tx; f_obalit(f_2carky(tx)))
);
vymaz; CONCAT(
ROZDĚLIT.TEXT(
f_obalit(f_2carky(txt));
vyradit;
;
PRAVDA()
)
);
f_1carka(vymaz)
)
Celé se to dá zabalit do LAMBDA a uložit do jména. Pak se to dá použít jako normální funkce.
Tak si vytvořte průřez s polem status.
A můžete filtrovat.
Tak použijte kontingenční tabulku.
Řádky setřiďte podle hodnot (asi sestupně), a v rozbalovacím menu v hlavičce sloupce vyberte filtr hodnot - "prvních 10". Tam pak nastavte první nebo poslední a počet.
Alfan napsal/a:
1) vytvořit měřítka
co to přesně znamená?
Vytvořit nový Vlastní sloupec s tím vzorcem
Sum of km AP:=SUM([km AP])
Alfan napsal/a:
2) měřítko
Vlastní sloupec se vzorcem
prům. spotřeba:=divide([Sum of used litres];[Sum of km AP])
1) je třeba načíst data do datového modelu (včetně správného typu, pokud jsou čísla formátovaná jako text, tak vzorce nebudou fungovat)
2) vytvořit měřítka - sumy (lze použít autosum):
Sum of km AP:=SUM([km AP])
Sum of used litres:=SUM([used litres])
3) Vytvořit měřítko s výpočtem průměrné spotřeby, např.:
prům. spotřeba:=divide([Sum of used litres];[Sum of km AP])
Vytvořit kont. tabulku.
Funkce REDUCE vloží obsah prvního parametru do akumulátoru a potom postupně prochází hodnoty ve druhém parametru.
V každém kroku volá funkci lambda s parametry a = aktuální hodnoty akumulátoru a n = aktuální hodnota z druhého parametru.
Výsledek volání funkce lambda v každém kroku vloží do akumulátoru.
Po vyčerpání všech proměnných vrátí hodnotu akumulátoru.
Detaily viz nápověda.
Nejlepší 3 ženy:
=VZÍT(SORT(FILTER(ZVOLITSLOUPCE($A$2:$B$16;2;1);$C$2:$C$16="Z");2;-1);3)
Poslední 3 ženy:
=VZÍT(SORT(FILTER(ZVOLITSLOUPCE($A$2:$B$16;2;1);$C$2:$C$16="Z");2;1);3)
Neuvedl jste, co máte.
V A1 je text, v A5:A10 jsou povolené znaky. Vzorec vymaže z textu vše, co je v seznamu.
=REDUCE(A1;A5:A10;LAMBDA(a;n;DOSADIT(a; n; "")))
Ve slovenském excelu se funkce DOSADIT jmenuje SUBSTITUTE.
Pokud nejsou na výstupu potřebné původní hodnoty, tak lze použít nahrazení hodnot:
// all_replace
let
Zdroj = Table.Combine({Data2022, Data2023}),
Table.AddColumn(Zdroj, "Rate", each Table.Column(datarate, "rate")),
#"Extrahované hodnoty" = Table.TransformColumns(#"Přidané: Vlastní", {"Rate", each Text.Combine(List.Transform(_, Text.From)), type text}),
#"Změněný typ" = Table.TransformColumnTypes(#"Extrahované hodnoty",{{"Rate", type number}}),
#"Vložené: Sloučený sloupec" = Table.AddColumn(#"Změněný typ", "Period ", each Text.Combine({[Y], [M]}, "-"), type text),
#"Nahrazená hodnota" = Table.ReplaceValue(#"Vložené: Sloučený sloupec",null, null, (x, y, z) as number => x / rate,{"gross salary", "social and health insurance", "net salary", "travel allowance", "allowance", "total company costs", "total net for driver"})
in
#"Nahrazená hodnota"
// rate
let
Zdroj = Excel.CurrentWorkbook(){[Name="datarate"]}[Content][rate]?{0}?
in
Zdroj
Obecně:
Je to pár čísel, na to aby to bylo pomalé.
Vhodnější je poslat tabulku do datového modelu, různé sloupce typu měsíc, rok, ... jsou v tabulce zbytečné. V datovém modelu stačí kliknout na kalendář, vytvořit tabulku a vytvoří se automaticky, ten se spojí relací s původní tabulkou (all).
Pro konverzi je lepší vytvořit samostatné míry.
Efekt: Méně dat, rychlejší aktualizace, flexibilnější výstup.
Pokud chcete sloupce s konverzí přidat, mělo by být rychlejší:
let
Zdroj = Table.Combine({Data2022, Data2023}),
#"Přidané: Vlastní" = Table.AddColumn(Zdroj, "Rate", each rate, type number),
#"Přidané: Vlastní1" = Table.AddColumn(#"Přidané: Vlastní", "Vlastní", each let
rec = [[gross salary],[social and health insurance],[net salary],[travel allowance],[allowance],[total company costs],[total net for driver]],
rec.names = Record.FieldNames(rec),
rec_rate = Record.TransformFields(rec, List.Transform(rec.names, each { _, (f) => f / rate})),
vysl = Record.RenameFields(rec_rate, List.Transform(rec.names, each {_, _ & " EUR"}))
in vysl),
#"Rozbalené Vlastní" = Table.ExpandRecordColumn(#"Přidané: Vlastní1", "Vlastní", Record.FieldNames(#"Přidané: Vlastní1"[Vlastní]{0})),
#"Vložené: Sloučený sloupec" = Table.AddColumn(#"Rozbalené Vlastní", "Period ", each Text.Combine({[Y], [M]}, "-"), type text)
in
#"Vložené: Sloučený sloupec"
Oblíbený formulář Faktura byl vylepšen a rozšířen.

Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.