VBA Goal Seek - Jak pomocí funkce Goal Seek najít hodnotu v aplikaci Excel VBA?

Hledání cílů v aplikaci Excel VBA

Goal Seek je nástroj dostupný v aplikaci Excel VBA, který nám pomáhá najít požadovaný počet, který je třeba dosáhnout, abychom se dostali ke stanovenému cíli.

Jste například student a ze šesti dostupných předmětů jste cílili na průměrné skóre 90%. Od této chvíle jste dokončili 5 zkoušek a zbývá vám pouze jeden předmět. Vaše očekávané skóre z pěti absolvovaných předmětů je 89, 88, 91, 87, 89 a 90. Nyní chcete vědět, kolik musíte při závěrečné zkoušce dosáhnout, abyste dosáhli celkového průměrného procentního cíle 90%.

Toho lze dosáhnout pomocí GOAL SEEK v listu aplikace Excel i v kódování VBA. Podívejme se, jak to funguje s VBA.

Syntaxe hledání cílů VBA

V cíli VBA Goal Seek musíme specifikovat hodnotu, kterou měníme, a dosáhnout konečného cíleného výsledku, proto zadejte odkaz na buňku pomocí objektu VBA RANGE. Později můžeme vstoupit do možnosti VYHLEDÁVÁNÍ CÍLŮ.

Níže je uvedena syntaxe hledání cíle ve VBA.

  • Range (): V tomto případě musíme zadat odkaz na buňku tam, kde potřebujeme dosáhnout cílové hodnoty.
  • Cíl: V tomto argumentu musíme zadat, jaký je cíl, kterého se snažíme dosáhnout.
  • Změna buňky: V tomto argumentu musíme dodat změnou hodnoty buňky, kterou potřebujeme k dosažení cíle.

Příklady hledání cílů Excel VBA

Následuje příklad hledání cíle v aplikaci Excel VBA.

VBA Goal Seek - Příklad č. 1

Vezměme si příklad pouze průměrného skóre vyšetření. Níže je uvedeno očekávané skóre 5 předmětů z absolvované zkoušky.

Nejprve musíme dospět k průměrnému skóre z 5 absolvovaných předmětů. Použijte funkci PRŮMĚR v buňce B8.

V tomto příkladu je naším cílem 90 a Změna buňky bude B7 . Goal Seek nám tedy pomůže najít cílené skóre od finálního subjektu, abychom dosáhli celkového průměru 90.

Spusťte podproces v modulu třídy VBA.

Kód:

Sub Goal_Seek_Example1 () End Sub

Nyní potřebujeme výsledek v buňce B8, proto zadejte tento odkaz na rozsah pomocí objektu RANGE.

Kód:

Sub Goal_Seek_Example1 () Range ("B8") End Sub

Nyní vložte tečku a zadejte možnost „Goal Seek“.

Prvním argumentem je „cíl“. Abychom dorazili do RANGE B8, musíme zadat náš konečný cíl. V tomto příkladu se snažíme dosáhnout cíle 90.

Kód:

Sub Goal_Seek_Example1 () Range ("B8"). GoalSeek Goal: = 90 End Sub

Dalším argumentem je „Změna buňky“, musíme dodat, ve které buňce potřebujeme novou hodnotu k dosažení cíle.

Kód:

Sub Goal_Seek_Example1 () Range ("B8"). GoalSeek Goal: = 90, ChangingCell: = Range ("B7") End Sub

V tomto příkladu je naší měnící se buňkou buňka Sub 6, tj. Buňka B7.

Dobře, pojďme spustit kód, abychom zjistili, co je třeba udělat v konečném předmětu, abychom dosáhli celkového průměrného procenta 90.

Takže v závěrečném předmětu musí být skóre 95, aby se získal celkový průměr 90.

VBA Goal Seek - Příklad č. 2

Naučili jsme se, jak použít VYHLEDÁVÁNÍ CÍLŮ k nalezení počtu potřebného k dosažení cíle. Nyní uvidíme několik pokročilých příkladů nalezení skóre závěrečné zkoušky pro více než jednoho studenta.

Níže jsou uvedena očekávaná skóre 5 předmětů po zkoušce.

Jelikož nacházíme cíl pro více než jednoho studenta, musíme použít smyčky. Níže je uveden kód pro vás.

Kód:

Sub Goal_Seek_Example2 () Dim k As Long Dim ResultCell As Range Dim ChangingCell As Range Dim TargetScore As Integer TargetScore = 90 For k = 2 to 5 Set ResultCell = Cells (8, k) Set ChangingCell = Cells (7, k) ResultCell.GoalSeek TargetScore, ChangingCell Next k End Sub

Tento kód prochází všemi skóre studentů a přináší skóre závěrečné zkoušky potřebné k dosažení celkového průměru 90.

Konečný výsledek tedy máme nyní,

Student A potřebuje skóre jen 83, aby si zajistil celkové 90 procent, a Student D potřebuje skóre 93.

Podívejte se ale na studenta B & C. Při závěrečné zkoušce musí každý zaznamenat 104, což není vůbec možné.

Podobně jako pomocí analýzy GOAL SEEK můžeme najít požadovaný počet k dosažení cílového počtu uprostřed projektu nebo procesu.

Věci k zapamatování

  • Goal Seek je k dispozici jak s nástroji listu, tak s nástrojem VBA.
  • Výsledná buňka by měla vždy obsahovat vzorec.
  • Musíme zadat hodnotu cíle a změnit odkaz na buňku na nástroj pro hledání cíle.

Zajímavé články...