Relleno Rápido en Excel (FlashFill)

Supongo que si estás utilizando Excel 2013 o superior ya has notado que Excel sugiere completar datos de forma automática tan pronto escribes alguna modificación en la columna contigua a tus datos originales.

Esta funcionalidad es mucho más avanzada que un simple autocompletar valores por lista, como lo hemos tenido en Excel desde hace varias versiones. La función Relleno Rápido trabaja de una forma más «inteligente», ya que detecta los cambios que deseamos realizar, los aplica sobre la serie de datos siguiente y nos sugiere autocompletarlos. Todo esto sin escribir ninguna fórmula o línea de código en VBA. Aprende aquí como y cuando utilizarla para que le saques el mayor provecho.

Para tener una idea de lo que es capaz la herramienta, he tomado varios casos reales planteados en diversos foros y blogs relacionados a Excel. En todos los casos las soluciones propuestas fueron fórmulas o código VBA. Veamos cómo lograrlo con la herramienta Relleno Rápido:

Extraer texto y números en una cadena

Una de las tareas que he visto con mucha frecuencia en la limpieza y normalización de datos, es la separación de texto y números. Ya escribí un artículo detallado al respecto y de hecho la primera forma de lograrlo que allí describo es precisamente la función Relleno Rápido.

La herramienta detecta un patrón de lo que queremos hacer. Nos sugerirá una lista con los cambios para datos no numéricos a partir de la segunda entrada manual que realicemos. Para procesar datos numéricos, desde la celda vacía siguiente de nuestros datos podemos incluir directamente las sugerencias al presionar Ctrl + Mayús (Shift) + E  si tu Excel está en idioma español y Ctrl + E si está en inglés.

De la misma forma, debemos notar que la función detecta los cambios si nuestro rango de resultados está contiguo a las celdas que deseamos procesar. En mi caso, como pueden observar, utilizo la herramienta directamente sobre una tabla, de esta forma estoy seguro del área donde quiero los resultados y que la función trabaja bajo las premisas correctas.

Extraer valores entre caracteres

Con frecuencia recibimos datos en cadenas de texto de los cuales sólo deseamos el valor entre dos guiones, puntos u otro carácter. Para extraer el valor que necesitamos solo debemos dar el primer ejemplo y de allí Relleno Rápido completara los valores restantes. Veamos el siguiente caso.

En este primer ejemplo, vemos que debemos realizar un ajuste en los resultados. Con esta modificación, «entrenamos» al algoritmo detrás de Relleno Rápido para que realice los ajustes necesarios. Sigamos con otro ejemplo.

En este segundo caso requerimos extraer el valor entre los guiones. Los resultados sugeridos son correctos y no se aplica ninguna corrección adicional.

Extraer fechas de una cadena de texto

Otro caso posible es si recibimos datos que incluyen una fecha con formato apropiado, pero dentro de una cadena de texto. Aquí podremos utilizar Relleno Rápido para realizar la extracción automáticamente. Debemos tener en cuenta que el formato del resultado está vinculado a configuración regional del equipo, por lo tanto, vale la pena revisar ese ajuste antes de proseguir.

En el caso del ejemplo, la fecha está en formato para US, asi que todos los resultados son reconocidos como fecha automáticamente.

Extracción de patrones complejos

Existen patrones de extracción más complejos donde la función no puede reconocer lo que deseamos hacer. En casos así, la herramienta dejará espacios en blanco. Veamos a continuación como proceder si se presenta esta situación.

Como vimos en un caso anterior, para corregir los resultados debemos incluir alguno de los valores faltantes manualmente. Esto instruye al algoritmo que utiliza Relleno Rápido, el cual realizará los cambios apropiados. Como veremos más adelante, debemos evaluar la eficiencia de realizar estas correcciones de acuerdo a la complejidad y tamaño nuestros datos.

Ajustes de formato a texto

Podemos aplicar cambios a nuestro texto y dejar que la función Relleno Rápido haga el trabajo pesado. Por ejemplo, si tenemos una lista de nombres donde hay datos en mayúsculas y minúsculas de forma inconsistente, podemos hacer los cambios a los primeros ítems de nuestra lista y Excel inmediatamente nos propondrá completar el resto de los nombres con la versión corregida. Al igual que los casos anteriores, proveeremos el primer valor y Relleno Rápido se encargará del resto. Veamos un par de ejemplos con ajustes de formato.

Por supuesto, el primer caso del este ejemplo podremos completarlo con el uso de la función NOMPROPIO. Sin embargo, se utiliza el caso en esta entrada para ilustar el uso de la función Relleno Rápido.

Excel es más inteligente

Lo que existe detrás de la «inteligencia» de Excel es que la función Relleno Rápido incluye un algoritmo y estructura de datos específicos para procesar, de forma prácticamente instantánea, las entradas de los usuarios.

La creación de esta herramienta se la debemos a los investigadores de Microsoft Research y particularmente al investigador Sumit Gulwani. En dicha división se generan proyectos muy interesantes, muchos de los cuales hemos visto concretarse en productos finales ofrecidos por Microsoft.

La idea original de los desarrolladores era que la herramienta pudiera trabajar con pocos ejemplos, provistos por el usuario, y que ofreciera los resultados de forma instantánea. ¿Cómo llegaron a esa premisa? Luego de observar cientos de entradas en blogs de Excel (excelforum.com, ozgrid.com, mrexcel.com y exceltip.com) donde los usuarios deseaban modificar y extraer datos de cadenas de texto, en las que sólo proveían unos pocos ejemplos, vieron la necesidad de desarrollar una herramienta capaz de realizar dicha tarea.

No lo he visto publicado en español, pero para los más curiosos les recomiendo la lectura de los documentos que soportan los análisis y resultados de la implementación de este algoritmo.

Aún y cuando no comprendas todos los conceptos allí explicados, tendrás una idea muy clara del poder de cálculo detrás de Excel, la función Relleno Rápido y cómo trabajan para facilitar el trabajo de los usuarios.

Una recomendación final

Aunque útil y precisa, debemos tener cuidado cuando utilicemos la función Relleno Rápido. Existen casos en los que todavía podríamos considerar otras opciones, por ejemplo:

  • Si los patrones de cambio en nuestros datos son muy complejos y cuando tenemos cientos o miles de filas con información, es más difícil validar si los resultados que obtuvimos son los que esperamos. Aunque vimos que es posible corregirlos, en casos de existir miles de variaciones, quizás no sea eficiente «entrenar» a la función para todos los datos incompletos.
  • Si los datos base serán actualizados. Como pudimos observar en los ejemplos, los resultados de Relleno Rápido son valores fijos, lo que significa que cualquier cambio a los datos bases no serán actualizados automáticamente en los resultados de Relleno Rápido.

Un ejemplo del primer caso es si tenemos listas de personas con dos nombres y dos apellidos, alternados con personas con sólo un nombre, un apellido, o todas las variaciones posibles (un nombre – dos apellidos, dos nombres – un apellido…). La herramienta tendrá problemas en sugerir resultados correctos, pues no está diseñada para detectar qué es un nombre o un apellido, sólo reconoce un patrón desde una pequeña muestra que le ha suministrado el usuario.

Para el segundo caso, digamos que la columna base se genera de forma dinámica, como la hora y fecha en que se tomó una determinada muestra. En estos casos, la herramienta sólo procesará los datos originales, pero cuando sean actualizados, la herramienta Relleno Rápido no modificará los resultados y nuestra tabla terminaría con información incorrecta.

En estos casos, aunque Relleno Rápido está allí a nuestro servicio, debemos recurrir a las formas tradicionales con funciones y código personalizado en VBA para obtener resultados confiables y, sobre todo, que puedan ser actualizados y validados de forma eficiente. Lo anterior no le resta nada a esta herramienta, pero debemos tenerlo presente para que podamos utilizarla adecuadamente.

Teniendo en cuenta lo que hemos visto sobre la función Relleno Rápido, considero que ya pueden darle uso sin inconvenientes en sus labores diarias con Excel. Hasta un próximo artículo.

5 Comments

  1. Gracias por las referencias bibliográficas. Son muy interesantes y creo que resultan útiles para los usuarios más avanzados. Es la forma obvia de entender que hay PERSONAS detrás de la herramienta.

    Responder

  2. Aunque casi un año después estoy leyendo este artículo (apenas instalé esta versión) me animo a escribir un comentario con el reconocimiento hacia los desarrolladores que nos están facilitando nuestro trabajo, así como al Sr. Carlos M, autor del blog, por participarnos sus conocimientos, por lo que se ve, bien fundados, ya que hasta nos ha proporcionado copias de los documentos totalmente analíticos, útiles sobre todo, para los usuarios más avanzados.

    Es reconfortante saber que hay alguien que domina y conoce bien sobre lo que escribe, y en quien se puede confiar cuando hay dudas sobre el tema.

    Muchas gracias.

    Responder

    1. Muchas gracias Leonardo! Cuando se trata de Excel, mi objetivo siempre ha sido que los usuarios utilicen de forma eficiente la herramienta. Me complace saber que los lectores aprecian este enfoque. Saludos!

      Responder

Responder a carlosmCancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.