Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  4 5 6 7 8 9 10 11 12   další » ... 39

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)


Nechápu, jak to souvisí s výpočtem v DAX.

Nevím, o jaký "trik" jde a tedy ani jaký je jeho účel.

Jak jsem už zmiňoval, datový model je DATABÁZE a ne list excelu.

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 (%).


přírůstek :=
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
DIVIDE ( akt_hodnota; min_hodnota )

Měřítko naformátujte jako procento.

Jde o standardní přístup, funguje pro více let. Měl by se zobrazit druhého roku. Nevím, jak si představujete chování výpočtu.

Pokud to má být v jen souhrnu a jen dva roky 2021 a 2022, tak

přírůstek :=
IF (
DISTINCTCOUNT ( Vypocet[Rok] ) = 2;
DIVIDE (
CALCULATE ( [Hodnota_sum]; Vypocet[Rok] = 2022 );
CALCULATE ( [Hodnota_sum]; Vypocet[Rok] = 2021 )
);
BLANK ()
)


PS Netestováno, nechce se mi vymýšlet data a sestavy.

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


Nemůžete? Nebo neumíte? Výraz v podmínce funkce filter je, jak je v Excelu pravidlem, výraz. V současné verzi ve každý výraz maticový. Pokud je na příslušné pozici pravda pak je odpovídající řádek funkcí vrácen.

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...


Strana:  1 ... « předchozí  4 5 6 7 8 9 10 11 12   další » ... 39

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