Fórmula que supera el nivel máximo de anidamiento
Tengo una fórmula que he creado el cual realiza una búsqueda con VLOOKUP condicionada por fórmula IF pero lamentablemente me indica que supero el máximo de niveles el cual no considero que supere los 256 niveles de anidamiento que permite excel, dejo aquí la fórmula:
=iferror(if(d35=vlookup(d35;[payroll.xlsm]setup!$h$5:$h$13;1;false);if(c35=vlookup(c35;[payroll.xlsm]setup!$i$5:$i$7;1;false);if(and(round(i35;1)>=0;round(i35;1)<=0,5);vlookup(d35&c35;[payroll.xlsm]setup!$j$11:$l$13;3;false)+vlookup(d35&c35;[payroll.xlsm]setup!$j$11:$k$13;2;false);if(and(round(i35;1)>=0,51;round(i35;1)<=1);vlookup(d35&c35;[payroll.xlsm]setup!$j$11:$m$13;4;false)+vlookup(d35&c35;[payroll.xlsm]setup!$j$11:$k$13;2;false);if(round(i35;1)>1;i35*vlookup(d35&c35;[payroll.xlsm]setup!$j$11:$n$13;5;false)+vlookup(d35&c35;[payroll.xlsm]setup!$j$11:$k$13;2;false))))));if(d35=vlookup(d35;[payroll.xlsm]setup!$h$5:$h$13;1;false);if(c35=vlookup(c35;[payroll.xlsm]setup!$i$5:$i$7;1;false);if(and(round(i35;1)>=0;round(i35;1)<=3,4);vlookup(d35&c35;[payroll.xlsm]setup!$j$5:$k$10;2;false);if(and(round(i35;1)>=3,5;round(i35;1)<=6,4);vlookup(d35&c35;[payroll.xlsm]setup!$j$5:$l$10;3;false);if(and(round(i35;1)>=6,5;round(i35;1)<=10,4);vlookup(d35&c35;[payroll.xlsm]setup!$j$5:$m$10;4;false);if(round(i35;1)>=10,5;(i35-10,4)*vlookup(d35&c35;[payroll.xlsm]setup!$j$5:$n$10;5;false)+vlookup(d35&c35;[payroll.xlsm]setup!$j$5:$m$10;4;false))))))))
¿Mi pregunta existe la forma de crear un código vba que haga lo que hace esta fórmula o se puede mejorar la fórmula de forma que funcione en una celda? Esto porque la fórmula estará insertada en un código VBA el cual ya lo tengo escrito... Saludos y en espera de sus ayuda!