< návrat zpět

MS Excel


Téma: Vynásobit hodnoty kurzem - Power Query rss

Zaslal/a 11.4.2024 7:46

AlfanDobrý den,
mám dotaz.
V Dotazu "rate" mám vždy aktuální kurz, který modifikuji na listu "rate".
Chci se zeptat zda lze ten sloupec "cena" v Dotazu "zbozi" nějak automaticky vynásobit tím sloupcem "rate" bez toho, abych přidával nový sloupec?
Děkuji.

Příloha: zip56414_nasobeni-sloupcu-pq.zip (46kB, staženo 5x)
Zaslat odpověď >

#056415
avatar
např. funkce Table.TransformColumns:

// zbozi
let
Zdroj = Excel.CurrentWorkbook(){[Name="zbozi"]}[Content],
#"Změněný typ" = Table.TransformColumnTypes(Zdroj,{{"název", type text}, {"czk", type number}}),
Rate = Table.TransformColumns(#"Změněný typ",{{"czk", each _ * rate, type number}})
in
Rate

// rate (vrátí hodnotu a ne tabulku)
let
Zdroj = Excel.CurrentWorkbook(){[Name="rate"]}[Content],
#"Změněný typ" = Table.TransformColumnTypes(Zdroj,{{"rate", type number}}),
rate1 = #"Změněný typ"{0}[rate]
in
rate1
citovat
#056416
Alfan
Díkycitovat
#056485
Alfan
@lubo
tuhle část:
Rate = Table.TransformColumns(#"Nahrazená hodnota",{{"cena", each _ * rate, type number}})

Jak si mám nastavit PQ, aby když píši v rozšířeném editoru jsem mohl kromě sloupce "cena" namapovat i jiné sloupce a ty pak vynásobit?
Aby se mi prostě nabízely názvy sloupců.
A mohu do toho jednoho řádku vypsat všechny sloupce, které chci vynásobit?
Děkuji.citovat
#056488
elninoslov
InteliSense je síce zabugovaný jak sviňa, ale v tomto prípade to nemôže fungovať nijako. Vy tam potrebujete názvy stĺpcov písať ako text v úvodzovkách, a IS nemôže nijako vedieť, čo chcete napísať ako text do úvodzoviek. Rovnako napr. INDIRECT/NEPŘÍMÝ.ODKAZ, aj keď máte pomenovanú oblasť, tak keď ju píšete ako text v úvodzovkách, tak o tom IS netuší a neponúka ako v normálnom vzorci.

Budete to musieť asi iba takto doplniť:
= Table.TransformColumns(#"Změněný typ",{{"czk", each _ * rate, type number},{"czk2", each _ * rate, type number}})

Uvidíme, čo na to lubo.citovat
#056497
avatar
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í)citovat
#056498
elninoslov
@lubo: Super. Mal by ste napísať knihu. Kúpim.

Škoda toho našepkávača InteliSense. Že to nefunguje ak sú názvy stĺpcov písané ako parametre string je logické, ale že to nefachá ani keď píšem notáciu [] v editovacom riadku ani v rozšírenom editore, je na prd. Ide to niekomu?citovat
#056500
Alfan
Mně to právě taky nejde.

Já myslel, že mohu dát to násobení pro vypsané sloupce do jedné závorky.

Knihu bych koupil.

Zatím mám 2 od Michala Chmelaře.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

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21