Búsqueda de objetivos de VBA - ¿Cómo utilizar Goal Seek para encontrar valor en Excel VBA?

Búsqueda de objetivos en Excel VBA

Goal Seek es la herramienta disponible en excel VBA, que nos ayuda a encontrar el número requerido a alcanzar para llegar al objetivo establecido.

Por ejemplo, usted es un estudiante y se ha fijado como objetivo una puntuación media del 90% en seis materias disponibles. A partir de ahora, ha completado 5 exámenes y solo le queda una asignatura. Sus calificaciones anticipadas de cinco materias completadas son 89, 88, 91, 87, 89 y 90. Ahora desea saber cuánto debe calificar en el examen final para lograr el objetivo de porcentaje promedio general del 90%.

Esto se puede hacer usando GOAL SEEK en la hoja de trabajo de Excel, así como en la codificación VBA. Veamos cómo funciona con VBA.

Sintaxis de búsqueda de objetivos de VBA

En VBA Goal Seek, necesitamos especificar el valor que estamos cambiando y llegar al resultado final objetivo, así que proporcione la referencia de celda usando el objeto VBA RANGE. Posteriormente podemos acceder a la opción GOAL SEEK.

A continuación se muestra la sintaxis de la búsqueda de objetivos en VBA.

  • Rango (): en esto, necesitamos proporcionar la referencia de celda donde necesitamos lograr el valor objetivo.
  • Meta: En este argumento, necesitamos ingresar cuál es la meta que estamos tratando de lograr.
  • Cambio de celda: en este argumento, necesitamos suministrar cambiando el valor de celda que necesitamos para lograr el objetivo.

Ejemplos de búsqueda de objetivos de Excel VBA

Los siguientes son ejemplos de búsqueda de objetivos en Excel VBA.

Búsqueda de objetivos de VBA: ejemplo n. ° 1

Tomemos solo el ejemplo de una puntuación media en un examen. A continuación se muestra el puntaje anticipado de 5 materias del examen completado.

Primero, necesitamos llegar a cuál es el puntaje promedio de las 5 materias completadas. Aplicar la función PROMEDIO en la celda B8.

En este ejemplo, nuestro objetivo es 90 y el cambio de celda será B7 . Por lo tanto, Goal Seek nos ayudará a encontrar el puntaje objetivo de la asignatura final para lograr el promedio general de 90.

Inicie el subprocedimiento en el módulo de clase VBA.

Código:

Sub Goal_Seek_Example1 () End Sub

Ahora necesitamos el resultado en la celda B8, así que proporcione esta referencia de rango usando el objeto RANGE.

Código:

Sub Goal_Seek_Example1 () Rango ("B8") End Sub

Ahora ponga un punto e ingrese la opción "Buscar objetivo".

El primer argumento es "Objetivo" para esto. Necesitamos ingresar nuestro objetivo final para llegar al RANGO B8. En este ejemplo, estamos intentando alcanzar el objetivo de 90.

Código:

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

El siguiente argumento es "Cambiar celda" para esto, necesitamos proporcionar en qué celda necesitamos el nuevo valor para lograr la Meta.

Código:

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

En este ejemplo, nuestra celda cambiante es la celda Sub 6, es decir, la celda B7.

Ok, ejecutemos el código para ver qué se debe hacer en el tema final para lograr el porcentaje promedio general de 90.

Entonces, en la asignatura final, se debe calificar 95 para obtener el promedio general de 90.

Búsqueda de objetivos de VBA: ejemplo n. ° 2

Hemos aprendido a aplicar GOAL SEEK para encontrar el número necesario para lograr el objetivo. Ahora veremos algunos ejemplos avanzados de cómo encontrar la puntuación del examen final para más de un estudiante.

A continuación se muestran las puntuaciones previstas de 5 asignaturas después del examen.

Dado que estamos encontrando la meta para más de un estudiante, necesitamos usar bucles. A continuación se muestra el código para usted.

Código:

Sub Goal_Seek_Example2 () Dim k As Long Dim ResultCell como rango Dim ChangingCell como rango Dim TargetScore como entero TargetScore = 90 For k = 2 to 5 Set ResultCell = Cells (8, k) Set ChangingCell = Cells (7, k) ResultCell.GoalSeek TargetScore, ChangingCell Siguiente k End Sub

Este código recorrerá todos los puntajes de los estudiantes y obtendrá el puntaje del examen final requerido para alcanzar el promedio general de 90.

Así que obtuvimos el resultado final ahora como,

El estudiante A necesita obtener una puntuación de solo 83 para obtener el porcentaje general de 90, y el estudiante D debe obtener una puntuación de 93.

Pero mire al Estudiante B y C. Necesitan obtener 104 cada uno en el examen final, lo cual no es posible en absoluto.

De esta manera, utilizando el análisis de GOAL SEEK, podemos encontrar el número requerido para lograr el número objetivo en la mitad del proyecto o proceso.

Cosas para recordar

  • Goal Seek está disponible con ambas herramientas de hoja de trabajo y con la herramienta VBA.
  • La celda resultante siempre debe contener una fórmula.
  • Necesitamos ingresar el valor del objetivo y cambiar la referencia de la celda a la herramienta de búsqueda del objetivo.

Articulos interesantes...