¿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 SubPero 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.