El dia de hoy veremos la herramienta Generate Rows de Alteryx, con la cual podemos generar filas de acuerdo a una condición dada.
Para entender la dinámica de esta herramienta trabajaremos el siguiente caso. Una empresa vende mensualmente ciertos productos, pero no todos los productos son vendidos todos los meses. Para hacer un reporte y se vean claramente cuales no se están vendiendo, es preciso completar la información con los meses faltantes y sus ventas en 0.
Este reporte es de los que se lleva hasta el mes de mayo de 2019. Todos los productos deberían tener 5 líneas (una por cada mes)
Para comenzar traemos unos datos muy sencillos sobre la venta mensual de ciertos productos.

Como vemos ninguno de estos 3 productos trae los 5 meses, es necesario completarlos. Para esto utilizaremos la herramienta Generate rows, siguiendo estos pasos.
- En un text input definimos la fecha inicial 01/01/2019 y la final sería el mes actual de este reporte (para hacerlo dinámico) Como podemos ver, la herramienta generate rows creo una nueva columna llamada FechaNueva en la que están los 5 meses que deseamos.

2. Ahora lo que necesitamos hacer es sacar cada producto único de los datos entregados, usando la herramienta summarize, aunque podría ser también con Unique.

3. Necesitamos unir cada una de las fechas con cada uno de los productos existentes. Para esto usamos la herramienta Append Fields que nos permite realizar esto. Como vemos ya cada producto tiene 5 fechas de los 5 meses correspondientes. Ahora es necesario unirlo con los datos originales para traer las cantidades correspondientes a los meses en que si existieron ventas.

4. Para traer la columna de las ventas que corresponde, debemos hacer un join del producto y de la fecha. Como está ahora la fecha de los datos originales, no nos va a permitir a realizar este join, entonces primero la formateamos usando una formula.

5. Con esta fórmula unimos la fecha y con la herramienta DATETIME le damos formato de fecha.

6. Ya tenemos listos los datos para cruzarlos.

7. Con este cruce tenemos en la salida J ,los 8 registros que teníamos en los datos originales con las ventas. En la salida R tenemos las fechas que no cruzaron por que no existen y a estos datos le agregamos un campo llamado ventas Cantidad y le asignamos 0. Luego lo Unimos. Como podemos ver, logramos nuestro objetivo inicial. Ya tenemos 5 registros para cada mes para cada producto.

¿Cómo usar el Generate rows para incrementar alfabéticamente?
Básicamente necesitamos un valor inicial y final que se usan en la condición del Generate rows y las funciones CharttoInt para convertir letras a números y CharFromInt para convertir números a letras.

- El TexInput contiene el inicio y el fin

2. Configuramos el Generate rows para que comience con la letra a y vaya hasta la letra h. Se convierte en su equivalente numérico para incrementarlo.

3. Y por último se usa la fórmula para convertir el número de nuevo a su letra equivalente.

By Andrea Ruiz, Consultora de BI/BA