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…
Excel - problém s řešením
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: Excel - problém s řešením
Vítej na PC-Help
Tady v tomto případě by se hodila nějaká ukázka s pár řádkama.
Tady v tomto případě by se hodila nějaká ukázka s pár řádkama.
Re: Excel - problém s řešením
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ř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řílohy
-
- klimadata+.xls
- (82.5 KiB) Staženo 12 x
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: Excel - problém s řešením
Nějak to pořád nechápu.
Vzorec v AD počítá tak jak má a nevím podle čeho by se měla změnit ta proměná v AE.

-
- Level 3
- Příspěvky: 452
- Registrován: leden 12
- Bydliště: Země, bohužel...
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Excel - problém s řešením
Možná už vím jak to myslí. V buňce AE je potřeba něco co dopočte tu proměnnou tak, aby se výsledek v AD rovnal nule.
Tj. aby se například konstanta v AE11 rovnala přibližně 3,229692 (což jsem "dopočítala" pokusným zapisováním desetinných čísel aby se výsledek co možná nejvíce zmenšil) takže výsledek v AD11 je -0,0000263146993830787 což je po zaokrouhlení nula.
Mám pravdu?
Tj. aby se například konstanta v AE11 rovnala přibližně 3,229692 (což jsem "dopočítala" pokusným zapisováním desetinných čísel aby se výsledek co možná nejvíce zmenšil) takže výsledek v AD11 je -0,0000263146993830787 což je po zaokrouhlení nula.
Mám pravdu?
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
Re: Excel - problém s řešením
Přesně jak říkáš, tak to potřebuji...
-
- Level 3
- Příspěvky: 452
- Registrován: leden 12
- Bydliště: Země, bohužel...
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Excel - problém s řešením
Tak jsem nakonec našla jak to udělat s pomocí řešitele ve VBA tady: http://peltiertech.com/Excel/SolverVBA.html
Na celý sloupek to jde snadno udělat pomocí cyklu. Po delších testech to funguje dobře jen je to kapku pomalé, ale i sama funkce řešitele je pomalá při výpočtu, takže tisíce řádků může trvat i několik minut.
--- Doplnění předchozího příspěvku (31 Bře 2012 17:35) ---
Nakonec řešení nebylo tak snadné jak jsem myslela
Ale nakonec se podařilo. Ale mám excel 2010 a i když to je uloženo v kompatibilním formátu, nemusí to chodit na 100% tak uvidíme.
Na kompletní přepočítání celého listu zkopírujte následující makro do modulu pro makra:
A pro jednotlivé přepočty po změně konstanty zkopírujte následující makro do modulu listu "výpočty":
PS: Musím se přiznat že tohle řešení mě docela proškolilo, zase jsem se naučila pár nových věcí :-)
Na celý sloupek to jde snadno udělat pomocí cyklu. Po delších testech to funguje dobře jen je to kapku pomalé, ale i sama funkce řešitele je pomalá při výpočtu, takže tisíce řádků může trvat i několik minut.
--- Doplnění předchozího příspěvku (31 Bře 2012 17:35) ---
Nakonec řešení nebylo tak snadné jak jsem myslela

Na kompletní přepočítání celého listu zkopírujte následující makro do modulu pro makra:
Kód: Vybrat vše
Option Explicit
Sub vyresit()
Dim a, i As Double
Application.ScreenUpdating = False
a = Cells(Rows.Count, 30).End(xlUp).Row
Range("AE4").Select
For i = 4 To a
' SolverReset 's vypnutým resetem jede makro rychleji, na první pohled to vypadá že to nemá příliš důležitou funkci
SolverAdd CellRef:="$$AE$4:$AE$" & a, Relation:=1 ', FormulaText:="4" 'FormulaText občas zapíše do řešitele omezení a pak přestává fungovat a nevím proč
SolverOk SetCell:="$AD$" & i, MaxMinVal:=3, ValueOf:="0", ByChange:="$AE$4:$AE$" & a
SolverSolve True
ActiveCell.Offset(1, 0).Select
Next
Application.ScreenUpdating = True
End Sub
A pro jednotlivé přepočty po změně konstanty zkopírujte následující makro do modulu listu "výpočty":
Kód: Vybrat vše
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aRange As Range
Dim aCell As Range
Dim tRow, tCell As Double
On Error Resume Next
'proces řešitele a kontroly změn v listu se asi příliš nesnesou a tak to po každém výpočtu hodí chybu: 1004 Method 'Range' of object '_Worksheet' failed
Set aRange = Intersect(Target, Range("E:E,V:V,AA:AA,AC:AC")) 'tohle zařídí kontrolu ve sloupcích
tRow = Target.Row
If Not aRange Is Nothing Then
If Target = 0 Then Cells(tRow, 31).Value = 0: End
For Each aCell In aRange
' SolverReset 's vypnutým resetem jede makro rychleji, na první pohled to vypadá že to nemá příliš důležitou funkci
SolverAdd CellRef:="$AE$" & tRow, Relation:=1 ', FormulaText:="100" 'FormulaText občas zapíše do řešitele omezení a pak přestává fungovat a nevím proč
SolverOk SetCell:="$AD$" & tRow, MaxMinVal:=3, ValueOf:="0", ByChange:="$AE$" & tRow
SolverSolve True
Next
End If
End Sub
PS: Musím se přiznat že tohle řešení mě docela proškolilo, zase jsem se naučila pár nových věcí :-)
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
Re: Excel - problém s řešením
Mockrát díky za radu funguje to dobře... Zatí dík
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Náhodné zamrznutí PC, řešením je pouze tvrdý restart.
od Sipsisipi » 21 srp 2024 19:12 » v Problémy s hardwarem - 10
- 4331
-
od Sipsisipi
Zobrazit poslední příspěvek
25 srp 2024 10:37
-
-
-
EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw) - 2
- 4810
-
od Riviera kid
Zobrazit poslední příspěvek
02 zář 2024 16:21
-
-
- 2
- 12223
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 4722
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
-
- 3
- 3344
-
od lubo.
Zobrazit poslední příspěvek
24 říj 2024 00:00
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti