¿Cómo aplicar una función SI anidada extensa en macro?

Al momento de utilizar la función SI anidada sólo soporta hasta 8 funciones anidadas. He intentado hacer con más pero 8 es el límite. ¿Habrá alguna forma de poder anidar más de 150 funciones SI? He indagado en otros foros y siempre recomiendan mejor usar la función CONSULTAV, o BUSCARV. Actualmente utilizo esta forma pero con la incomoda situación que siempre tengo que copiar y pegar dos "listas de datos" en hojas adicionales del libro donde corro la macro. Por lo que se me ocurrió que tal vez en la misma macro pueda incluir las "base de datos" a través de estas funciones anidadas. De esta manera evitaría copiar y pegar las BD's en el libro. El código que utilizo actualmente con función BUSCARV y pegando una BD en la Hoja1 y otra BD en la Hoja2 es:

Sub TramoEquipo()
    Range("A1").Formula = "=VLOOKUP(C1,Hoja1!$A$1:$C$" & ActiveWorkbook.Sheets("Hoja1").Cells(Rows.Count, 3).End(xlUp).Row & ",2,FALSE)"
    Range("B1").Formula = "=VLOOKUP(C1,Hoja2!$A$1:$C$" & ActiveWorkbook.Sheets("Hoja2").Cells(Rows.Count, 3).End(xlUp).Row & ",3,FALSE)"
    Dim ult As Integer
    ult = Cells(Rows.Count, 3).End(xlUp).Row
    Range("A" & ult, "B" & ult).Select
    Range(Selection, Selection.End(xlUp)).FillDown
End Sub

 El código que se me ha ocurrido es el siguiente

Sub TramoEquipo()
Range("A1").Formula = "=IF(C1=""ILAVE"",2,IF(C1=""MAZOCRUZ"",1,IF(C1=""ANTAUTA"",1,IF(C1=""BARRANQUITA"",2,IF(C1=""ECF 031"",1,IF(C1=""ECF 032"",1,IF(C1=""ECF 038"",2,IF(C1=""MELCHORITA"",1,0))))))))"
Range("B1").Formula = "=IF(C1=""ILAVE"",2,IF(C1=""MAZOCRUZ"",""VOLQUETE"",IF(C1=""ANTAUTA"",""EXCAVADORA"",IF(C1=""BARRANQUITA"",""VOLQUETE"",IF(C1=""ECF 031"",""VOLQUETE"",IF(C1=""ECF 032"",""VOLQUETE"",IF(C1=""ECF 038"",""VOLQUETE"",IF(C1=""MELCHORITA"",,0))))))))"
Dim ult As Integer
ult = Cells(Rows.Count, 3).End(xlUp).Row
Range("A" & ult, "B" & ult).Select
Range(Selection, Selection.End(xlUp)).FillDown
End Sub
Pero con la limitación de que soporta hasta 8 funciones anidadas. ¿Alguna sugerencia para hacer esto? He visto que podría hacer algo con la función Select Case y también If...Then...Else pero no encuentro el camino.

1 respuesta

Respuesta
1

Te interesa tener la fórmula en la celda A1 o lo que te interesa es traer el dato de la clave.

Lo que puede hacer la macro es abrir el libro2, buscar la clave, pegarla en la celda A1, continuar con la A2, etc y por último cerrar el libro2.

Si necesitas apoyo para la macro avísame.

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas