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. ).
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á.
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)
PavDD napsal/a:
No, já chci potom, co zapíšu hodnotu do zelené oblasti bunek najít tuto dopsanou hodnotu v seznamu zakázaných /červená oblast/ a pokud tam je, oznámit to,a vrátit to znovu do editace té bunky abych mohl zkusit zadat něco jiného.
Pokud zadaná hodnota v seznamu zakázaných není, tak se normálně uloži.
jarek1111 napsal/a:
...
Co když se v tabulce objeví 1023 a to hned třeba 3x. Jde to nějak zofsetovat doprava?
A co třeba podmíněný formát v buňce C3? Vzorec: =COUNTIF(oblast;C3)>0
Vložil bych pomocný sloupec, kde by byl rozdíl mezi S a T a šipky by ukazovaly záporné/kladné/nula.
Navíc by se dalo snadno filtrovat řádky.
Pěkné, ale
pokud přidáme sloupec se souhrny za více let, bude výsledek ... podivný.
Kromě toho se metoda nehodí pro jiné míry (průměr unikátných zákazníků v měsíci, ...
Podobně, jako v excelu existují *ifs funkce, má datový model *X funkce. V určitém ohledu si jsou podobné, jen verze v datovém modelu je podstatně výkonější.
Pro výpočet průměru čehokoliv můžeme použít funkci AVERAGEX.
Pokud chceme tedy počítat průměry měsíčních sum, je v daxu přirozený zápis:
Definujeme sumu (tady ji máme) : [Total sales]
Spočítáme průměr:
=AVERAGEX(VALUES(tabulka[mesic]);[Total sales])
Toto je ekvivalent měřítka v článku.
Výraz VALUES(tabulka[mesic]) vrátí tabulku s unikátními měsíci v aktuálním výběru. AVERAGEX pro každý takto vybraný měsíc spočte [Total sales] a vrátí průměr spočtených hodnot.
Pokud chceme navíc zohlednit rok (tj. aby výraz fungoval i pro více let) upravíme první parametr:
=AVERAGEX(SUMMARIZE(tabulka; tabulka[rok], tabulka[mesic] );[Total sales])
Výraz, pokud jsou ve výběru data za více let, spočte pro každý rok a měsíc v aktuálním výběru hodnotu [Total sales] a vrátí průměr spočtených měsíčních hodnot.
Funkce počítá s blokem. Na tvaru nezáleží, řádek, sloupec, více řádků nebo sloupců, ... Druhý blok se nemusí zadat nebo to může být jakýkoliv odkaz. Pokud se počet řádků a sloupců v parametrech neliší, je to ok. Pokud se liší... Hádejte, co pak spočte, tyhle chyby se dost špatně hledají. To je i důvod proč tuto funkci nepoužívat.
Neposlal jste příklad. Tedy jen obecně. První a třetí (pokud je zadán) parametr musí být odkaz. A pak si zkontrolujte, co máte v buňkách. A zkontrolujte si podmínku.
Moc nechápu. Pokud je to výpis z jednotlivých listů a listy jsou řazené za sebou, pak by stačilo:
=SROVNAT.VODOROVNĚ(DO.SLOUPCE(List1:List1000!B3);DO.SLOUPCE(List1:List1000!X4))
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.