Příspěvky uživatele


< návrat zpět

Strana:  1 2 3 4 5 6 7 8 9   další » ... 37

V tabulce jsem přidal jména sloupců "b" a "c".

Následující dotaz power query zahodí v tabulce řádky před prvním 1000, pak vybere ve sloupci "b" všechny 1000 a najde následující 1.
vrátí čas u 1000 a u 1 a jejich rozdíl.

let
Zdroj = Excel.CurrentWorkbook(){<Name="Tabulka1">}<Content>,
#"Změněný typ" = Table.TransformColumnTypes(Zdroj,{{"b", Int64.Type}, {"c", type time}}),
#"Najít první 1000" = Table.RemoveFirstN(#"Změněný typ", each <b> <> 1000),
#"Seskupené řádky" = Table.Group(#"Najít první 1000", {"b"},
{
{"start", each _<c>{0}, type time},
{"jedna", each Table.Skip(_, each <b> <> 1)<c>{0}?, type time},
{"Doba", each Table.Skip(_, each <b> <> 1)<c>{0}? - _<c>{0}, type duration}
},
GroupKind.Local,
(x,y) => if (x<b> = 1000) and (y<b> <> 1000) then 0 else 1 ),
#"Odebrané ostatní sloupce" = Table.SelectColumns(#"Seskupené řádky",{"start", "jedna", "Doba"})
in
#"Odebrané ostatní sloupce"


Jak zapsat hranaté závorky? Tady je místo nich <b> a <c>.

Chtělo by to srozumitelné vysvětlení.

Obecně svyhledat vyhledává hodnoty průchodem klíčů pokud je poslední parametr 0, v takovém případě hledá první výskyt klíče, pokud chybí nebo je 1 vyžaduje setříděné klíče a vrací poslední hodnotu.

+ Pokud je prohledávaná oblast 1 řádek, tak to taky nadává smysl

Vzorec může být jednodušší:

=ZABALSLOUPCE(B2:B55;6)

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

V dialogu importovat daty lze vybrat sestavu kontingenční tabulky a neukládat do datového modelu. Potom lze zdroj (pq dotaz) měnit. (U mne to vygeneruje kopii dotazu pod novým jménem, je nutné udržovat názvy. Kde je dotaz použit je vidět ve vlastnostech dotazu)

Chování se může podle verze měnit.

Pokud jsou data v datovém modelu lze samozřejmě měnit obsah tabulky ručně, další alternativou je makro - zřejmě to jde. Testovat to nebudu.

Zřejmě by také šlo, s použitím dimenzí a měřítek měnit rozsah dat v tabulkách jedním filtrem - bylo by to dost práce.

Žádný způsob není snadný, zřejmě bude manuální změna nejsrozumitelnější (rozhodování mezi "jde to" x "umím to").

Chyba, jen připojení. Toto funguje, pokud je dotaz přímo zdrojem kt.

Mimochodem, proč v databázi v databázi ukládáte tabulky se stejnými daty?

Pokud máte kt z datového modelu, tak stačí kt zkopírovat a filtr nastavit v kt.

Jak jsou nastavený ty dotazy (je to jen připojení? - bez tabulky, modelu, ...)

analýza kontingenční tabulky - změnit zdroj dat - použít externí zdroj dat / zvolit připojení.

Když dávám do pq něco podobného, používám obecnější přístup:

Sloupce = {"A", "B", "C", "D", "E", "F", "B"},
Porovnání = Table.AddColumn(
Zdroj,
Text.Combine(Sloupce, ";"), // Jména sloupců v názvu
each List.Accumulate(
List.Skip(Sloupce, 1), // Od druhého prvku
[x = Record.Field(_, Sloupce{0}), vys = ""],
(z, a) => [
x = Record.Field(_, a),
vys = z[vys] & (if z[x] = x then "1" else "0")
]
)[vys],
type text
)

V seznamu Sloupce jsou porovnávané sloupce v potřebném pořadí, mohou být uvedeny i opakovaně.

Jde o opakované vytváření struktury adresářů s případnou drobnou modifikací. A k tomu nemusím spouštět Excel (což trvá mnohem déle než 0.01 sec. 1 ).

Pokud potřebuji opakovaně zakládat adresáře se zadanou strukturou, používám samozřejmě bat. Otevřu adresář a v něm spustím skript:

@echo off
chcp 1250 > nul:

if .%1.==.. (echo Není zadán adresář [nebo jiná zpráva] && goto konec)

mkdir .\%1 2> nul:
if errorlevel 1 (echo dir existuje && goto konec)

:: Do v závorce je seznam adresářů
for %%i in (Podklady AAA\Výstavba "X x x") do mkdir .\%1\%%i

echo hotovo

:konec
rem exit


Ve srovnání se skriptem v excelu je to o hodně rychlejší, a případná modifikace stromu adresářů je také velmi snadná.

Začátečník napsal/a:

Jedno jestli vymazavana oblast bude na konci nebo začátku, hlavně že bude spojitá.


Jedno to není. Odstranění bloku na konci je rychlejší (excel nemusí posouvat buňky nahoru.)

Rychlý postup:

1. v pom sloupci očíslovat řádky (pokud je nutné zachovat pořadí řádků)
2. seřadit podle sl A
3. vybrat blok, kde A <> 1 a odstranit
4. vybrat blok, kde A <> 1 pokud ještě existuje a odstranit
5. seřadit podle pom sloupce

Zkuste funkce xlookup případně filter, umí hledat podle více kritérií.

Myslím, že součin.skalární tam byl.
Ale dal se použít maticový vzorec:
=SUMA(KDYŽ(1 * (A3:L3>=4) * (A3:L3<=7); A2:L2;0))

Případně se dá použít sumif: =SUMIF(A3:L3;"<=7";A2:L2) - SUMIF(A3:L3;"<4";A2:L2)


Strana:  1 2 3 4 5 6 7 8 9   další » ... 37

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