sábado, 24 de abril de 2010

IF... THEN múltiple condicional

En la entrada del pasado 20/04/2010 expuse una manera de construir una función personalizada o UDF usando la instrucciónSELECT CASE, hoy replicaremos esa función pero empleando la instrucción IF...THEN.

Accederemos al Editor de VBA presionando Alt+F11, y ya dentro del Editor insertaremos un modulo (Menú Insertar > Modulo), haciendo doble clic en el módulo copiaremos el siguiente código:

'creamos una función con tres variables - Sexo, Edad y % grasa
Public Function Grasa(sexo, edad, Porcgra)
'definimos categorías para mujeres
If sexo = "M" And edad >= 18 And edad <= 39 And Porcgra >= 0 And Porcgra <= 21
Then Grasa = "bajo en grasa"
If sexo = "M" And edad >= 18 And edad <= 39 And Porcgra >= 22 And Porcgra <= 33
Then Grasa = "normal en grasa"
If sexo = "M" And edad >= 18 And edad <= 39 And Porcgra >= 34 And Porcgra <= 39
Then Grasa = "alto en grasa"
If sexo = "M" And edad >= 18 And edad <= 39 And Porcgra > 39 Then Grasa = "obesidad"

If sexo = "M" And edad >= 40 And edad <= 59 And Porcgra >= 0 And Porcgra <= 23
Then Grasa = "bajo en grasa"
If sexo = "M" And edad >= 40 And edad <= 59 And Porcgra >= 24 And Porcgra <= 34
Then Grasa = "normal en grasa"
If sexo = "M" And edad >= 40 And edad <= 59 And Porcgra >= 35 And Porcgra <= 40
Then Grasa = "alto en grasa"
If sexo = "M" And edad >= 40 And edad <= 59 And Porcgra > 40 Then Grasa = "obesidad"

If sexo = "M" And edad >= 60 And edad <= 99 And Porcgra >= 0 And Porcgra <= 24
Then Grasa = "bajo en grasa"
If sexo = "M" And edad >= 60 And edad <= 99 And Porcgra >= 25 And Porcgra <= 36
Then Grasa = "normal en grasa"
If sexo = "M" And edad >= 60 And edad <= 99 And Porcgra >= 37 And Porcgra <= 42
Then Grasa = "alto en grasa"
If sexo = "M" And edad >= 60 And edad <= 99 And Porcgra > 42 Then Grasa = "obesidad"
'definimos categorías para mujeres
If sexo = "H" And edad >= 18 And edad <= 39 And Porcgra >= 0 And Porcgra <= 8
Then Grasa = "bajo en grasa"
If sexo = "H" And edad >= 18 And edad <= 39 And Porcgra >= 9 And Porcgra <= 20
Then Grasa = "normal en grasa"
If sexo = "H" And edad >= 18 And edad <= 39 And Porcgra >= 21 And Porcgra <= 25
Then Grasa = "alto en grasa"
If sexo = "H" And edad >= 18 And edad <= 39 And Porcgra > 25 Then Grasa = "obesidad"

If sexo = "H" And edad >= 40 And edad <= 59 And Porcgra >= 0 And Porcgra <= 11
Then Grasa = "bajo en grasa"
If sexo = "H" And edad >= 40 And edad <= 59 And Porcgra >= 12 And Porcgra <= 22
Then Grasa = "normal en grasa"
If sexo = "H" And edad >= 40 And edad <= 59 And Porcgra >= 23 And Porcgra <= 28
Then Grasa = "alto en grasa"
If sexo = "H" And edad >= 40 And edad <= 59 And Porcgra > 28 Then Grasa = "obesidad"

If sexo = "H" And edad >= 60 And edad <= 99 And Porcgra >= 0 And Porcgra <= 13
Then Grasa = "bajo en grasa"
If sexo = "H" And edad >= 60 And edad <= 99 And Porcgra >= 14 And Porcgra <= 25
Then Grasa = "normal en grasa"
If sexo = "H" And edad >= 60 And edad <= 99 And Porcgra >= 26 And Porcgra <= 30
Then Grasa = "alto en grasa"
If sexo = "H" And edad >= 60 And edad <= 99 And Porcgra > 30 Then Grasa = "obesidad"

End Function


Ya podremos utilizar nuestra función Grasa en nuestra Hoja de cálculo, sobre tres celdas
=GRASA(sexo; edad; %grasa)
con igual resultado que la UDF del post de ayer.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.