Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
Le mostraré cómo mantener actualizado su conjunto de datos de práctica cada vez que realice una actualización . Puede ver el video completo de este tutorial en la parte inferior de este blog.
Si realmente quieres mejorar tus habilidades con DAX, la forma es usarlo y ponerlo en práctica. Y para hacer eso, necesitaría un conjunto de datos de práctica que lo ayude a visualizar y trabajar en posibles escenarios de la vida real.
El problema con los conjuntos de datos de práctica es que los datos suelen ser estáticos . Para que practique de manera eficiente, debe dar la impresión de que los datos están en vivo.
Tabla de contenido
Configuración de una ruta de archivo para el conjunto de datos de práctica
Para mis datos de muestra, tengo un archivo de Excel que contiene datos de Ventas de 2014, 2015 y 2016.
Estos son los datos que necesito actualizar.
La ubicación del documento se puede encontrar aquí en mi barra de herramientas de acceso rápido.
Necesito eso para configurar un parámetro para la ruta de mi archivo. Así que voy a copiar la ubicación de ese documento.
Hay un punto de acceso a la barra de herramientas de acceso rápido en el lado derecho.
Una vez que presiono eso, obtengo esta pantalla.
Así que iré a Todos los comandos y luego elegiré Ubicación del documento . Agregue eso a la barra de herramientas de acceso rápido y presione OK.
Ahora, entraré en Power Query para crear el parámetro que contendrá la ruta de mi archivo. Este paso es importante porque permite restaurar todas las consultas dentro del modelo en caso de que otro usuario cambie la ubicación del archivo.
Así que voy a crear un nuevo parámetro .
Voy a llamar a eso FileLocation .
En tipo, voy a seleccionar Texto . Y para Valor actual , pegaré la ubicación del documento que copié anteriormente.
Voy a crear una nueva consulta.
Luego elegiré los datos de muestra que usaré como mi conjunto de datos de práctica.
Aparecerán varias tablas diferentes ya que tengo datos de Ventas de 2014, 2015 y 2016. Solo necesito elegir la primera, que es Sales_2014 .
Ahora que elegí los datos de Sales_2014, es hora de cambiar esa ubicación de archivo codificada en una ubicación de archivo dinámica .
Iré al Editor avanzado y seleccionaré todo lo relacionado con la ubicación del archivo .
Luego, lo cambiaré al parámetro FileLocation que creé anteriormente.
Luego presionaré Listo para bloquear esos cambios en la consulta Sales_2014.
Creación de la carpeta de preparación de datos
Mirando los Pasos aplicados para la consulta Sales_2014, haré clic en el paso Navegación . Esto me muestra que hace referencia al paso Fuente .
También hace referencia a Sales_2014 , que se muestra como una tabla . También muestra que está extrayendo datos de la columna Datos.
Ahora, déjame ver el siguiente paso de la Fuente .
El paso Fuente me muestra todo lo que reside en mi archivo de Excel . Si reviso esas coordenadas, veo Sales_2014 y, en Tipo, dice Tabla .
Cuando busco la columna de datos, muestra el objeto Tabla que se extrajo.
Así que puedo duplicar esta consulta para obtener los datos de 2015 . Para hacer eso, solo necesito hacer clic derecho en Sales_2014 y luego elegir Duplicar.
Luego, regresaré al paso de Navegación.
Cambiaré ese año de 2014 a 2015.
También cambiaré el nombre de eso aquí en Propiedades. Lo llamaré Ventas_2015.
Esta vez, duplicaré Sales_2015.
Luego regresaré al paso de Navegación y cambiaré el año a 2016.
Ahora tengo mis datos completos de Ventas. Pero estas consultas no deben cargarse en mi modelo . Solo necesito hacer clic derecho en cada uno de ellos y anular la selección Habilitar carga .
Ahora, seleccionaré todas las consultas y las colocaré en una sola carpeta para que todo esté más organizado.
Llamaré a esta carpeta Preparación de datos .
Obtener la compensación del día
Los datos de muestra aquí en Preparación de datos van a ser estáticos . Esto significa que la primera y la última fecha nunca cambiarán .
Así que entraré en Sales_2016 y ordenaré la columna Fecha de pedido en orden descendente para obtener la última fecha de este conjunto de datos .
La última fecha en este conjunto de datos es el 31 de diciembre de 2016 .
Ahora, voy a crear una nueva consulta.
Luego, verificaré cuál es el Desplazamiento de día desde la última fecha en el conjunto de datos hasta hoy. Esto significa que necesito saber qué es hoy. Para hacer eso, usaré la función DateTime.FixedLocalNow . Esto me dará la fecha y la hora de la máquina en la que estoy trabajando.
Pero realmente no necesito la porción de tiempo aquí. Solo necesito la parte de la fecha de este valor.
Entonces, voy a extraer la fecha usando Date.From .
Luego, de ese valor, voy a restar la última fecha en mi conjunto de datos . Dado que los datos son estáticos, puedo usar el valor de fecha intrínseco . Eso es #fecha y luego la referencia 31 de diciembre de 2016.
Ahora, necesito extraer el número de esta diferencia . Así que agregaré Number.From y lo cerraré con un paréntesis. Luego, presione enter.
Cambiaré el nombre de esto como DayOffset .
Configuración de intervalos de fechas dinámicos
También necesito rangos de fechas dinámicos para mi tabla de fechas. Comenzaré haciendo clic con el botón derecho en la carpeta Preparación de datos y creando una nueva Consulta en blanco.
Luego, trabajaré en la Fecha de inicio de mi tabla Fecha.
Siempre quiero el primer día del año como mi fecha de inicio. Así que pondré el signo igual y usaré la función Date.StartOfYear .
Como necesito darle un valor, lo compensaré usando Date.AddDays .
Luego usaré el valor de fecha intrínseco nuevamente y usaré la primera fecha en mi conjunto de datos , que es el 1 de junio de 2014.
También necesito la cantidad de días que calculé en mi DayOffset , así que voy a agregar eso.
Una vez que presiono enter, me da el 1 de enero de 2017 . Esta va a ser la primera fecha en mi tabla de fechas.
Cambiaré el nombre a fxStartDate .
Ahora, puedo configurar mi fecha de finalización. Voy a copiar esta sintaxis que usé en mi fecha de inicio.
Voy a crear una nueva consulta en blanco.
Luego cámbiele el nombre a fxEndDate .
Luego voy a pegar la sintaxis de mi Fecha de inicio .
En lugar de StartOfYear , cambiaré esto a EndOfYear.
También usaré la última fecha de mi conjunto de datos , que es el 31 de diciembre .
Cuando presiono enter, regresa el 31 de diciembre de 2020 .
Creación de una tabla de ventas única
Voy a combinar las 3 tablas en una sola tabla de Ventas . Para hacer eso, voy a crear una nueva consulta.
Llamaré a esto mi tabla de Ventas .
Luego combinaré Sales_2014, Sales_2015 y Sales_2016 en una sola tabla.
Sé que puedes hacerlo a través de la cinta, pero también hay una opción para hacerlo directamente en la barra de fórmulas. Elegiré esa segunda opción.
Comenzaré con Table.Combine .
Table.Combine requiere una lista de tablas . Así que agregaré un inicializador de lista , que son esos corchetes , luego nombraré las 3 consultas . Presiona enter después de eso.
Transformación de la columna de fecha de pedido
Ahora que tengo la mayoría de los elementos que necesito, voy a generar una parte clave de la sintaxis que usaré más adelante para completar mi conjunto de datos de práctica dinámica.
Comenzaré seleccionando dos columnas de números. Puedo usar el Índice de región de entrega y el Índice de descripción de producto . Por su parte, puede presionar Shift o Ctrl para seleccionar ambas columnas.
En la pestaña Transformar , seleccionaré Valor absoluto .
Si observo la barra de fórmulas, mostrará la función Table.TransformColumns . Esta es la clave de la solución final.
La función toma una lista de listas de transformación . Como puede ver, aquí hay 2 listas anidadas una dentro de la otra.
Hace referencia al nombre de la columna como texto. Es por eso que se hizo referencia al índice de la región de entrega aquí en el primer conjunto.
Luego agrega un paso de transformación .
Hace lo mismo en una lista separada para la columna Índice de descripción del producto .
Ahora, me dirigiré al Editor avanzado .
No quiero valores absolutos . Así que lo primero que voy a hacer es compensar mi fecha . Crearé una función llamada fxUpdateDate para hacer eso. Usará la fecha actual, que escribiré como cDate .
Luego, usaré la función Date.AddDays nuevamente, que también usa cDate . También usaré el DayOffset que creé anteriormente.
Todo lo que hace fxUpdateDate es tomar la fecha. Entonces, si paso eso a la función Table.TransformColumns , comenzará a verificar cada fecha registrada.
Entonces, si estoy trabajando en la primera fila aquí, por ejemplo, considerará el 1 de junio de 2014 como la fecha c.
Y cada vez que se llame a la función, agregará ese DayOffset que creé.
Ahora, el paso Table.Transform aparece en Calculated Absolute Value .
Voy a cambiarle el nombre primero y llamarlo UpdateOrderDate .
Este paso UpdateOrderDate involucra mi Table.TransformColumns que es igual a la Fuente.
La tabla inicial enumerada es el Índice de región de entrega . Pero no hay necesidad de transformar eso. Así que voy a cambiar esa primera columna a la que se hace referencia en la columna OrderDate .
También dice aquí que la transformación va a ser en valores absolutos.
Como no quiero eso, lo cambiaré a fxUpdateDate .
El tipo tampoco va a ser un valor absoluto, así que también necesito cambiar esta parte.
Voy a cambiar eso en una fecha .
Solo necesito una transformación, así que eliminaré la segunda lista junto con el paso de transformación que viene con ese conjunto...
…así que es solo una transformación para la columna OrderDate.
Debido a que cambié el nombre del paso a Valor absoluto calculado, también necesito cambiar eso en mi declaración.
Ahora también muestra UpdateOrderDate .
Entonces, la columna OrderDate ahora llamará a esta función para cada registro en Table.TransformColumns .
Mirando en la columna Fecha de pedido, puedo ver que esto se ha actualizado.
Y si ordeno eso en orden descendente, muestra el 7 de julio de 2020 como la fecha actual.
Así que voy a eliminar ese paso Ordenar porque realmente no lo necesito. Solo hice eso para verificar si la fecha actual también se había actualizado.
Aplicación de inteligencia de tiempo usando código M
Mi modelo tiene que ver con los datos de ventas . Como voy a hacer algo de inteligencia de tiempo, necesitaría una tabla de fechas .
Así que iré al . En M-code Showcase , voy al tema de la tabla de fecha extendida .
Desplácese hasta la parte superior de la página y copie el código completo .
Volviendo a mi modelo, crearé una nueva consulta en blanco y pegaré ese código M en . Presiona Listo.
Cambiaré el nombre de esa consulta a fxCalendar .
Para mis parámetros, usaré el 1 de enero para StartDate y el 31 de enero para EndDate . Luego presione Invocar.
Una vez que aparece la tabla, voy a cambiarle el nombre a Fechas .
Recuerde que ya creé las fechas de inicio y finalización mirando la primera fecha en el conjunto de datos de muestra y compensándola con mi DayOffset. Entonces fxStartDate aquí aparece como el 1 de enero de 2017 .
En cuanto a fxEndDate, devuelve el 31 de diciembre de 2020 .
Puedo volver a la tabla de Fechas y actualizar ese paso de Fuente allí también.
Enumera los parámetros en el orden en que fueron llamados. El primer parámetro debe mostrar la fecha de inicio .
Voy a cambiar eso a fxStartDate .
También voy a reemplazar el segundo parámetro.
Pondré el fxEndDate .
Una vez que presiono Enter, la transformación está completa. Ahora tengo un conjunto de datos de práctica completamente actualizado que siempre permanecerá actualizado.
Simplemente haré clic en Cerrar y aplicar para bloquear todos esos pasos.
Creación de una tabla de consulta de fecha dinámica en LuckyTemplates: un tutorial del editor de consultas
Configuración de una fecha de inicio y una fecha de finalización dinámicas para las tablas de fechas de Power Query
Uso de la función de compensación en tablas de fechas extendidas
Conclusión
Como mencioné anteriormente, tener su propio conjunto de datos de práctica dinámica definitivamente mejorará su juego cuando se trata de LuckyTemplates. Te permite practicar tus habilidades y conocimientos mientras finges que estás trabajando en un escenario de la vida real.
Si desea obtener más información sobre cómo hacer que sus fechas de inicio y finalización sean dinámicas, especialmente para un conjunto de datos de práctica que está utilizando, puede consultar el foro de LuckyTemplates. Hay muchas conversaciones allí sobre esto, así como sobre otros temas relevantes. Incluso puede encontrar otros enfoques que funcionen para usted.
Mis mejores deseos,
Toronjil
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