Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
Para esta publicación, me gustaría hablar sobre un consejo reciente de LuckyTemplates que se me ocurrió para un miembro del . La pregunta se refería a un patrón útil en términos de observar los primeros N días hábiles o los primeros N días facturables de un mes determinado en comparación con el mismo período del mes anterior. Puedes ver el video completo de este tutorial en la parte inferior de este blog.
TJ Henneman quería comparar los primeros 5 días facturables del mes actual con los primeros 5 días facturables del mes anterior, y luego el día 10, el día 15 y el día 20. Tenga en cuenta que solo quiere ver los días facturables, por lo que esto no incluye fines de semana y días festivos. Puedes revisar su publicación .
Creo que aquí hay una solución de consulta de energía realmente interesante. También trabajé con una interesante solución DAX en este problema. Voy a repasar esto último en otro tutorial.
También quiero guiarlo a través de una técnica de generación de informes reciente que utilicé para LuckyTemplates Challenge #16. Usé un indicador KPI de desplazamiento que funcionará muy bien para este problema en particular.
Pero para este consejo de LuckyTemplates, me referiré a la solución de consulta de energía. Saltemos a LuckyTemplates y echemos un vistazo a nuestros datos. Para este, simulé los datos usando la herramienta de conjunto de datos de práctica que armamos en LuckyTemplates, que puede usar de forma gratuita. Esto es excelente para armar un conjunto de datos de esquema en estrella básico y para probar soluciones.
Tabla de contenido
Nuestro modelo de datos
Nuestro modelo de datos utiliza nuestra tabla de fechas extendida más una serie de tablas de dimensiones. También tenemos una tabla de Ventas con tres años de datos parciales en el primer año, datos completos en el segundo año y datos parciales en el tercer año. Por último, también tenemos una tabla de Medidas .
También modifiqué ligeramente este conjunto de datos. Traje una tabla de días festivos y la vinculé a la tabla de fechas extendidas para que pueda calcular correctamente los días festivos que eliminaremos en este análisis. Si no está seguro de cómo hacerlo, consulte este tutorial .
Luego filtré el primer mes parcial en el conjunto de datos porque ese mes solo tenía unos pocos días de datos y no tenía los días hábiles que necesitamos. Tenga en cuenta que estamos comenzando con el primer mes completo; pero aparte de eso, este será su conjunto de datos estándar. Así que pasemos a Power Query y comencemos a trabajar en este consejo de LuckyTemplates.
Si echamos un vistazo a nuestros datos, puede ver que tenemos diferentes pedidos en un día en particular. El objetivo es numerar todo lo que comienza con el 1 de abril como nuestro primer día hábil, el 2 de abril como nuestro segundo día hábil, el 3 de abril como nuestro tercer día hábil, y así sucesivamente. Numeraremos esto de 1 a N días hábiles para cada mes mientras eliminamos los fines de semana y días festivos.
Crear una tabla duplicada
Para comenzar, necesitamos crear un duplicado de esta tabla para que podamos agregarla a Ventas totales y llevarla al nivel de observación individual. Vamos a llamar a esta tabla duplicada Ventas agregadas .
Es posible que haya notado que duplicamos la tabla Ventas en lugar de solo hacer referencia a ella. En este caso, uniremos esta tabla con la tabla Ventas original. Si lo referenciamos, causará problemas cuando unimos los dos.
Lo primero que debe hacer es usar Agrupar por en la columna OrderDate . Haga clic en el botón Avanzado porque nos dará una imagen completa de lo que estamos haciendo aquí. Pondremos Total Day Sales como nuestro nuevo nombre de columna, y será la suma del total de nuestra línea.
Ahora tenemos cada fecha (primera columna) y las ventas totales de ese día (segunda columna).
Fusión de la tabla de fechas
El siguiente paso en este consejo de LuckyTemplates es fusionarlo con nuestra tabla de fechas para averiguar cuáles de esos días son días hábiles y cuáles no. Podemos agrupar por nuevamente, dividirlos y numerarlos apropiadamente.
Fusionaremos nuestra tabla de fechas y vincularemos OrderDate a Date . Podemos ver en la parte inferior que la selección coincide con todas las filas de la tabla, como debería ser.
El campo que nos interesa principalmente es IsBusinessDay .
Este es el campo principal en el que estaremos agrupando y luego usaremos los campos Mes y Año y Mes-Año .
También debemos verificar DayofWeekName para asegurarnos de que estamos filtrando los días correctos.
Una vez que hagamos clic en el botón Aceptar , nos dará exactamente lo que necesitamos.
También debemos asegurarnos de que nuestra Fecha de pedido esté ordenada en orden ascendente.
Luego regresamos y creamos un segundo Group By .
Esta vez, haremos clic en el botón Avanzado , agruparemos en Mes y año y luego agregaremos una segunda agrupación.
La segunda agrupación es para IsBusinessDay , por lo que podemos enumerar aquellos en los que los días hábiles son verdaderos.
Luego, crearemos una función AllRows para que no se agregue y podamos volver al nivel original de granularidad.
Esto debería darnos tablas anidadas donde podamos ver una tabla para verdadero y una tabla para falso para cada mes.
Crear una columna personalizada
A continuación, debemos crear una columna personalizada para agregar el recuento que necesitamos para los días hábiles.
Vamos a usar una función llamada Table.AddIndexColumn , que operará en la tabla AllRows , y la llamaremos Day Index . Queremos que el índice comience con 1 y aumente en 1 con cada nuevo día hábil.
Luego, podemos eliminar las primeras tres columnas y expandir nuestra cuarta columna personalizada.
Si miramos el resultado, nos da el índice de días, que cuenta los días hábiles (verdadero), y luego cuenta los días que son fines de semana y festivos en cada mes (falso). A continuación, debemos verificar que estos estén en su tipo de campo adecuado.
Volvamos a nuestra tabla de Ventas. Fusionaremos la tabla Agregado que acabamos de crear con nuestra tabla Ventas.
Los fusionaremos en OrderDate . Puede ver en la parte inferior que coincide con todas las filas de la primera tabla.
Cuando expandimos la columna Sales Agg, seleccione los nuevos campos que acabamos de agregar: las columnas Month & Year , DayOfWeekName , MonthnYear , IsBusinessDay y DayIndex .
Limpiemos también nuestros datos antes de hacer clic en Cerrar y aplicar . Movamos la tabla Sales Agg en nuestra sección de preparación de datos , luego descarguemos esa tabla ya que no la vamos a necesitar dentro del modelo de datos. Luego haga clic en Cerrar y aplicar .
Nuestro trabajo de preparación de consulta de poder ya está hecho.
Creación de un parámetro hipotético
Recuerde que en la tarea original queremos variar la cantidad de días que observamos de 5 a 10 y de 15 a 20. Creo que la mejor manera de hacerlo es con un nuevo parámetro hipotético .
Llamaremos al parámetro hipotético First N Business Days y su tipo de datos será un número entero. El mínimo se establece en un incremento de 1 y un máximo de 20. Luego, estableceremos el valor predeterminado en 5, que es el primer valor que deseaba el usuario.
Ahora tenemos una segmentación que crea automáticamente la medida de cosecha para capturar el valor de la segmentación.
Vamos a crear una tabla con nuestros resultados. Pongamos nuestra dimensión Mes y año en el lienzo y luego ordenémosla por Mes y año .
Una vez que tengamos este campo correctamente ordenado, podemos simplemente eliminar la medida Ventas totales y expandirla.
Creación de una medida para el número de días hábiles
Necesitamos crear una medida más que analice el valor del parámetro del control deslizante y solo calcule la cantidad de días hábiles.
Llamaremos a esta nueva medida Total Sales N Bus Days . Comenzaremos con la función ya que definitivamente estamos cambiando de contexto, y con nuestra medida Ventas totales. Vamos a filtrar esto con TODOS LOS de nuestra tabla de Ventas.
El siguiente paso es escribir las condiciones que queremos tener en cuenta para el control deslizante. Tenemos nuestro índice del día de ventas que creamos en Power Query y queremos que sea menor o igual que el valor de los primeros N días hábiles, que es el valor recolectado de la segmentación.
Por ejemplo, si el control deslizante está en 5, queremos todos los días de la tabla Ventas donde el índice de días sea menor o igual a 5.
Y luego queremos sacar los días no hábiles. Haremos referencia a la tabla Fecha y usaremos el campo IsBusinessDay. Solo veremos el resultado que es VERDADERO.
Por último, recupere el contexto para Mes y año y cierre la medida. Deberíamos estar listos para ir en este punto.
Coloquemos la nueva medida en nuestra tabla.
Podemos llevar el control deslizante a la marca de 10 días y la tabla calculará dinámicamente en la marca de 10 días.
Conclusión
En este consejo de LuckyTemplates, hablamos sobre cómo hacer una comparación similar de forma dinámica mediante una solución de Power Query. Podemos poner esto en un gráfico de barras o en un gráfico de líneas.
En algunos de nuestros próximos tutoriales, veremos la solución DAX e implementaremos la visualización del desplazador de KPI.
Si disfrutó del contenido cubierto en este tutorial en particular, no olvide suscribirse al canal de televisión LuckyTemplates .
Qué es uno mismo en Python: ejemplos del mundo real
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.
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.
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.
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.
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.
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.
Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.
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