Excel - problém s řešením

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

kippp
nováček
Příspěvky: 4
Registrován: březen 12
Pohlaví: Muž
Stav:
Offline

Excel - problém s řešením

Příspěvekod kippp » 30 bře 2012 14:17

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…

Reklama
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel - problém s řešením

Příspěvekod cmuch » 30 bře 2012 17:19

Vítej na PC-Help
Tady v tomto případě by se hodila nějaká ukázka s pár řádkama.

kippp
nováček
Příspěvky: 4
Registrován: březen 12
Pohlaví: Muž
Stav:
Offline

Re: Excel - problém s řešením

Příspěvekod kippp » 30 bře 2012 19:17

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řílohy
klimadata+.xls
(82.5 KiB) Staženo 12 x

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel - problém s řešením

Příspěvekod cmuch » 30 bře 2012 19:35

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.

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Excel - problém s řešením

Příspěvekod Azuzula » 30 bře 2012 20:36

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?
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.

kippp
nováček
Příspěvky: 4
Registrován: březen 12
Pohlaví: Muž
Stav:
Offline

Re: Excel - problém s řešením

Příspěvekod kippp » 31 bře 2012 12:00

Přesně jak říkáš, tak to potřebuji...

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Excel - problém s řešením

Příspěvekod Azuzula » 31 bře 2012 14:28

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 :-D 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:

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.

kippp
nováček
Příspěvky: 4
Registrován: březen 12
Pohlaví: Muž
Stav:
Offline

Re: Excel - problém s řešením

Příspěvekod kippp » 02 dub 2012 14:55

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
    4805
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12222
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4711
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41
  • Excel - výpočet nočních hodin Příloha(y)
    od Uziv00 » 17 říj 2024 11:22 » v Kancelářské balíky
    3
    3341
    od lubo. Zobrazit poslední příspěvek
    24 říj 2024 00:00

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti