Excel se convierte en un lenguaje de programación completo con la función LAMBDA

Las hojas de cálculo hacen mucho más que simplemente realizar cálculos; ayudan a las personas a analizar datos y, a menudo, codifican ese análisis en un modelo de decisión. Codificar ese mismo tipo de decisiones en JavaScript o PHP deja claro que estás programando.

Excel a menudo se considera la herramienta original de low-code. Cuando los documentos de la compañía Enron se hicieron públicos, ofrecieron una oportunidad única para ver cómo las empresas utilizan las hojas de cálculo para este tipo de modelos de decisión empresarial, lo que llevó a Felienne Hermans, profesora asociada en la Universidad de Leiden, a entrevistar a usuarios empresariales típicos para saber por qué estaban construyendo aplicaciones en Excel de manera efectiva.

"Preguntamos: '¿Por qué lo construyes tú mismo? ¿Por qué no vas a informática y le pides un sistema [escrito] en un lenguaje de programación?' Y ellos dijeron: 'Sí, lo hicimos y nos dijeron que iba a ser dos millones de euros y seis meses, y luego fueron 10 millones de euros y nueve meses, y tenía la mitad de las funciones de esta hoja de cálculo que construí en una tarde' ".

Hace unos años, Hermans construyó una máquina de Turing en Excel. Ahora, la nueva función LAMBDA que convierte las fórmulas de Excel en funciones personalizadas reutilizables la hace Turing completa. Efectivamente, puedes crear reglas para manipular datos dentro de Excel que no son las reglas incorporadas en Excel, con tanta potencia como cualquier otro lenguaje de programación de propósito general. Pero no tienes que aprender un lenguaje de programación como VBA o JavaScript, como lo haces con las opciones existentes para funciones personalizadas.

Índice de Contenido
  1. Mejorando Excel como plataforma de programación
  2. Funciones personalizadas sin código adicional
  3. Mejorando la interfaz de Excel para programación

Mejorando Excel como plataforma de programación

Muchas más personas saben cómo hacer lo que es efectivamente programar en Excel que en cualquier otro lenguaje de programación. Pero hasta hace poco, Excel carecía de algunas características clave para la programación, incluyendo funciones personalizadas incorporadas, variables y tipos de datos personalizados.

Para agregar esas características, el equipo de producto de Excel tiene una asociación a largo plazo con investigadores de lenguajes de programación en Microsoft Research Cambridge, incluyendo a Simon Peyton-Jones, el investigador de Microsoft detrás del lenguaje de programación funcional Haskell.

Desarrolladores: 8 libros imprescindibles para potenciar tu carrera

El objetivo es asegurarse de que Excel no limite lo que un profesional empresarial o científico pueda hacer en una hoja de cálculo, y facilitar la verificación de que los resultados sean correctos y poderosos.

"Excel es, si lo piensas, el lenguaje de programación más ampliamente utilizado", dijo Brian Jones, gerente de programa de Excel, a Newsmatic. "Si escribes fórmulas de Excel, las colocas en la cuadrícula; es programación funcional. Pero en nuestro trabajo con Simon [Peyton-Jones], nos ayudó a pensar en cuáles son los primitivos básicos que faltan y que harían que fuera más sólido y menos propenso a errores. Las personas podrán construir las cosas que ya habían construido antes, pero de una manera más confiable, sólida, con menos errores y más eficiente. Podrás terminar las tareas más rápido y será más fácil para que otras personas comprendan lo que estás construyendo".

Hacer de Excel más una plataforma va más allá de los textos y números que las personas siempre han podido manipular, para abarcar datos más ricos. "Los tipos de datos significan que en lugar de que una celda sea solo una cadena o un número, podría ser un objeto: un conjunto de información rico, como una acción o una geografía. Tenemos una asociación para que todos los datos de Wolfram puedan llegara como tipos de datos, y las empresas puedan crear sus propios tipos de datos. Así que puedo definir un tipo de dato de cliente personalizado y hacer que aparezca en la celda".

Los tipos de datos pueden basarse en tus datos empresariales en Power BI, por ejemplo. Matrices dinámicas construidas sobre tipos de datos. "La idea [es] que una función pueda recibir una matriz, en lugar de solo un valor único, y que pueda devolver una matriz", explicó Jones. Una nueva función en Excel se basa en eso para no solo devolver el precio actual de una acción, sino también su historial. "Puedes pasar un tipo de dato que sea una acción y el resultado de eso será una matriz que es el historial de la acción".

"También hemos estado mejorando la misma sintaxis de fórmulas", agregó Jones. "A veces hay estas fórmulas realmente grandes que pueden volverse demasiado complejas para que las personas puedan leer y entender lo que está sucediendo". El uso de la función LET para declarar variables hace que las fórmulas sean más comprensibles; pero resulta que las variables también hacen que las fórmulas se ejecuten más rápido: "La forma en que está escrita puede hacer que una fórmula sea mucho más eficiente", dijo Jones.

Excel se convierte en un lenguaje de programación completo con la función LAMBDA - Desarrollo | Imagen 1 Newsmatic

Las mejores lenguajes de programación para ingenieros en la nube

Funciones personalizadas sin código adicional

LAMBDA se basa en esas características, convirtiendo a Excel en más de un lenguaje de programación completo al permitir a los usuarios crear funciones personalizadas en el propio lenguaje de fórmulas de Excel y hacer que una función llame a otra (conocido como recursión).

"Las personas más avanzadas siempre podían escribir secuencias personalizadas como una función. Teníamos las funciones definidas por el usuario que eran como complementos de COM, por lo que podías escribir tu propia lógica imperativa para construir una función personalizada, que era un escenario muy desarrollador. Ahora tenemos la capacidad de hacer eso con JavaScript, pero sigue siendo un escenario de desarrollador", dijo Jones.

Algunos desarrolladores están utilizando la funcionalidad de Excel JavaScript de formas avanzadas, como llamar a scripts de Python que ejecutan funciones de Azure, agregó Jones. "Escriben Python, escriben una función JavaScript que se comporta como una función de Excel y toma los valores a los que haces referencia, y luego los pasa a Python, que se ejecuta en la nube, como una forma de ampliar el lenguaje de fórmulas de Excel".

"Ahora puedes crear tus propias funciones personalizadas, pero solo usando el lenguaje de fórmulas de Excel. Hay muchas más personas que saben cómo escribir fórmulas que cómo escribir JavaScript".

Pon "=LAMBDA" al comienzo de una fórmula existente y se convierte en una función que puedes reutilizar en otras partes de la hoja de cálculo sin tener que preocuparte por los cambios de referencias cuando copias y pegas la fórmula. Puedes hacer las cosas más claras, especialmente para alguien más que intente comprender la hoja de cálculo, o para ti mismo en el futuro si tienes que corregir errores, mediante el uso de LET para declarar variables.

"Básicamente, el equipo considera que LET y LAMBDA son una inversión combinada. Una vez que te metes en la construcción de LAMBDAs, comenzarás a hacer un uso cada vez mayor de LET", sugirió Jones.

El problema de la mala documentación en Nextcloud y otros software

"Si hago referencia a la celda B9 muchas veces diferentes, y quiero hacer referencia a una celda diferente en su lugar, tengo que hacer muchos cambios". Excel intenta que eso sea indoloro, pero LET significa menos lugares para hacer el cambio. "Puedo crear una variable y asignarle el valor de B9 y ahora en todos los demás lugares solo hago referencia a esa variable. Y así, si quiero cambiar de B9 a B10, solo tengo que editarlo en este lugar", explicó Jones.

"LAMBDA es el siguiente paso, donde puedo tomar la misma lógica que estaba en esa fórmula y envolverla en una función LAMBDA. Ahora, si comienzo a escribir una fórmula, el autocompletado de Excel verá automáticamente que LAMBDA es una nueva función disponible para mí. Puedo hacer referencia a la celda que quiero, presionar Enter y me dará los resultados".

Si luego encuentras un error en la fórmula original, solo necesitas corregirlo una vez, en LAMBDA, en lugar de buscar cada vez que usaste la fórmula y hacer el mismo cambio. "Desde una perspectiva de depuración, es menos propenso a errores y es más fácil para que otras personas comprendan cuál era la intención de lo que estás tratando de hacer", dijo Jones.

También puedes construir funciones más complejas llamando a una secuencia de funciones sencillas, una técnica de programación muy común. "Eso es algo que nunca antes podías hacer en Excel; tener un conjunto de información por el que iteras", agregó Jones.

Actualmente, el LAMBDA solo está disponible en la hoja de cálculo en la que lo creas, y puedes trabajar con él en el Administrador de nombres de Excel. Pero una función útil en una hoja de cálculo a menudo también será útil en otros lugares, y las personas querrán compartir funciones con colegas. Eso vendrá con el tiempo, dijo Jones.

"Esto es claramente solo el primer paso. El propio Administrador de nombres no es el mejor en términos de experiencia de autoría, por lo que claramente es algo que queremos mejorar. Con el tiempo, veremos cuáles son los modelos correctos en torno a cómo podrías tomar estos LAMBDA y compartirlos con otras personas".

Las demandas de los programadores: JavaScript

De manera similar, los scripts de JavaScript para automatizar Excel actualmente solo están disponibles dentro de una única hoja de cálculo, y el equipo de Excel ya está hablando con los clientes sobre la mejor manera de compartirlos, por lo que puede ser un modelo similar para compartirlos. "Todos tienen esa fórmula que escribiste y que quieres usar en otros lugares, y todos tienen su forma de cómo la almacenan para reutilizarla", dijo Jones.

Una vez que las funciones sean más fáciles de compartir, también será más fácil hacer un seguimiento de ellas para el gobierno dentro de la organización y actualizarlas con correcciones. "Si ves todos los lugares donde se está utilizando, si te das cuenta de que hay un error, sabes en qué libros de trabajo debes buscar que puedan estar propensos a ese error. Se trata de tener más seguridad y solidez en las soluciones que las personas están construyendo, porque hay cientos de millones de personas que escriben fórmulas de Excel, esencialmente, las hojas de cálculo son aplicaciones y las personas las están construyendo", dijo Jones.

Las funciones LAMBDA encapsulan fórmulas que podrían ser útiles de manera muy amplia, porque los usuarios de Excel suelen ser expertos en su dominio, dijo Jones.

"Puedes imaginar formas en las que podemos ver no solo compartir el LAMBDA en otras hojas de cálculo, sino para que se convierta en algo que se pueda llamar incluso fuera de Excel. Exploraremos eso porque hay muchas más personas que pueden escribir esta lógica muy valiosa con Excel".

"Las personas que usan Excel son las que entienden los problemas empresariales. Son quienes entienden lo que realmente se necesita construir, en lugar de tener a un desarrollador que intenta interpretar la necesidad y codificarla. Esa es la belleza de Excel: la persona que tiene la necesidad es quien construye la solución".

La combinación de las nuevas funciones de programación podría hacer que las organizaciones personalicen Excel para su propio campo.

Cómo instalar Podman en Ubuntu: Guía paso a paso

"Puedes crear tus propios tipos de datos personalizados y luego puedes crear algunas funciones personalizadas que sepan cómo actuar sobre esos tipos de datos, y luego puedes construir Excel para física o Excel para química con un conjunto de tipos de datos que pueden provenir de Wolfram. Ahora las personas pueden comenzar a tomar decisiones y construir esa lógica en torno a cualquier cosa en el mundo que les importe", dijo Jones.

"Muchas personas, cuando piensan en Excel y la modelización, piensan en la modelización de datos financieros. Lo que esto realmente está diciendo es 'no, ahora puedes usar Excel para modelar y tomar decisiones sobre cualquier cosa que esté sucediendo en el mundo'. Esperamos ver con el tiempo un ecosistema de tipos de datos en torno a todos los tipos de objetos que les importan a las personas, que quieren tomar decisiones, realizar un seguimiento o usar, y luego usar nuestro lenguaje de fórmulas en la cuadrícula".

Mejorando la interfaz de Excel para programación

La cuadrícula es lo que define a Excel y ofrece una forma de programación visual. "La belleza de Excel, el alma de Excel, es la cuadrícula y las funciones", según lo expresó Jones. "El lenguaje de fórmulas por sí solo no es muy poderoso, igual que la cuadrícula por sí sola. Pero la combinación de los dos es esta magia que obtienes".

"Porque puedes comenzar rápidamente a diseñar un conjunto de lógica, debido a que cada celda es un paso en el camino y la función en la que te estás basando hace que sea muy fácil seguir lo que está sucediendo, y aprender a construir la lógica que deseas. Puedes hacerlo incluso sin pensar en que eso es lo que estás haciendo. Incluso cuando las personas presentan informes, a menudo hay muchos números presentados, pero en realidad solo hay un par de celdas que son las que miras, pero aquí hay todos los pasos intermedios en el camino, si tienes curiosidad acerca de cómo llegamos a este resultado".

Eso significa que la cuadrícula ya es una herramienta de depuración, sugirió Jones. "Puedes dividir tu lógica en las celdas, por lo que en lugar de escribir la fórmula grande, la descompones en varios pasos donde una fórmula obtiene un resultado y luego haces clic en el siguiente resultado. La cuadrícula casi te brinda este depurador natural, es como si cada celda tuviera su propia pequeña ventana de inspección".

"LAMBDA cambia eso un poco, especialmente ahora con la implementación donde escribes todo y lo colocas en el Administrador de nombres. Entonces veremos si los patrones que utilizan las personas son aquellos en los que lo descomponen primero hasta que llegan al punto en el que saben que la lógica funciona, y luego lo combinan. O si necesitamos tener una mejor forma de interrogar las diferentes partes de la fórmula para ver cuál es el resultado de esta pieza versus el resultado de esa pieza, para poder comprender por qué no obtengo el resultado que esperaba".

Visual Studio Code en Raspberry Pi: Una combinación poderosa y flexible para desarrollo

Excel no tendrá lo que los programadores podrían reconocer como un depurador para ayudar con eso, pero habrá más ayuda. "Definitivamente examinaremos los lugares clave donde las personas se atascan un poco en términos de comprender sus resultados y cómo solucionar esos resultados", dijo Jones.

Pero agregar más constructos formales de lenguajes de programación no se trata de convertir Excel en una herramienta para desarrolladores experimentados.

"Tanto como esto está agregando más potencia, queremos hacer que Excel se sienta accesible para más y más personas. Definitivamente no estamos tratando de seguir el camino de convertirlo en una herramienta de alta gama. Donde creemos que Excel hará un gran trabajo es tratando de tomar algunos de estos patrones que se ven en los lenguajes de programación y llevarlos a los no programadores", prometió Jones.

Jones prometió mejoras para el Administrador de nombres, que fue un lugar lógico para poner la nueva función LAMBDA para que las personas puedan comenzar a usarla, pero que actualmente es algo primitivo. "Nunca queremos ser un Entorno de Desarrollo Integrado completo, pero si estás familiarizado con el Administrador de nombres, es solo una cadena de texto de una sola línea que estás editando. De hecho, nuestros artículos de ayuda para comenzar sugieren que las personas escriban primero LAMBDA en la cuadrícula y luego lo copien en el Administrador de nombres. Definitivamente hay muchas cosas que podríamos hacer para mejorar eso, y esa es un área en la que estaremos iterando bastante".

Excel también intentará comenzar a predecir qué fórmula estás escribiendo y completarla automáticamente, en lugar de hacer que los usuarios la escriban por completo. "Estamos comenzando a buscar más formas en las que podamos usar la inteligencia para ayudar a las personas, para poder ser un poco más predictivos a medida que están escribiendo fórmulas, para tratar de ayudar a las personas a construir el tipo correcto de fórmula y hacer la selección correcta".

Como de costumbre, la nueva funcionalidad LAMBDA se implementará gradualmente en las versiones del canal beta de Office Insider, comenzando con alrededor de la mitad de los Insiders, por lo que aún no todos los Insiders lo verán. No está restringido a SKU específicos de Office y estará en todas las suscripciones de Office 365 y Microsoft 365 que incluyan Excel.

El creador de Drupal habla sobre la importancia del modelo de negocio en el software open source

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Excel se convierte en un lenguaje de programación completo con la función LAMBDA , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.