Algunas funciones nativas de Excel como VSTACK permiten un número infinito de argumentos, y tienen un sentido inteligente de la siguiente manera:
Me gustaría saber cómo definir dicha función por LAMBDA .
try = LAMBDA(array1, [array2], [array3], [array4], 123) con argumentos opcionales, la cantidad de argumentos no es infinita y el intellisense no es exactamente el mismo:
Momento divertido: ayer trabajé en el mismo problema porque quiero tener acceso a las nuevas funciones, pero no puedo usar Early Adopters en mi PC de trabajo. Así que hice una versión "casera" de cada función. Aquí está VSTACK .
VSTACK = LAMBDA( array1, array2, [array3], [array4], [array5], [array6], [array7], [array8], LET( pattern, MAX( 2, 3*NOT(ISOMITTED(array3)), 4*NOT(ISOMITTED(array4)), 5*NOT(ISOMITTED(array5)), 6*NOT(ISOMITTED(array6)), 7*NOT(ISOMITTED(array7)), 8*NOT(ISOMITTED(array8)) ), stack, LAMBDA( array_1, array_2, LET( rows1, ROWS( array_1 ), rows2, ROWS( array_2 ), columns1, COLUMNS( array_1 ), columns2, COLUMNS( array_2 ), rSeq, SEQUENCE( rows1 + rows2 ), cSeq, SEQUENCE(, MAX( columns1, columns2 ) ), IF( ISOMITTED(array_1), array_2, IF( ISOMITTED(array_2), array_1, IF( rSeq <= rows1, INDEX( IF( array_1 = "", "", array_1), rSeq, cSeq ), INDEX( IF( array_2 = "", "", array_2), rSeq-rows1, cSeq ) ) ) ) ) ), SWITCH( pattern, 2, stack(array1,array2), 3, stack(stack(array1,array2),array3), 4, stack(stack(stack(array1,array2),array3),array4), 5, stack(stack(stack(stack(array1,array2),array3),array4),array5), 6, stack(stack(stack(stack(stack(array1,array2),array3),array4),array5),array6), 7, stack(stack(stack(stack(stack(stack(array1,array2),array3),array4),array5),array6),array7), 8, stack(stack(stack(stack(stack(stack(array1,array2),array3),array4),array5,array6),array7),array8), ) ) ); Esta no es una respuesta a su pregunta. No conozco ninguna forma de hacer una función LAMBDA con un número infinito de argumentos, así que solo hice una forma tosca pero extensible de agregar más argumentos sin refactorizar todo.
NB: Es realmente crudo, pero esta fue una elección. También pensé en usar la recursividad para evitar el anidamiento hasta el infinito, pero al final decidí que poner un argumento de iteración sería confuso y complicado en comparación. Mi objetivo final era producir "suficientemente bueno".