Proč nepoužijete kontingenční tabulku?
Jinak pro běžného občana je asi vhodnější použít pomocný sloupec
=AGGREGATE(9;7;A1)
Odkaz směrujte na sčítanou veličinu, v tomto případě, bude u skrytého řádku hodnota 0, u chyby také 0, jinak se zkopíruje původní hodnota.
Pomocný sloupec pak můžete sčítat čím budete chtít.
Jeza.m napsal/a:
... by z toho vznikla relace M:N, což Power Pivot neumí ...
Jeza.m napsal/a:
... V SQL bych mu řekl něco jako select Distinct ROK_KW where Datum in (VybraneHodnotyTimeline) ...
Pro tento pokus zrušte všechny relace a nadefinujte míru:
Součet z HODNOTA:=CALCULATE(SUM([HODNOTA]); TB_DATA[ROK_KW]=VALUES(TB_KALENDAR[ROK_KW]))
Tu použijte v součtu.
Pokud vybíráte více dnů, pak zkuste
Součet2 z HODNOTA:=CALCULATE(SUM([HODNOTA]); CONTAINSROW(VALUES(TB_KALENDAR[ROK_KW]);TB_DATA[ROK_KW]))
(Možných řešení je stejně jako v excelu, tj. hodně)
Proč Vám to nefunguje netuším. Ovšem s tím kopírováním to je prochu problém. Lze řešit makrem.
Pomocný sloupec je zřejmě nejlepším řešením.
Pokud do sešitu lze kopírovat, tak je to otázka času, kdy se něco objeví.
Problém možná neškodí, často ale zdržuje.
Ten počet listů není zásadní problém.
Doporučuji obrátit se k příkazové řádce a zkusit FINDSTR
(případně HELP také může programátora inspirovat)
Všude, kde může být odkaz:
grafy, podmíněné formáty, obrazce, ............
Definujte jméno, např.
tolerance_minus =-1*'2018'!$I$35:$I$40
Vložte ještě jednu řadu tolerance.
Vyberte ji a v řádku vzorců opravte odkaz:
=SADA(;;'40664_vzorovy-list-mikrometr-1.xlsx'!tolerance_minus;3)
Maticově
=POZVYHLEDAT(1E+307;KDYŽ(A1:A100<>0;A1:A100;"");1)
Jeza.m napsal/a:
Ale i tak se zeptám lze nějak makrem přepsat SQL dotaz Excelového Dotazu vytvořeného editorem dotazů?
Microsoft se "snaží"...
Co se dá dělat.
V Možnostech, Data, lze zaškrtnout "Zobrazit průvodce importem dat starší verze"
Zobrazí se na záložce Data, Načíst data, Starší verze průvodců.
Tyto průvodce lze také vytáhnout na pohodlnější pozici úpravou menu v sekci příkazy mimo pás karet, Text je "Z .... "
Pokud je to možné, připravuji tato připojení raději ve verzi 2010. V novějších verzích to (zatím?) funguje. Jen se občas "ztratí" přihlašovací údaje a není vždy snadné je obnovit.
Co se týká "nového" připojování přes powerquery, je tu podstatná změna v přihlašování. Excel ukládá použité přihlašovací údaje k databázi lokálně a není jednoduché je měnit. Pokud má někdo jedno připojení s jedním loginem a odpovídajícími právy, tak se s tím dá žít. Pokud má někdo více více rolí, tak má problém.
Z pohledu maker tady postupně vzniklo poměrně nepřehledné seskupení objektů, které se občas tváří, že jsou stejné (až na pár podstatných maličkostí). Řada z nich je R/O. Navíc mám pocit, že se to mění pod rukama.
Odpověď na jednoduchý dotaz by vydala na samostatný článek, u připojení záleží mj. na tom, kde a jak se používá. Pokud jde o M, je tam objekt "ModelConnection".
https://msdn.microsoft.com/en-us/VBA/Excel-VBA/articles/modelconnection-object-excel
AL napsal/a:
..., pokial napisete sem na forum, ze format cisla je velmi malo znama vec, tak si asi trochu pletiete auditorium...
Uvedený kaledář je opravdu pěkná ukázka maticového vzore, i když fakticky jen kopíruje řešení běžnými vzorečky.
Ovšem tvrzení, že "normální" vzorce a vba stačí na 100% je sice pravdivé, ale v řadě případů hodně neefektivní.
Například regresní analýza (pomíjím zmatek ve výběru funkcí). Funkce LINREGRESE je maticová a vrací matici výsledků. To neobejdete skalárním součinem a psát to ve vba je možné, ale málo efektivní. Mimochodem, maticový vzorec obalený skalárním součinem je stále maticovým vzorcem, jen je menší riziko, že ho někdo špatně uloží.
Další uplatnění jsou různé kontroly zadaných čísel (ean, čísla karet, čísla účtů, sipo, ...). Lze to samozřemě řešit ve VBA, pro mne je pro rychlou kontrolu často rychlejším řešením maticový vzorec (třeba obalený skalárním součinem).
Příklad pro formátování:
=A(MOD(SUMA(--ČÁST(ZPRAVA("000000"&ZLEVA(A1;IFERROR(NAJÍT("-";A1)-1;0));6);ŘÁDEK(NEPŘÍMÝ.ODKAZ("1:6"));1)*{10;5;8;4;2;1});11)=0;MOD(SUMA(--ČÁST(ZPRAVA("0000000000"&ČÁST(A1;IFERROR(NAJÍT("-";A1)+1;1);20);10);ŘÁDEK(NEPŘÍMÝ.ODKAZ("1:10"));1)*{6;3;7;9;10;5;8;4;2;1});11)=0)
Vzorec otestuje číslo účtu bez lomítka a kódu banky. Samozřejmě je maticový.
Vovka napsal/a:
pro Luba: vzorec není z internetu, ale z tištěné knihy od Walkenbacha (resp. z přiloženého CD). Když to bylo tak jednoduché, proč jste ten vzorec neopravil?
To není výzva. Vzorec je poměrně přímočarý a jednoduchý.
Funkčnost vzorců na internetu, které se týkají práce s kalendářem je vždy dobré ověřit. Zejména, když implicitní hodnoty u nás dávají chyby.
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.