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"
Pokud je dotaz na pozici vybrané buňky v tabulce, tak stačí
On Error GoTo nic
With Selection
If .ListObject.Name = "Tabulka" Then MsgBox .Row - .ListObject.Range.Row
End With
nic:
Třeba:
=SUMIFS(XLOOKUP(H2;PROČISTIT(D1:F1);D2:F38);A2:A38;">="&I2;A2:A38;"<="&J2)
Obecně.
*IF* funkce jsou rychlejší, než jejich maticové ekvivalenty.
Pokud máte XLOOKUP, tak kombinaci INDEX/POZVYHLEDAT nepotřebujete (má méně možností a je pomalejší).
Pokud potřebujete hodně různých vzorců (neuvádíte jestli se jedná jen o počet nebo o různé výpočty), tak to řešte v datovém modelu.
Protože buňka hodnotu má: "" a číslo je menší než text
Pokud berete barvu podle podmíněného formátu, pak je vhodnější použít vlastnost Range.DisplayFormat:
FarbaNew = .Cells(R + 1, 2).DisplayFormat.Interior.Color
Tedy pokud je v buňce opravdu podmíněný formát, a ne přebarvení makrem.
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.