Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
En esta publicación de blog, vamos a echar un vistazo a una pregunta que se hizo en el foro de LuckyTemplates y usaremos una técnica de LuckyTemplates del lenguaje DAX para resolverla. En caso de que quiera seguir y descargar los archivos, simplemente visite el foro de LuckyTemplates y vaya a . Puedes ver el video completo de este tutorial en la parte inferior de este blog.
Para explicar el escenario que vamos a cubrir, tenemos una tabla simple como ejemplo. En la primera columna, tenemos el Nivel financiero 1 . En la segunda columna, tenemos una fecha que se denomina Completado. En la última columna, tenemos la combinación de nivel financiero y fecha de finalización, que llamaremos Ingresos .
Luego tenemos una segmentación para la fecha y el nombre del cliente .
Lo que queremos hacer para un período de tiempo específico es identificar las tres fechas principales que no son cero. Y luego, en esas tres fechas principales, queremos identificar el nivel financiero.
En la primera versión de la medida, enumeré las fechas que son menores al 29/04/2021 en las que tenemos algunos ingresos.
Y en estas fechas, queremos identificar los niveles financieros que han generado algunos ingresos. Te explicaré cómo podemos lograr ese cálculo.
Tabla de contenido
Modelado de datos
Antes de escribir el DAX real, echemos un vistazo rápido al modelo de datos que contiene varias tablas. Sólo estamos interesados en la tabla de fechas , la tabla de datos , la tabla de categorías de trabajo y la tabla de clientes .
Tenga en cuenta que la tabla Customer no es realmente importante porque solo se usa dentro de una segmentación.
La medida de ingresos se calcula en la tabla de datos. La categoría Trabajo contiene el nivel financiero que tenemos en la matriz. Luego estamos usando la columna Fecha de la tabla Fecha en nuestra segmentación.
Versión 1
Deshagámonos de todo de la matriz y comencemos desde cero. Voy a crear una nueva medida y la llamaré V1 porque esta será la versión uno. También vamos a echar un vistazo a otras dos variaciones.
Preparando el contexto del filtro
Lo primero que vamos a hacer es recuperar todos los valores del nivel financiero del contexto del filtro. Crearemos una y la nombraremos como FinancialLevelInFilterContext .
Para recuperar los valores del contexto del filtro, vamos a utilizar la en la tabla de categorías de trabajo que contiene la columna de nivel financiero. Luego necesitamos crear otra variable y nombrarla Result . Luego escriba y ciérrelo también.
En el primer argumento, tenemos una selección sobre la segmentación de fecha. En esas fechas, queremos identificar las fechas que no tienen un 0 y tienen al menos algún ingreso.
Si desea acceder a todas las fechas que están seleccionadas en esa segmentación, debemos usar la sobre la tabla de fechas.
Y dado que tenemos el nivel financiero en la matriz, también debemos asegurarnos de que estamos eliminando ese valor particular del contexto del filtro. Podemos usar la sobre la categoría de trabajo y luego escribir Nivel financiero 1.
Ahora que nuestro contexto de filtro está preparado, podemos escribir el cálculo más interno para CALCULAR. Primero, declararemos una variable, que será una combinación del nivel financiero y la columna de fecha como hemos visto en la primera tabla.
Luego, usaremos la y la tabla de datos para resumir estas dos tablas: categoría de trabajo y tabla de fechas.
Esto proporcionará la combinación del nivel financiero y la columna de fecha que existe dentro de la tabla de datos. Luego vamos a crear otra variable donde almacenaremos el valor de la fila de ingresos para la primera variable que hemos creado.
El nombre de esta variable será FinancialLevelAndDatesWithRevenue . El código de esta variable será sobre la variable anterior. Luego crearemos una columna virtual que será Ingresos para iniciar la transición de contexto. Entonces, para cada fila de esta variable, hemos asignado los ingresos.
Esta tabla contiene los ingresos, que también tienen cero. Necesitamos filtrar esas filas con cero. Para hacer esto, podemos crear otra variable y nombrarla como RemoveZeroes .
Usaremos la en la variable anterior, luego nos aseguraremos de que los ingresos no sean iguales a cero. Puede ser mayor que cero o menor que cero, pero no debe ser estrictamente igual a cero.
Y luego vamos a recuperar la fecha de la variable RemoveZeroes . Para hacer esto, podemos crear otra variable y nombrarla KeepOnlyDates .
Puedo usar la para deshacerme de las fechas duplicadas que devuelve la .
A continuación, vamos a identificar las tres fechas principales en orden descendente. Usaremos otra variable y la llamaremos Last3Dates , luego usaremos la .
Luego usaremos sobre las últimas tres fechas en la columna de fecha, luego usaremos un delimitador.
Arrastremos y sueltemos nuestra medida recién creada dentro de esa matriz. El resultado que obtenemos es 31/03/2021, 07/04/2021 y 02/04/2021. Esto significa que nuestra medida está funcionando.
Volvamos al editor y deshagámonos de la parte RETURN CONCATENATEX. Para recuperar esas últimas tres fechas, lo que podemos hacer es verificar qué filas de la variable RemoveZeroes son en realidad parte de esas últimas tres fechas.
Y para eso, crearemos otra variable DatesInLast3Dates y usaremos la función FILTER en RemoveZeroes . Esto devolverá una tabla que se compone de una categoría de trabajo y una fecha.
Resumiremos la columna de ingresos que hemos creado dentro de esa tabla. Devolvamos SUMX sobre DatesInLast3Dates, luego resumamos la columna de ingresos.
Con este cálculo, solo obtenemos un único valor para cada fila, porque hemos eliminado la categoría Trabajo del contexto del filtro.
Usaremos la variable que hemos creado al principio para verificar si cada fila de la variable DatesInLast3Dates está disponible en el contexto del filtro. Podemos escribir otra variable y nombrarla IsInFilterContext .
Esto filtrará las fechas en la variable DatesInLast3Dates . Luego devolveré SUMX sobre el contexto IsInFilter y resumiré la columna de ingresos.
Una vez que presionamos Enter , puede ver que obtenemos el mismo resultado que teníamos al principio.
Verificación del resultado del cálculo de LuckyTemplates del lenguaje DAX
Para verificar que realmente estamos obteniendo el resultado correcto, podemos crear una nueva tabla CALCULATE que nos ayudará a depurar, identificar y verificar que el código que hemos escrito hasta ahora realmente devuelve el resultado correcto.
Vamos a crear una copia del código que hemos escrito hasta ahora. Simplemente voy a copiar la parte que está resaltada a continuación, volveré a crear una nueva tabla y pegaré el código resaltado. No nos vamos a molestar en nombrar esta tabla porque no nos interesa.
Y simplemente podemos escribir RETURN DatesInLast3Dates . Si hago clic en Confirmar , obtenemos una tabla, pero sabemos que todavía no está devolviendo el resultado correcto porque necesitamos imitar el comportamiento de la segmentación.
Podemos envolver ese código dentro de una TABLA CALCULABLE y sangrar todo. En la última parte, voy a escribir que la fecha debe ser mayor o igual a 2021-03-15 y que el nombre del cliente debe ser igual a DHL Supply Chain .
La tabla que hemos creado dentro de esa medida está devolviendo virtualmente el resultado correcto. Podemos usar un CALCULATETABLE para verificar la tabla virtual que está creando dentro de su cálculo.
Otros cálculos de LuckyTemplates del lenguaje DAX
Ahora que sabemos que nuestro cálculo está funcionando y entendemos lo que realmente está sucediendo detrás de escena, podemos buscar otros métodos para calcular el mismo problema. En primer lugar, creemos un duplicado de la medida que ya hemos creado.
Versión 2
Esta vez, no vamos a depender de las funciones VALUES y FILTER, así que nos desharemos de ellas. Eliminaremos el resultado devuelto, así como la última variable que hemos creado dentro de CALCULATE. Luego, convertiremos CALCULATE en CALCULATETABLE.
Y en lugar de devolver un valor escalar, esta vez devolveremos DatesInLast3Dates . Esto devolverá la misma TABLA CALCULABLE que hicimos antes. Vamos a utilizar la función CALCULATE, y en el primer argumento, vamos a calcular la medida de ingresos e inyectar CALCULATETABLE como contexto de filtro.
Una vez que lo traigo a la matriz, puede ver que estamos devolviendo el mismo valor total general para cada celda.
Uso de la función MANTENER FILTROS
Por el momento, sabemos que el cálculo detrás de escena está funcionando correctamente, pero ¿cómo podemos estar seguros de que para cada celda, solo estamos informando el valor para ese nivel financiero?
Con la ayuda de CALCULATETABLE, hemos creado una tabla que contiene el nivel financiero, la columna de fecha y la columna de ingresos. Podemos usar la función de filtro clave para crear una intersección entre el contexto de filtro que existe fuera de CALCULATETABLE y el que está siendo creado por CALCULATETABLE.
Una vez que hacemos clic en Confirmar, podemos ver que estamos informando el valor correcto para cada celda y que tanto la versión 1 como la versión 2 están devolviendo el valor correcto.
Entonces, ¿cómo funciona esto? La tabla CALCULAR devolverá el nivel de Mantenimiento , luego Alquiler , Servicio Externo y Repuestos . La va a crear una intersección entre el mantenimiento y esa tabla.
Rental creará el contexto de filtro inicial, luego CALCULATETABLE devolverá todos los valores de la categoría de trabajo. Luego habrá una intersección entre Rental y la tabla devuelta por CALCULATETABLE. Solo devolveremos las tablas o las filas solo para esa parte de alquiler.
Y finalmente, cuando inyectamos RESUMEN en el contexto del filtro, la función CALCULAR calculará los ingresos solo para Alquiler. El mismo proceso ocurre para cada fila.
Versión 3
Veamos otra forma de realizar el mismo cálculo utilizando el lenguaje DAX LuckyTemplates. Vamos a crear una copia de la medida de la Versión 2 y crear otra medida. Vamos a nombrar esta versión 3.
La idea detrás de este cálculo es que, dado que estamos calculando los ingresos mediante la función CALCULATE, no necesitamos usar la parte ADDCOLUMNS porque estamos duplicando lo mismo dentro y fuera de CALCULATE. En su lugar, podemos simplemente escribir que el Ingreso no debe ser igual a 0.
Una vez que hago clic en Confirmar, debemos asegurarnos de que el código funciona, así que arrastremos la medida dentro de la matriz.
Puede ver que el código en realidad devuelve el mismo valor para cada celda.
Si trato de cambiar el contexto del filtro cambiando la fecha en la segmentación de fecha y seleccionando un par de valores del Nombre del cliente, puede ver que las tres medidas en realidad devuelven el mismo valor para cada fila.
Conclusión
En este tutorial, aprendimos a usar una lógica compleja de retroceder en el tiempo desde la fecha de finalización para identificar las tres fechas principales. Según esta técnica de LuckyTemplates del lenguaje DAX, pudimos calcular los ingresos y mostrar solo los valores que existen en el contexto del filtro. Eso es todo por ahora en este tutorial.
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