Cuantos SI caben en una casilla de excel

Cerrado
pacopillotol Mensajes enviados 1 Fecha de inscripción martes, 2 de febrero de 2010 Estatus Miembro Última intervención martes, 2 de febrero de 2010 - 2 feb 2010 a las 23:31
 Baez - 10 sep 2015 a las 00:32
Hola, en una funcion del SI de excel, donde inserto varios SI consecutivos no me deja añadir mas de 8 y necesito poner 10 para que la formula este correcta, como lo puedo hacer? gracias
Consulta también:

4 respuestas

No tienes que utilizar código de visual basic applications (VBA) la solución es más sencilla. Como por defecto excel 2003 no permite más de siete niveles de anidación, has de utilizar celdas auxiliares para solucionar tu problema. Me explico mejor:
Tu haces tu fórmula anidada en la celda A1 como por ejemplo así
=SI(F1=1;"UNO";SI(F1=2;"DOS";SI(F1=3;"TRES";SI(F1=4;"CUATRO";SI(F1=5;"CINCO";SI(F1=6;"SEIS";B1))))))

En esta fórmula ya has anidado seis niveles y al final, como necesitas más niveles, después de "SEIS" en el último nivel haces referencia a una celda auxiliar, en este caso la B1 y ya solo tienes que irte a la celda B1 y poner más niveles de anidación en esta celda de la siguiente manera
=SI(F1=7;"SIETE";SI(F1=8;"OCHO";SI(F1=9;"NUEVE";SI(F1=10;"DIEZ";SI(F1=11;"ONCE";SI(F1=12;"DOCE";""))))))

Con esto ya tienes más niveles y si necesitaras más, con volver a utilizar otra celda auxiliar lo tendrías solucionado.
Espero haberte ayudado. Salu2
12
Excelente Albersil, tan practico como tu respuesta, y con eso triplicas tu anidación mínimo!!.... Gracias por el tip !! Me quito el sombrero !!
0
Para ser más amplio en el tema, te explicaré como hacer una función con tres variables.. Sexo, Edad y % Grasa.

Este ejemplo lo que hará es considerar las siguiente condiciones:

Si una mujer en la edad de 18 a 39 y su grasa corporal es entre 0 a 21 es condiderada baja en grasa, si su grasa es entre 22 a 33 es considerada normal en grasa, si es 34 a 39 alto en grasa; mayor a 39 es considerada obesidad.

igual para las edades de 40 a 59, 0 a 23 bajo en grasa, 24 a 34 normal en grasa, 35 a 40 alto en grasa, 40 > obesidad.

para complicar mas las cosas, haremos las edades entre 60 a 99 años, 0 a 24, bajo en grasa, 25 a 36 normal en grasa, 37 a 42 alto en grasa y 42 es considerado obesidad.

Y si no es suficiente haremos lo mismo para hombres... pero lean la prog para comprender un poco más:

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 hombres

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)

espero puedas adaptar estas condicionales a tus necesidades. saludos
3
¿Y no hay limite de "And" en un "If"?
0
Aqui tienes un problema, porque excel solo te permite hasta 7 sionidados. La solución a esto es crear IF... Then múltiple condicional. Para esto debes usar el Editor de VBA (Alt+F11)
0
que es sionidado???
0