Macro para utilizar el Switch (case)

Necesito la manera de poder ocupar el comando o sentencia case en Excel, ya que los 7 ifs anidados que se permiten no me es suficiente, necesito poner varias condiciones, por ejemplo:
Si A2=1, entonces...... , Si A2=2, entonces, Si A2=20,.......
Mas en especifico aqui esta mi formula, pero necesito meter mas anidaciones.
=SI($I$1=7,PROMEDIO(C3:I3)*$Z$1/100,SI($I$1=6,PROMEDIO(C3:H3)*$Z$1/100,SI($I$1=5,PROMEDIO(C3:G3)*$Z$1/100,SI($I$1=4,PROMEDIO(C3:F3)*$Z$1/100,SI($I$1=3,PROMEDIO(C3:E3)*$Z$1/100,SI($I$1=2,PROMEDIO(C3:D3)*$Z$1/100,SI($I$1=1,PROMEDIO(C3:C3)*$Z$1/100,"F")))))))

2 Respuestas

Respuesta
1
Revisá la función Elegir que por lo que ponés en el ejemplo hace lo que querés; el comando sería
=Elegir(Valor, primero, segundo, tercero, ...)
Valor indica cual de los demás elementos querés, por lo que sería bastante parecido al Case (en tu caso que tenés todos losvalores aplica perfecto...)
Respuesta
1
Efectivamente, Excel puede mejorar en esa parte. Como tu caso necesita evaluar varias condiciones a partir de una sola celda, entonces lo más recomendable es emplear una mixtura de funciones que hagan una maravilla por nosotros.
*****
1.- Abrir un nuevo libro de Excel y situate en Hoja1. En Hoja1 digita los siguientes valores en las celdas indicadas:
I1: 4
C3: 15 | D3: 12 | E3: 14 | F3: 12 | G3: 5 | H3: 6 | I3: 4
****
3.- Continua en las siguientes celdas en la misma Hoja1:
B15: 7 | C15: C3:I3
B16: 6 | C16: C3:H3
B17: 5 | C17: C3:G3
B18: 4 | C18: C3:F3
B19: 3 | C19: C3:E3
B20: 2 | C20: C3:D3
B21: 1 | C21: C3:C3
****
3.- Como veras desde C15 hasta C21 hemos ingresado las REFERENCIAS DE LAS CELDAS. Esto nos servirá para emplear una megaformula.
=SI(ESERROR(PROMEDIO(INDIRECTO(BUSCARV(I1;B15:F21;2;FALSO)))*$Z$1/100);"F";PROMEDIO(INDIRECTO(BUSCARV(I1;B15:F21;2;FALSO)))*$Z$1/100)
[Fijate si tu separador de argumento de funciones es punto y coma o coma. Yo he empleado punto y coma ";"]
****
4.- Fíjate que hemos empleado la función Buscarv para realizar una búsqueda y que nos devuelva la referencia. En nuestro ejemplo I1 es 4, por tanto en nuestra tabla que esta en B15:C21 con la fórmula encontrara aquel valor que sea igual a 4, y extraerá la celda C18, dado que el valor que esta en C18 esta asociado al numero 4. Luego ese valor nos servirá para convertirla en referencia con la función Indirecto.
****
5.- Fíjate ademas que la fórmula hace referencia al rango c15:c21, por lo que es posible que esto se amplíe. No tendrás problemas ahora en tu caso. Puedes realizar varias condiciones a partir del valor de una celda.
***
Espero haberte ayudado en tu caso.
PD. El valor de la fórmula en A15 es 13.25. La fórmula funciona y esta probada.
Christian

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas