Třeba:
=FILTER(zdroj!A2:D13;(MĚSÍC(zdroj!E2:E13) = 3) * JE.ČISLO(zdroj!E2:E13))
PetrKop napsal/a:
Další dodatek: Datumy 2021 a 2022 neleží pod sebou, takže podle mě nejde dost dobře použít trik v Power Query přes dvojí indexovaný sloupec (od nuly a jedničky)
PetrKop napsal/a:
Roky jsou tam dva.
Co nejjedodušeji řečeno, zajímalo mě, jak se z v datovém modelu udělá ekvivalent počítané položky = 100 * 2022 / 2021 (což je jakýsi hybrid mezi rozdílem a procentem), tj. na té výše uvedené uvedené dvojici hodnot je 150 (%).
Co je špatně. Datový model je databáze a podle toho je potřebné psát výrazy.
Předpokládám, že těch roků může být více.
Hodnota_sum :=
SUM ( Vypocet[Hodnota] )
Hodnoty_delta :=
VAR akt_rok =
IF ( HASONEVALUE ( Vypocet[Rok] ); VALUES ( Vypocet[Rok] ); BLANK () )
VAR min_rok = akt_rok - 1
VAR akt_hodnota =
IF ( ISBLANK ( akt_rok ); BLANK (); [hodnota_sum] )
VAR min_hodnota =
CALCULATE ( [hodnota_sum]; Vypocet[Rok] = min_rok )
RETURN
akt_hodnota - min_hodnota
Je to z mobilu, spíš možný koncept. Vůbec jste nezmínil verzi, objem dat, ...
Není tu řešen souhrn, ...
Pokud vadí vzorec s použitím var - je to obvykle čitelnější, lépe se to ladí, snadno se to převede na kompaktní obludu.
Poslední otázku jsem nepochopil.
1) Jistě by pomohlo, kdyby ve sloupci B byl správný datum.
ROK(2023) vrátí 1905.
2) V takových případech je užitečné nastavit intervaly tak, nepokrývaly více dnů. Tady stačí (NYNÍ() - 0,25), potom pokud je HODINA(NYNÍ() - 0,25) < 12, je 'ráno', jinak 'noc'.
3) data ve život obvykle komplikují
test R: =A(HODINA(NYNÍ() -0,25)<12;DNES()=$B3;$C3="R")
test N: =A(HODINA(NYNÍ() -0,25)>=12;DNES()=$B2;$C3="N")
Možností je docela dost:
=MAX((E2:E6=B2) * (F2:F6<=A2) * (F2:F6))
=MAX(FILTER(F2:F6;(E2:E6=B2)*(F2:F6<=A2)))
=VYHLEDAT(A2;SORT(FILTER(F2:F6;E2:E6=B2)))
=SVYHLEDAT(A2;SORT(FILTER(F2:F6;E2:E6=B2));1)
Samotná XLOOKUP na zavřený soubor funguje. Ale POLÍČKO ne.
Funkce xlookup vrací ODKAZ na nalezenou hodnotu:
=POLÍČKO("názevsouboru";XLOOKUP(A1;[test2.xlsx]List1!$A$1:$A$3;[test2.xlsx]List1!$B$1:$B$3))
jen soubor:
=LET(adresa;POLÍČKO("názevsouboru";XLOOKUP(A1;[test2.xlsx]List1!$A$1:$A$3;[test2.xlsx]List1!$B$1:$B$3));
start;NAJÍT("[";adresa)+1;
konec; NAJÍT("]";adresa) - start;
ČÁST(adresa;start;konec))
Zase nepíšete verzi. Pokud jsou datumy seřazené, použijte funkci xlookup. Tam se dá nastavit hledání od konce.
elninoslov má svatou trpělivost, ale já už jsem to nevydržel...
Víte jak se používá klávesa F1?
Pokud je angličtina nesrozumitelná, zkusil jste zadat google dotaz, třeba "on error resume next statement česky" :
https://www.google.com/search?q=on+error+resume+next+statement+%C4%8Desky
Vrátí :
https://learn.microsoft.com/cs-cz/dotnet/visual-basic/language-reference/statements/on-error-statement
Zkuste také zadat dotaz na MsgBox.
nebo třeba
=JE.ČISLO(HLEDAT($C$3:$AG$3;"ST"))
To když by bylo písmen víc...
martin.tomasek napsal/a:
Poslední verze excelu v balíčku Microsoft365
pomocí funkce filter to jde, nicméně nemohu zároveň vypisovat podmínku "S" i "T"
děkuji za pomoc
Použijte funkci filter.
Asi nejsnažší je začít s makrem ve vba v aktualizovaném souboru, které zajistí načtení tabulky z oracle i aktualizaci všech navazujících struktur. Jeho spuštění je vhodné podmínit "správným" uživatelem (strojem, ...). bat (v čemkoliv) zajistí spolupráci s plánovačem úloh vč. nastavení prostředí.
Problémy:
Při aktualizaci v excelu řada kroků probíhá asynchronně, občas se něco předbíhá (typicky aktualizace kt předbíhá čtení dat, ...). To je nutné v makru zohlednit - např. zakázat během aktualizace operace na pozadí, ne vždy to jde.
Velký počet požadavků na aktualizaci tabulek může vyvolat nahodilé chyby (excel prostě spadne).
Rychlost :
Načítání dat z oracle je hodně pomalé (mám pocit, že to ms dělá schválně). Při větším objemu dat je někdy rychlejší vygenerovat csv soubor data čerpat z něj.
Ale v takovém případě je nutné nějak synchronizovat samostatně běžící úlohy.
Počet paralelních aktualizací souborů je často omezením.
Je také třeba myslet na administraci:
Tady je vhodný samostatný systém (tabulka, db, ..) db je asi nejlepší - umožňuje nejlépe monitorovat průběh pro více uživatelů.
Sledovat:
Stav aktualizace souborů z pohledu správce, hlášení o chybách (pád, chybějící data, nevalidní data po aktualizaci, ...), statistika aktualizací (doba trvání aktualizace jednotlivých souborů, počet paralelních úloh, ... - určité pomůže při plánování aktualizací.
Pro uživatele - info o úspěšné aktualizaci, řešení neúspěšné aktualizace (např. ponechání původního souboru + info)
Musí to běžet automaticky. Informace o chybách by se neměly v případě pádu ztratit.
Nepopsal jste ekosystém. Co máte k dispozici, co máte hotovo, objem dat, počet tabulek, proč data nenačitate přímo z db, kolik uživatelů to bude spouštět, z jakého prostředí,...
Tohle řešit přes diskusi je hodně složité - více systémů, často složitá synchronizace kroku...
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.