Power Query M: patrón alternativo 0-1 en la tabla de fechas

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Este tutorial se centra en el uso de la función number.mod de Power Query M para crear un patrón alternativo 0-1 en la tabla de fechas. La solución que les mostraré provino de uno de los usuarios avanzados de nuestra comunidad, Rajesh, en LuckyTemplates. Puede ver el video completo de este tutorial en la parte inferior de este blog.

El objetivo es generar una secuencia de cuatro ceros alternados por cuatro unos, y luego repetirla a lo largo del día.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Rajesh dio en el clavo con su análisis y desglose del problema utilizando la función Power Query M para resolverlo. Dicho esto, pasemos a Power Query.

Tabla de contenido

La función Power Query M Number.Mod

Power Query M, específicamente la función number.mod, será el núcleo de nuestra solución. ¿Qué hace?

Puede consultar la documentación interna de cualquier función M ingresando su nombre sin paréntesis como se muestra aquí en la barra de fórmulas. Esta función devuelve el resto de una división de enteros. Toma hasta tres parámetros, los dos primeros, un número, y el divisor, que también es un número.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Ahora empecemos. Seleccionaré mi consulta de muestra que contiene un intervalo de fechas que he preparado.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

En muchos casos, number.mod se usa en combinación con una columna de índice que luego se usa como su primer parámetro. Pero no voy a hacer eso porque si lo piensas bien, el valor de la fecha es un número entero. Entonces, crear un índice que comparta la misma granularidad que la columna Fecha, donde cada fila tiene un valor único, es algo que podemos evitar.

Todo lo que tenemos que hacer para imitar un índice es restar la primera fecha en nuestra tabla Fecha de cada fecha en la columna Fecha. Para hacer eso, podemos almacenar el valor de la fecha de inicio en una variable para que podamos usarlo una y otra vez. Creo que el Editor avanzado es el mejor lugar para hacer esto.

Así que abriré la ventana del Editor avanzado y crearé una nueva variable. Llamémoslo StartDate . Codifiqué mi Primera cita aquí, así que solo voy a copiarla y pegarla. No olvide la coma al final, y ahora podemos reemplazar esa Primera cita con nuestra variable Fecha de inicio.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Como puedes ver, nada cambió.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Creación de una columna personalizada para el patrón M de Power Query

Entonces, a través de esta mini tabla, agregaremos una columna personalizada.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Llamemos a esta columna Pattern e ingresemos la función de Power Query M, number.mod . Verá los dos parámetros aquí, un número como un número anulable y un divisor como un número anulable. Por lo tanto, requiere dos valores de tipo numérico como parámetros.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Ahora no tenemos números, ¿verdad? Tenemos fechas y no existe tal cosa como conversión de tipo automática en ellas. Entonces necesitamos obtener el número de nuestro valor de fecha. Así que escribimos aquí, number.from luego nuestra columna Fecha y luego restamos nuestra variable StartDate.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Ahora, supongamos que la primera fecha en nuestra tabla de fechas devuelve uno, luego nuestra fecha de inicio también devolverá uno. Y así, uno menos uno es igual a cero. Quiero que nuestra numeración de índice comience con un uno en lugar de un cero. Así que tendremos que sumar uno atrás más uno. Ahora uno menos uno es igual a cero más uno devuelve uno para el primer registro.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Para el segundo registro, obtenemos un valor de dos (2) para la fecha en la columna Fecha, menos un uno (1) de nuestro valor StartDate que es igual a uno, más el que estamos agregando nuevamente devuelve un dos, y así sucesivamente. . Nuestro patrón repetitivo se basó en una serie de cuatro valores alternos. Entonces, como divisor, voy a pasar el valor cuatro (4).

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Veamos qué hace eso. En la fila cuatro, obtenemos cero, así como en la fila ocho. Entonces, cada cuarta aparición devuelve un valor cero para ese registro.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Creación de una construcción IF-THEN-ELSE

Volvamos al cuadro de diálogo de nuestro cliente y amplíemos la lógica que hemos escrito hasta ahora. Excepto por el divisor, necesitamos repetir la misma lógica para poder identificar una octava ocurrencia.

Sin embargo, en esa octava fila, queremos un valor diferente. Entonces, para hacer una distinción entre una cuarta y una octava ocurrencia, podemos usar una construcción IF-THEN-ELSE. De esa manera, podemos devolver un valor para la primera prueba lógica que devuelva un verdadero.

Así que If , y volveré a pegar nuestro código aquí (excepto por el divisor), cambie ese divisor a un ocho para que una octava fila devuelva cero. Entonces, si eso es igual a cero, eso significa que fallará en su camino a verdadero o falso. Entonces queremos un uno (1). De lo contrario , si nuestra lógica aquí identifica una cuarta fila igual a cero, entonces queremos cero (0). De lo contrario, no queremos recuperar un valor. Así que agreguemos un nulo .

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Ahora, revisemos nuestra lógica nuevamente. Entonces, en cada cuarta aparición, obtenemos ese cero. Y luego, en el octavo, obtenemos un uno. A continuación, obtenemos cero y uno, y así sucesivamente.

Así que esto se ve bien. Todo lo que tenemos que hacer ahora es llenar estos valores.

Power Query M: patrón alternativo 0-1 en la tabla de fechas

Entonces, dentro de la barra de fórmulas, agregaremos Table.FillUp al principio y luego algunos paréntesis de apertura. Al final de nuestro código, agregamos el número de tipo ; también necesitamos agregar una columna como una lista. Entonces, vamos a coma , luego usamos las llaves para el inicializador de lista y como un valor de texto pasamos nuestro nombre de columna, Patrón . No olvide los paréntesis de cierre y presione OK.

Power Query M: patrón alternativo 0-1 en la tabla de fechas


Guía para principiantes del código M en LuckyTemplates
Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas
Clasificación de las columnas de la tabla de fechas en LuckyTemplates

Conclusión

Este es un escenario único y, sinceramente, no puedo pensar en una aplicación para este patrón específico, pero espero que pueda ver el potencial de crear secuencias usando la función de Power Query M, number.mod.

Para obtener más detalles, vea el video completo a continuación para este tutorial.

¡Mis mejores deseos!

Toronjil


Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Cómo guardar y cargar un archivo RDS en R

Cómo guardar y cargar un archivo RDS en R

Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.

Introducción al contexto de filtro en LuckyTemplates

Introducción al contexto de filtro en LuckyTemplates

En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.

Ideas de materialización para cachés de datos en DAX Studio

Ideas de materialización para cachés de datos en DAX Studio

Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.

Informes comerciales con LuckyTemplates

Informes comerciales con LuckyTemplates

Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber