#16 Se puede hacer cualquier cálculo en Excel sin usar VBA (ni, por lo tanto, macros).
ejemplos
Calcular el décimo número de Fibonacci que resulta ser 55.
=LET(fib,LAMBDA(f,n,IF(OR(n=0,n=1),n,f(f,n-1)+f(f,n-2))), fib(fib,10))
El parámetro f recibe la función (a sí misma), ya que LAMBDA admite funciones. Esto es una llamada recursiva. Observa que al final del LET, cuando se llama a fib, el primer parámetro es fib. Esto te libera del uso del gestor de nombres, que no es ninguna maravilla. Luego, en la definición, al llamar a f, el primer parámetro es f, obviamente.
Limpiar muchos caracteres de un string
=LAMBDA(data,chars,IF(chars="",data,RemoveChars(SUBSTITUTE(data,LEFT(chars,1),"") ,RIGHT(chars,LEN(chars)-1)))).
Que se usará como por ejemplo: =RemoveChars(A2,"abc123"))
Que es la típica forma de usar la recursión para lo que harías con un bucle en VBA. Esto es mucho más limpio. El dato limpiado es el dato sin el primer caracter a limpiar respecto de la limpieza del resto de caracteres, y eso se autorepite hasta que no quede nada.
Para parar la recursión se debe usar siempre IF que es lazy. Las funciones greedy como IFS o SWITCH causan problemas. Tú usa IF y sé feliz.
#13 Vaya, impresionante análisis… casi me creo que tu valoración sobre Rufián tenga algún fundamento, hasta que recuerdas que todo se reduce a suposiciones y Telegram.
#2 Durante muchos años, fue cantada con alborozo y coreografía en mis botellones en casa, no recuerdo como llegó, solo que se quedó con nosotros y era sistemáticamente reproducida junto con el reno renardo, los gandules, el wii baile, o gigatron
#2 si, huelga... Con lo disgregada que tenemos la sociedad (justo lo que buscan, no nos engañemos) no nos ponemos de acuerdo ni para coger billetes, menos para huelgas.
ejemplos
Calcular el décimo número de Fibonacci que resulta ser 55.
=LET(fib,LAMBDA(f,n,IF(OR(n=0,n=1),n,f(f,n-1)+f(f,n-2))), fib(fib,10))
El parámetro f recibe la función (a sí misma), ya que LAMBDA admite funciones. Esto es una llamada recursiva. Observa que al final del LET, cuando se llama a fib, el primer parámetro es fib. Esto te libera del uso del gestor de nombres, que no es ninguna maravilla. Luego, en la definición, al llamar a f, el primer parámetro es f, obviamente.
Limpiar muchos caracteres de un string
=LAMBDA(data,chars,IF(chars="",data,RemoveChars(SUBSTITUTE(data,LEFT(chars,1),"") ,RIGHT(chars,LEN(chars)-1)))).
Que se usará como por ejemplo: =RemoveChars(A2,"abc123"))
Que es la típica forma de usar la recursión para lo que harías con un bucle en VBA. Esto es mucho más limpio. El dato limpiado es el dato sin el primer caracter a limpiar respecto de la limpieza del resto de caracteres, y eso se autorepite hasta que no quede nada.
Para parar la recursión se debe usar siempre IF que es lazy. Las funciones greedy como IFS o SWITCH causan problemas. Tú usa IF y sé feliz.
El invento es Turing completo. Se pueden hacer cosas tan complejas como quieras
stackoverflow.com/questions/79478227/flatten-a-hierarchy-with-recursiv
y de forma muy sencilla además.