< návrat zpět
MS Excel
Téma: Problém s řešením
Zaslal/a kippp 30.3.2012 11:21
Zdravím,
Potřeboval bych poradit s jedním problémem v Excelu. Řeším tabulku o nějakých 8000 řádcích a na každém řádku mám jednu buňku, která má vzorec závislí na jedné proměnné (vzorec vypadá asi nějak takto =a.x4+b.x3+c.x2+d.x+e), hodnoty a, b, c, d, e jsou konstanty, které si tam sám vkládám a tu proměnou x mám v další buňce a právě stým bych potřeboval poradit, jak mám udělat, aby se mi automaticky vypočítala ta buňka s tou proměnou, když vím, že ta rovnice má být rovna nule (0). Vím, že se to dá řešit řešitelem, ale počítá to jen pro jeden řádek, a když změním konstanty a, b, c, d, e, tak se mi to nezmění a to je to co bych potřeboval vyřešit, aby se ten výpočet dal zkopírovat na vše 8000 řádků a aby se ta proměnná x přepočítávala, když změním konstanty a, b, c, d, e… Zatím děkuji všem za každou radu…
Uzamčeno - nelze přidávat nové příspěvky.
marjankaj(30.3.2012 14:07)#007852 Skús priložiť súbor.
citovat
kippp(30.3.2012 19:11)#007863 Zdravím,
Přiložil jsem pár řádků daného souboru. Žádaný problém je na listu výpočty a ten vzorec je ve sloupci AD a proměnná x je ve sloupci AE. Zatím děkuji… PS: můj mail: kippp@seznam.cz
Příloha: 7863_klimadata.rar (16kB, staženo 21x) citovat
marjankaj(30.3.2012 21:19)#007865 Neviem, či som to dobre pochopil.
skús toto makro
Sub reseni()
For Each bunka In Range("ad4:ad27")
bunka.GoalSeek Goal:=0, ChangingCell:=bunka.Offset(0, 1)
Next
End SubPříloha: 7865_klimadata.zip (24kB, staženo 21x) citovat
kippp(31.3.2012 12:43)#007867 Zdravím, fungu je to super, jak jsem si to představoval, ale když tam dám všechny ty řádky (8760 řádků), tak ten proces probíhá asi 15min a chtěl jsem se zeptat jestli by to šlo rozdělit do více maker, která by se sloučily do jednoho spouštěcího, aby probíhali souběžně a skrátila se doba procesu... Zatím ale mockrát díky... PS: kdybys mi poslal tvuj mail poslal bych ti celý soubor...
citovat
marjankaj(1.4.2012 23:45)#007875 Pri toľkých riadkoch to asi bude problém 9000 krát spustiť hľadanie riešenia niečo trvá. Paralelne to asi nepôjde. Je to dosť zložitý vzorec.
Nešlo by to skrátiť? neskúmal som o čo tam ide. Ale vyhodnocovať toľko výsledkov je makačka. Neviem na čo to slúži.
Možno by sa dalo skúsiť toto, ale asi úspora nebude veľká. Záleží aké sú dáta.
If bunka.Offset(0, -8) <> 0 Then bunka.GoalSeek Goal:=0, ChangingCell:=bunka.Offset(0, 1)citovat
kippp(2.4.2012 14:54)#007878 Mockrát díky, teď už to trvá jen 3min takže je to v poho a děkuji za pomoc... Zatím
citovat