VBA 목표 탐색 | 목표 탐색을 사용하여 Excel VBA에서 값을 찾는 방법?

Excel VBA에서 목표 찾기

Goal Seek는 설정된 목표에 도달하는 데 필요한 수를 찾는 데 도움이되는 Excel VBA에서 사용할 수있는 도구입니다.

예를 들어, 귀하는 학생이고 6 개 과목에서 평균 90 %의 점수를 목표로했습니다. 지금까지 5 개의 시험을 완료했고 한 과목 만 남았습니다. 5 개 과목의 예상 점수는 89, 88, 91, 87, 89, 90입니다. 이제 얼마나 많은 점수를 받아야하는지 알고 싶습니다. 전체 평균 비율 목표 인 90 %를 달성하기위한 최종 시험입니다.

이는 Excel 워크 시트와 VBA 코딩에서 GOAL SEEK를 사용하여 수행 할 수 있습니다. VBA에서 어떻게 작동하는지 살펴 보겠습니다.

VBA 목표 찾기 구문

VBA Goal Seek에서 변경하려는 값을 지정하고 최종 목표 결과에 도달해야하므로 VBA RANGE 개체를 사용하여 셀 참조를 제공하고 나중에 GOAL SEEK 옵션에 액세스 할 수 있습니다.

다음은 VBA의 목표 탐색 구문입니다.

  • Range () : 여기에서 목표 값을 달성하는 데 필요한 셀 참조를 제공해야합니다.
  • 목표 : 이 주장에서 우리는 달성하려는 목표가 무엇인지 입력해야합니다.
  • 셀 변경 : 이 인수에서는 목표를 달성하는 데 필요한 셀 값을 변경하여 제공해야합니다.

Excel VBA 목표 탐색의 예

다음은 Excel VBA에서 목표 탐색의 예입니다.

이 VBA 목표 탐색 Excel 템플릿을 여기에서 다운로드 할 수 있습니다 – VBA 목표 탐색 Excel 템플릿

VBA 목표 탐색 – 예 # 1

시험 평균 점수만을 예로 들어 보겠습니다. 다음은 완료된 시험에서 5 개 과목의 예상 점수입니다.

먼저, 5 개 과목의 평균 점수에 도달해야합니다. B8 셀에 AVERAGE 함수를 적용합니다.

이 예에서 목표는 90이고 셀 변경은 B7 입니다. 따라서 Goal Seek은 최종 과목에서 목표 점수를 찾아 전체 평균 90 점을 달성하는 데 도움이됩니다.

VBA 클래스 모듈에서 하위 절차를 시작합니다.

암호:

 Sub Goal_Seek_Example1 () End Sub 

이제 B8 셀에 결과가 필요하므로 RANGE 개체를 사용하여이 범위 참조를 제공합니다.

암호:

 Sub Goal_Seek_Example1 () 범위 ( "B8") End Sub 

이제 점을 입력하고“Goal Seek”옵션을 입력합니다.

첫 번째 인수는 "목표"입니다. B8 범위에 도달하려면 최종 목표를 입력해야합니다. 이 예에서는 목표 90을 달성하려고합니다.

암호:

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

다음 인수는“Changing Cell”입니다 . 목표 를 달성하기 위해 새 값이 필요한 셀을 제공해야합니다 .

암호:

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

이 예에서 변경되는 셀은 Sub 6 셀, 즉 B7 셀입니다.

이제 코드를 실행하여 전체 평균 비율 인 90을 달성하기 위해 최종 주제에서 수행해야하는 작업을 살펴 ​​보겠습니다.

따라서 최종 과목에서는 전체 평균 90 점을 얻기 위해 95 점을 채점해야합니다.

VBA 목표 탐색 – 예 # 2

목표 달성에 필요한 수를 찾기 위해 GOAL SEEK를 적용하는 방법을 배웠습니다. 이제 한 명 이상의 학생에 대한 최종 시험 점수를 찾는 고급 예를 살펴 보겠습니다.

아래는 시험 후 5 개 과목의 예상 점수입니다.

두 명 이상의 학생에 대한 목표를 찾고 있으므로 루프를 사용해야하는 경우 아래 코드가 있습니다.

암호:

 Sub Goal_Seek_Example2 () Dim k As Long Dim ResultCell As Range Dim ChangingCell As 범위 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 

이 코드는 모든 학생의 점수를 반복하고 전체 평균 90 점을 달성하는 데 필요한 최종 시험 점수를 얻습니다.

그래서 우리는 이제 최종 결과를 얻었습니다.

Student A needs to score just 83 to secure the overall 90 percentage and Student D needs to score 93.

But look at Student B & C they need to score 104 each in the final examination which is not possible at all.

Like this using GOAL SEEK analysis we can find the required number to achieve the targeted number mid through the project or process.

Things to Remember

  • Goal Seek is available with both worksheet tool as well as VBA tool.
  • Result cell should always contain a formula.
  • We need to enter goal value and changing cell reference to the goal seek tool.