{=AVERAGE(IF(WEEKDAY(A1:B20;1)=7;B1:B20;""))}
Já jsem se dopracoval jenom k součtu ale zatím jsem nevyřešil počet pomocí Count, nebo CountIf. To abych aritmetický průměr zadal jako součet hodnot / počtem případů.
{=SUM(IF(WEEKDAY(A1:A20;1)=1;B1:B20;0))}
Dál už pokračovat nebudu - je to zbytečné ale s maticemi je práce "zapeklitější". Chce to hodně zkušeností.
]]>Pokud se pokusíme vytvořit vzorec s odkazem na vybrané dny týdne, je zbytečné používat funkci AVERAGEIF. Stačí tedy:
=AVERAGE(IF(WEEKDAY(A1:B20;1)=7;B1:B20;""))
(maticově)
ale pomocný sloupce je lepší (čitelnější a pro více dat i rychlejší.
Mimochodem, funkce *IF mají jednu dost významnou nectnost - zadané oblasti nemusí být stejné. To vede a) k potenciálním chybám a b) ke zpomalení výpočtů - funkce se v těchto případech přepočítávají vždy.
Bezpečnější je použití *IFS ekvivalentu. V tomto případě funkce AVERAGEIFS.
Často je ještě lepší vzorce nepoužívat a zvolit kontingenční tabulku.
]]>Tak si myslím, že to půjde jenom pomocí jiného postupu - nejspíš pomocným sloupcem. Testoval jsem i matice. Zatímco samotný výraz v matici {=WEEKNUM(A1:A20;1)} funguje, tak ho do žadné jiné funkce nezabalím. Prostě ani LOOKUP, VLOOKUP, SUMIF, COUNTIF, AVERAGEIF. Nepovedlo se mi to nahradit ani pomocí pomocí MOD (Modulo). To normálně vrací při zadání =MOD(Datum;7) prakticky totéž jen místo sedmičky vrací nulu. Ale ani to jsem tam nedostal.
Datum je originálně číslo, takže můžeme dělat různé operace. Testoval jsem jak "holé" výrazy, tak výrazy "zabalené" do uvozovek. Ono se totiž musí vyhledávat "WEEKNUM(A1:A20;1)= číslo dne". To se dá udělat pomocí IF nebo TRUE. Proto mne docela překvapilo, že jsem to nedal ani pomocí Modulo. Ještě se podívám zítra, ale myslím že to jde jen pomcným sloupcem - ten se může skrýt.
Tak jo, mockrát děkuju. S pomocným sloupcem si poradím.
]]>Datum je originálně číslo, takže můžeme dělat různé operace. Testoval jsem jak "holé" výrazy, tak výrazy "zabalené" do uvozovek. Ono se totiž musí vyhledávat "WEEKNUM(A1:A20;1)= číslo dne". To se dá udělat pomocí IF nebo TRUE. Proto mne docela překvapilo, že jsem to nedal ani pomocí Modulo. Ještě se podívám zítra, ale myslím že to jde jen pomcným sloupcem - ten se může skrýt.
]]>Ve sloupci A dny v týdnu, ve sloupci B hodnoty, v C1 vzorec pro pondělí
=AVERAGEIF(A1:B20;"pondělí";B1:B20)
podobně pro úterý v buňce C2
=AVERAGEIF(A1:B20;"úterý";B1:B20)
......
v buňce C7=AVERAGEIF(A1:B20;"neděle";B1:B20)
Zapomněl jsem zmínit, že dny v týdnu jsou zapsaná jako data, ne jako textový řetězec. Takže já se vlastně potřebuju zeptat, jestli je daná hodnota z pondělí a pokud ano, zahrnout ji do průměru.
]]>=AVERAGEIF(A1:B20;"pondělí";B1:B20)
podobně pro úterý v buňce C2
=AVERAGEIF(A1:B20;"úterý";B1:B20)
......
v buňce C7
=AVERAGEIF(A1:B20;"neděle";B1:B20)
Jak mám pomocí fce AVERAGEIF a WEEKDAY výpočítat průměrnou hodnotu např. pro pondělí?
]]>