dech napsal(a)..... výsledkem fce by mělo být označení sloupce (číslem /písmenem/adresou..to je jedno) ve kterém platí že:
SUM(A1:X1)<=A3 tedy SUM(A1:X1)<=8
...hledám to "X" ..ad 1
zkoušel jsem to normálně jako vzorec ale nejde mi to.problém bude asi v tom, že to může být n-té řešení ..ad 2
...a vím že v makru jsem už zkoušel něco jako proměnou která nabývala hodnot např. "i from 1 to 100"
tedy že by počítač zkoušel varianty SUM(A1:A1) SUM(A1:B1) SUM(A1:C1) ...atd..až by narazil na odpovidajici vysledek ..ad 3
kdybych mohl udělat pomocné bunky tak to pujde snadno...udelal bych si kumulativni součty...jenze nemuzu...tak proto hledám způsob jak to vypočíst v "jedné bunce" ..ad 4
AD 1 :
V této interpretaci je řešení vzorcem celkem jednoduché, ale musí být splněno několik jednoduchých podmínek. Rozsah A1:X1 (X je myšlen relativní konec "posloupnosti buněk" - tedy například až A1:AMJ1 což je 1024 buněk. Vzorec takové množství "jednoduchých" dotazů skutečně "neuveze". Skutečný vzorec je limitovaný počtem bajtů, takže například v 10. řádku už vzorec nevezme to co v řádcích 1.-9.
Jde tedy o reálné omezení maximálního počtu testovaných buněk. Podle popisu se lze domnívat, že pokud je zadaná cílová hodnota v buňce A3 tak jde pouze o jediný řádek? Co když bude skutečnost nějak navazovat (řetězit) operace na další vzorce (Ano/Ne)?
Problém je v tom, že by mohlo jít o cyklické uzavření, které by se muselo řešit zabudovanými iteracemi systému. Zde by mohl pomoci řešitel, ale ze zadání nic podobného nelze dovodit. Lze se naproti tomu domnívat, že to bude jen část problému a řešení dle takto zjednodušené potřeby nebude v komplexu konstrukcí fungovat (například dík iteracím cyklických řešení).
AD 2 :
Problém n-tého řešení to není pokud je dán konečný počet buněk a podmínka součtu vždy od A1. Raději popíšu názorně :
A1:A1, A1:B1, A1:C1, A1:D1,......, A1:AA1,....
Řešením je vzorec =IFS(Test;Výsledek;Test;Výsledek;Test;Výsledek;..;..;..;..). Konkrétně se musí začínat od KONCE!!! Tedy například takto v úseku A1:Z1 :
=IFS(SUM(A1:Z1)<=A3;"Z1";SUM(A1:Y1)<=A3;"Y1";SUM(A1:X1)<=A3;"X1";.;.;A1<=A3;"A1";A1>A3;"Žádný součet nevyhovuje")
Opět musím zopakovat, že velikost vzorce je omezena - proto nemusí výše uvedené řešení vyhovět uvedenému zadání. Naproti tomu ukazuji, že řešení může vyhovovat bez pomocných buněk pokud vzorec nepřeteče (to je také k bodu AD 3).
AD 3 a 4 :
Na takto označený problém jsem sice odpověděl v bodu 2, ale obávám se, že problém není popsán dost korektně. Uvedená podmínka SUM()<=A3 zahrnuje jak správně uvedeno KUMULATIVNÍ součty. To ale předpokládá například to, že pole A1:AX je seřazeno vzestupně.
Další problém vidím v tom, že by se měla primárně řešit pouze jedna podmínka "=". Z toho plyne skutečnost, která říká, že vzorec IFS() pobere pouze polovinu množství, protože se musí testovat nejprve na čistou podmínku "=" a následně "řetězením" IFS(), nebo "vnořením" sekundární podmínky "<" dosáhnout kýženého výsledku.
Dokonce mne napadá, že možná zadání vůbec nevystihuje skutečnou potřebu. Uvedu příklad jako primitivní zadání A3=5, A1=4, B1=5. Buňka B1 sama zcela vyhovuje podmínce B1=A3, ale vzorec najde jako správnou odpověď A1<=A3(=4) protože A1+B1 = (4+5 = 9) > 5.
Tento problém hrozí zejména tehdy, když nejsou hodnoty v úseku setříděny vzestupně. Potom by bylo velmi nesprávné hledat kumulativní součty podle popisu. Takže pokud se hledá obecné úplné řešení problému, musí se předpokládat, že je třeba hledat nejprve podmínku "=" pro všechny různé jednice, následně dvojice buněk, trojice a tak dál. Teprve když žádná z možností "=" nevyhoví, je nutné testovat podmínku "<". Tento problém lze popsat jako náročnost dle Pascalova trojúhelníku, kde n = počet různých buněk. Správně tedy počet jednotlivých testů je dán 2^n a navíc ještě 2x (=,<).
Zde se pak může vyskytovat i více správných řešení a musí se buď vypsat všechny správné z podmínky "=" (z podmínky "<" je výpis správných výsledků nesmyslný), nebo určit která podmínka má přednost - například tehdy když je jeden člen přímo roven podmínce ap.
NA ZÁVĚR :
Už jsem se jednou s podobným problémem setkal. Jednalo se hledání součtů v rámci peněžních deníků, respektive bankovních výpisů, kde se vyskytlo na jedné straně tvrzení, že lhůta pro splacení dodávek byla splněna (tedy přípustný postup dle tehdy platné účetní osnovy), zatímco dodavatel dával zboži pravidelně proti telefonickým objednávkám. Odběratel platil "kolik stačil" - v podstatě bral "na dluh". Komplikace byla v tom, že při odběru se zaplatila část dodávky "hotovostí" a zbytek šel fakturou která měla splatnost tuším 3 týdny. Dodavatel pak tvrdil, že domluvená lhůta nebyla dodržena a žádal smluvní penále - a nešlo o "drobné". Vše se muselo skončit k roční uzávěrce. Odběratel tvrdil, že vše řádně splnil a dodavatel trval na tom, že nedostal "penále". Problém šel k soudu, ale přes to dodavatel s odběratelem dál obchodoval - a účetní byla z problému "na odpis" :-(
Editoval neutr (28. 12. 2018 08:59:27)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ