Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 40

Alfan napsal/a:


V tomto kroku:
Složky = List.Distinct(#"Změněný typ"[SLOŽKA])
Se to slovo "Seznam" zobrazí automaticky, díky tomuto zápisu?


Nechápu. Slovo "Seznam" se mi nezobrazuje.

Alfan napsal/a:


A tento krok odstraní konkrétně co?
#"Odebrané ostatní sloupce" = Table.SelectColumns(Rozbalit,{"ZAMĚSTNANEC", "měsíc"}
& List.Transform(Složky, each _ & " (hod.)")
& List.Transform(Složky, each _ & " (Kč)"))


Neodstraní nic. Jen setřídí sloupce.

Něco jako:

let
Zdroj = Excel.CurrentWorkbook(){[Name="data"]}[Content],
#"Změněný typ" = Table.TransformColumnTypes(Zdroj,{{"Kč", type number}}),
#"Spojená data" = Table.CombineColumnsToRecord(#"Změněný typ", "data", {"HODINY ", "Kč"}),
#"Převedený sloupec" = Table.Pivot(#"Spojená data", List.Distinct(#"Spojená data"[SLOŽKA]), "SLOŽKA", "data"),
Složky = List.Distinct(#"Změněný typ"[SLOŽKA]),
Rozbalit = List.Accumulate(Složky, #"Převedený sloupec",
(tab, sl) => Table.ExpandRecordColumn(tab, sl, {"HODINY ", "Kč"}, {sl & " (hod.)", sl & " (Kč)"})),
#"Odebrané ostatní sloupce" = Table.SelectColumns(Rozbalit,{"ZAMĚSTNANEC", "měsíc"}
& List.Transform(Složky, each _ & " (hod.)")
& List.Transform(Složky, each _ & " (Kč)"))
in
#"Odebrané ostatní sloupce"


?

Ontik napsal/a:


Datum vypadá takto 01.07 a potřebuji ho převést na 01.07.2024


Nevypadá, Je tam text v této podobě. Automatický převod může nějakou dobu fungovat, nějaký rok si to vymyslí, většinou asi správně, někdy špatně.

Prostě si srovnejte data.

Ve mám pocit, že ve verzi 2019 xmatch ještě nebylo. Stačí místo xmatch použít pozvyhledat:

=KDYŽ(JE.ČISLO(POZVYHLEDAT([@porovnat];tblKontejnery[porovnat];0));1;"")

Hláška "nefunguje" je na ... Minimálně co to hlásí, jaká je verze Excelu, kde je zapsán vzorec,...

U mne funguje. Zadal jsem to místo původního countif do tabulky.

Problémy s odkazy jsou diskutovány v souvislosti s předchozí variantou. Pokud je problém xmatch, jsou v Excelu i další funkce.

Jess napsal/a:

Ano Lubo, pak to funguje, ale jak to tedy provést


Otázku nechápu. Pokud je to dotaz na vzorec, tak možností je hodně, třeba:
=KDYŽ(JE.ČISLO(XMATCH([@porovnat];tblKontejnery[porovnat];0));1;"")

Funkce countif (a i ostatní *if funkce) se pokouší převést text který se podobá číslu na číslo, při tom použije 15 pozic a další číslice nahrazuje 0. Výsledek je v ukázce.

Možná řešení: Přidat k číslu nečíselný znak: #123456790123456798

Použít hledání (pro větší soubory dat je to i o dost rychlejší) a testovat nalezeno/nenalezeno.

Číslo 23,238 se s přesností na 2 des. místa zobrazuje jako 23,24. Tj. ta suma je OK. Podobné "nepřesnosti" se zpravidla objevují, pokud je nastaven manuální přepočet. Potom v buňkách zůstávají staré hodnoty.

Jinak doladění tabulek tak, aby seděly všechny součty je poměrně složitý problém. Pro pár hodnot zaokrouhlování pomáhá, jen se musí odladit počet des. míst a buňky, které jsou pro to nejvhodnější.

tak?
=LET(
_datum; DATUMHODN(C2) + D2 + ČAS(2; 0; 0);
_den; DENTÝDNE( _datum; 2 );
hod; HODINA(_datum);
KDYŽ( _den < 6;
VYHLEDAT( hod; {0; 8; 16}; {"N"; "R"; "O"} );
VYHLEDAT( hod; {0; 12}; {"N-12"; "D-12"} )
)
)

Podle nejlepší praxe MS: HSTACK = SROVNAT.VODOROVNĚ

Něco je přeloženo, něco není, na stránkách MS je to často chybně. Navíc AI od ms se "učí" z vlastních chyb, tj. opakuje je a tvrdí, že je nutné si pořídit poslední verzi SW...

Naklikat jde obecně jen omezený počet výpočtů. Ale dá se naklikat základ, který je pak snadné upravit.

Funkce Table.Group má ve třetím parametru seznam, ve kterém je ve vnořených seznamech předpis pro výpočet jednotlivých sloupců. Vždy je to jméno sloupce a funkce, která vypočte hodnotu sloupce pro každý řádek.
Předávaným parametrem je tabulka, která obsahuje všechny řádky původní tabulky, které patří do skupiny.
(funkce "each _" tedy vrací tuto tabulku. )

// máme tabulku rozdělenou podle roku:
#"Seskupené řádky" = Table.Group(Y, {"Y"}, {{"tab", each _, type table [Period=nullable datetime, Index=number, Y=number]}}),
// Klik na text "Table" v prvním řádku (pokud je to klik do prázdného místa buňky, tak se tabulka jen ukáže dole):
#"2023" = #"Seskupené řádky"{[Y=2023]}[tab],
// Přidáme Index roku
#"Přidané: Index1" = Table.AddIndexColumn(#"2023", "Index.1", 1, 1, Int64.Type),
// a máme potřebný kód funkce
// Vytvoříme funkci, kde tabulka je v proměné "_" a pojmenujeme ji třeba #"fceIndexRoku":
fceIndexRoku = each Table.AddIndexColumn(_, "Index.1", 1, 1, Int64.Type),
// opravíme funkci, která vrací sloupec "tab" ve funkci Table.Group. Tady je to změněno na dalším řádku:
#"Seskupené řádky_2" = Table.Group(Y, {"Y"}, {{"tab", fceIndexRoku, type table}})
// místo názvu funkce můžeme vložit vygenerovaný kód funkce: each Table.AddIndexColumn(_, "Index.1", 1, 1, Int64.Type)
//....
// odstraníme pomocné kroky

V podstatě je to stejné, jako postup od venyho.

Tabulka se rozdělí do více tabulek podle roku (funkce Table.Group) ve druhém sloupci výsledné tabulky jsou v buňkách tyto tabulky. A do každé tabulky s jedním rokem se přidá index (od jedné).

Pak se tabulky zase spojí do jedné.

veny přidal index ve funkci Table.AddColumns, tady je to v prvním případě v Table.TransformColumns, ve druhém rovnou v Table.Group (při seskupování).

Pak se tabulky spojí (rozbalí se sloupec s tabulkami)

Klikání do prázdného místa v políčku s "table" ukáže obsah tabulky v jednotlivých krocích.

Tak:

let
Zdroj = Excel.CurrentWorkbook(){[Name="dataf"]}[Content],
#"Změněný typ" = Table.TransformColumnTypes(Zdroj,{{"Period", type datetime}}),
#"Seřazené řádky" = Table.Sort(#"Změněný typ",{{"Period", Order.Ascending}}),
#"Přidané: Index" = Table.AddIndexColumn(#"Seřazené řádky", "Index", 1, 1, Int64.Type),
Y = Table.AddColumn(#"Přidané: Index", "Y", each DateTime.ToRecord([Period])[Year], Int64.Type),
#"Seskupené řádky" = Table.Group(Y, {"Y"}, {{"tab", each _, type table [Period=nullable datetime, Index=number, Y=number]}}),
#"Odebrané sloupce" = Table.RemoveColumns(#"Seskupené řádky",{"Y"}),
Index.2 = Table.TransformColumns(#"Odebrané sloupce",{{"tab", each Table.AddIndexColumn(_, "Index.1", 1, 1, Int64.Type)}}),
#"Rozbalené tab" = Table.ExpandTableColumn(Index.2, "tab", {"Period", "Index", "Y", "Index.1"}, {"Period", "Index", "Y", "Index.1"})
in
#"Rozbalené tab"


Tohle je o malinko kratší, ale hůř se to "nakliká":
let
Zdroj = Excel.CurrentWorkbook(){[Name="dataf"]}[Content],
#"Změněný typ" = Table.TransformColumnTypes(Zdroj,{{"Period", type datetime}}),
#"Seřazené řádky" = Table.Sort(#"Změněný typ",{{"Period", Order.Ascending}}),
#"Přidané: Index" = Table.AddIndexColumn(#"Seřazené řádky", "Index", 1, 1, Int64.Type),
Y = Table.AddColumn(#"Přidané: Index", "Y", each DateTime.ToRecord([Period])[Year], Int64.Type),
#"Seskupené řádky" = Table.Group(Y, {"Y"}, {{"tab",
each Table.AddIndexColumn(_, "Index.1", 1, 1, Int64.Type),
type table [Period=nullable datetime, Index=number, Y=number, Index.1 = number]}}),
#"Odebrané sloupce" = Table.RemoveColumns(#"Seskupené řádky",{"Y"}),
#"Rozbalené tab" = Table.ExpandTableColumn(#"Odebrané sloupce", "tab",
{"Period", "Index", "Y", "Index.1"})
in
#"Rozbalené tab"

Proč to neuděláte ve wordu? - Hromadný tisk, data z excelu...

Jako vždy, je možností docela dost.
Pokud jse o to, aby bylo možné sloupce zadávat jednoduše,
nabízí se uložení jmen do seznamu, (zápisem , načtením z listu, ...).

Např.:
#"Jmena sloupců" = {"czk", "czk1", "czk3", "czk4", atd}

Jedno variantou je vytvořené seznamu parametrů pro Table.TransposeColumns pomocí funkce List.Transform:

var1 = Table.TransformColumns(Tabulka, List.Transform(#"Jmena sloupců", each {_, each _ * rate, type number})),


Totéž, ale snad srozumitelnější (první each je nahrazen explicitní deklarací funkce).

= Table.TransformColumns(Tabulka, List.Transform(#"Jmena sloupců", (s) => {s, each _ * rate, type number}))


Další možností je použití funkce Table.ReplaceValue, nahrazující funkci použijeme vlastní.

var2 = Table.ReplaceValue(Tabulka, 0, rate, (x,y,z) as number => x * z, #"Jmena sloupců")


Jsou i další možnosti (List.Accumulate např., ale to je tady málo efektivní)


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 40

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje