Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno EXCEL - poradit s výpočtem podmíněného součtu

Zdravím chytré hlavy a prosím o pomoc.
V excelovské tabulce (zjednodušené) je sloupec C (název zboží), ve sloupci E jeho hmotnost a ve sloupci O datum potvrzení.
Někde mimo bude uvedena celková hmotnost zboží, které je k dispozici. Potřeboval bych vysčítat hmotnosti jednotlivého zboží (ve sloupci E), ale jen těch, u kterého je potvrzené datum (sloupec O<>"") a tento součet odečíst od celkového množství - tedy výsledkem by měla být zbývající hmotnost (označené zeleně).

Jednotlivé kroky výpočtu bych tak nějak zvládnul, ale nedaří se mi to spojit do jednoho vzorce - jde-li to vůbec? Zkoušel jsem funkce SUMIF nebo SKALÁRNÍ.SOUČIN....

Ukázková tabulka (s vymyšlenými čísly) je v příloze. Děkuju za návrh řešení.

Předmět Autor Datum
Netuším jestli sem správně pochopil Tvůj záměr, tak se na to podívej. Jsou použity maticové vzorce.
Siki83 17.05.2011 19:42
Siki83
Děkuju za odpověď. Na maticové vzorce jsem při hledání řešení také narazil, ale nikdy jsem s nimi ne…
host 17.05.2011 19:47
host
Ok co tohle?
Siki83 17.05.2011 20:05
Siki83
To vypadá líp! ;-) Ale nefunguje výpočet pro zboží B, D a E. Asi bude chyba v kopírovaní vzorce, ne?…
host 17.05.2011 20:23
host
Sakra dělám víc věcí najednou a vytvářím kraviny. Takže nový soubor se správnými výsledky (zapoměl s…
Siki83 17.05.2011 20:24
Siki83
Otestoval jsem to a vše funguje! Ještě že jsem ti radil, co? ;-) Moc děkuju, ještě zkusím počkat, je…
host 17.05.2011 20:36
host
Ještě že jsem ti radil, co? Jo jo přesně tak !! :-D:-D:-D
Siki83 17.05.2011 20:39
Siki83
Chyba tam nie je a lepšie riešenie neexistuje. ;-)
los 17.05.2011 22:42
los
To jsem potřeboval slyšet! ;-) Značím vyřešeno a oběma děkuji!
host 17.05.2011 22:47
host
Nedalo mi to a zkusil jsem pro zajímavost vytvořit jiné řešení. Je tam navíc pomocný sloupec "P". Ja…
host 18.05.2011 19:15
host
lze ve vzorci nějak ošetřit, aby se nezapočítávaly skryté řádky? Koukni na funkci SUBTOTAL…
Siki83 18.05.2011 19:59
Siki83
To je ono! ;-) Jenom se mi nedaří to naroubovat na výše uvedený maticový vzorec. Můžu ještě poprosit…
host 18.05.2011 21:30
host
Tak sem se o něco pokusil a vypadá to, že by to mohlo být funkční. Hodnoty, které se "mění" při skry…
Siki83 18.05.2011 22:45
Siki83
Ten vzoreček, to je teda síla! :-? Ještě složitější než ty maticové vzorce. Také by mě zajímalo, zda…
host 18.05.2011 23:33
host
Možno by elegantnejšie riešenie bola kontingenčná tabuľka (pivot table), ktorá ti umožňuje aj filtro… poslední
los 23.05.2011 22:44
los
Len opíšem, prečo je napísaný ten vzorec tak, ako je napísaný: Pôvodný poľový vzorec (array formula…
los 23.05.2011 22:32
los

Děkuju za odpověď. Na maticové vzorce jsem při hledání řešení také narazil, ale nikdy jsem s nimi nepracoval, tak jsem se jim snažil vyhnout....

Koukal jsem na tvoje řešení, ale není to úplně ono. V části CELKEM mají zůstat ty ručně zadané hodnoty - celkové množství. A od tohoto čísla se má odečíst součet hodnot, které mají potvrzený termín a výsledek zobrazit v části ZBÝVÁ.

Tak sem se o něco pokusil a vypadá to, že by to mohlo být funkční. Hodnoty, které se "mění" při skrytí řádku sem označil červeně.
Jen se mě prosím neptej proč je ten vzorec napsaný tak, jak je napsaný a jak to "funguje", protože NEMÁM PÁRU. Tohle řešení sem našel na netu a kupodivu se mi to povedlo napasovat do Tvé tabulky. Řádně vyzkoušej funkčnost.

Rád bych slyšel vyjádření zdejšího Excel Guru "LOSA" k použitým vzorcům, popřípadě nějaký jiný (lepší) návrh na řešení tvé situace.

Díky.

Ten vzoreček, to je teda síla! :-? Ještě složitější než ty maticové vzorce. Také by mě zajímalo, zda to lze udělat nějak elegantněji, jednodušeji. Nemám rád složité věci. Uvidíme, jestli se los ozve...
Každopádně ti děkuju za tvůj čas a funkční řešení, i když jsem nečekal, že to bude tak komplikované.

Len opíšem, prečo je napísaný ten vzorec tak, ako je napísaný:

Pôvodný poľový vzorec (array formula) vyzeral takto:

=E35-SUM(($C$2:$C$31=H35)*($E$2:$E$31)*($O$2:$O$31<>""))

Tento vzorec sa dá zapísať ako štandardný vzorec pomocou SUMPRODUCT takto:

=E35-SUMPRODUCT(($C$2:$C$31=H35)*($E$2:$E$31)*($O$2:$O$31<>""))

Výsledný vzorec, ktorý funguje, vyzerá takto:

=E35-SUMPRODUCT(SUBTOTAL(103;OFFSET($C$2;ROW($C$2:$E$31)-ROW($C$2);0))*($C$2:$C$31=H35)*($E$2:$E$31)*($O$2:$O$31<>""))

Tento vzorec sa dá zapísať ako poľový vzorec takto:

=E35-SUM(SUBTOTAL(103;OFFSET($C$2;ROW($C$2:$E$31)-ROW($C$2);0))*($C$2:$C$31=H35)*($E$2:$E$31)*($O$2:$O$31<>""))

A teraz vysvetlenie k tomu, čím sa líši pôvodný vzorec od nového, ktorý zohľadňuje skryté riadky:

Obsah funkcie SUMPRODUCT (resp. SUM) je potrebné prenásobiť poľom s indikátorom, či je riadok skrytý alebo nie (indikátor bude nadobúdať len hodnoty 0 a 1, prenásobenie je logické AND). Jediný možný spôsob, ako vo vzorci odlíšiť skrytý riadok, je pomocou funkcie SUBTOTAL (t.j. lepšie riešenie, ak to má byť len pomocou vzorcov, neexistuje).

Pole s indikátorom obsahuje v sebe takýto vzorec:

OFFSET($C$2;ROW($C$2:$E$31)-ROW($C$2);0)

Na prvý pohľad to síce vyzerá, že sa tento zápis dá zjednodušiť na $C$2 (pretože ROW($C$2:$E$31)-ROW($C$2) je nula a OFFSET($C$2;0;0) je $C$2). Treba si ale uvedomiť, že výsledkom je pole, kde prvým prvkom je OFFSET($C$2;0;0), druhým prvkom je OFFSET($C$2;1;0), tretím OFFSET($C$2;2;0), atď. Vo výsledku je to teda pole s bunkami $C$2, $C$3, $C$4, atď. Toto pole sa vďaka funkcii SUBTOTAL stane poľom, ktoré nadobúda pre každý riadok hodnotu 0 alebo 1 podľa toho, či je riadok skrytý alebo zobrazený.

Zpět do poradny Odpovědět na původní otázku Nahoru