Respuestas de foro creadas
-
Mis Outliers los verifico con sentencias SQL pero me parecio excelente como los indetificamos desde Power BI con la visualización de Scatter Chart.
Lo que aprendí es sobre donde debo cambiar (Column profling based on entire data set) para tener todos los datos en Power Query. Claro es importante saber el tamaño de los registros que existe en la tabla.
Saludos,
SantiagoBuenas noches estimad@s compañeros,
¿Qué aprendiste en la sección “Create measures by using DAX”?
- La importancia de ocultar una columna que tiene valores para que el usuario / cliente final, utilice SOLO las medidas por la persona que desarrollo el dashboard.
- El uso de ALLSELECTED() que se puede incluir varias columnas.
- Pero lo que me pareció super interesante fue el uso de la función LASTNOBLACK() para obtener el valor del último día del mes que se registro un inventario.
¿Cómo te servirá esto que aprendiste en tus desarrollos de Power BI?
Conocer el poder que tiene CALCULATE () es asombroso una función que nos ayudará siempre en cualquier proyecto que hagamos. Hay que saberla estudiar muy bien.
¿Cómo te servirá esto que aprendiste al presentar el examen de certificación?
Vimos muchas funciones útiles que seguro serán temas de preguntas en el examen, estamos aprendiendo en un contexto muy práctico y eso es bueno.Saludos,
Santiagotexto en negritatexto en negritaHola Cómo están ? espero que bien lo aprendí en la sección de “Clean, Transform, and Load the data” fue lo siguiente:
- La importancia de saber crear “Keys” adecuados para los “joins” a veces nos descreocupamos de esto cuando trabajamos con base de datos por que desde alli ya viene nuestras primary key, pero debemos estar preparados para todo tipo de fuente de datos.
- Si queremos utlizar Append Queries debe coincidir el nombre de las columnas de las 2 o mas tablas.
- Lo importante de optimizar los pasos (Applied Steps) en Power Query. Entre más pasos tenga el Power Query la carga se demora más.
Saludos,
SantiagoHola Tamara, espero que te encuentres bien, te sugiero que tal vez obtengas los datos así:
- Obtener datos desde la web, copias el link y luego ya en la pantalla donde se escoge las tablas vas a tener un botón que dice: Add Table Using Examples.
(Si tal vez no encuentras los datos que necesitas en la tablas que Power BI lo interpreta puedes ir a la opción de Add Table Using Example)
Luego en cada columna escoges los campos que necesites, yo escogí como modo de ejemplo F. Estimación y la Estimación (Fondo A). Escribes los dos o tres datos y Power BI lo interpreta (para las dos columnas haces lo mismo)
Luego vas a ver que tienes una custom table.
Espero que sea lo que estabas buscando.
Cualquier novedad no dudes en escribirnos.
Saludos,
SantiagoTam Tranquila yo creo que lo entendí mal. Estoy entendiendo y quieres que Power BI se comporte cómo una base de datos para almacenar los datos cada día verdad ?
No se si me equivoco pero en general Power BI no se comporta como un gestor de base de datos, pero seguro habrá como realizarlo ya voy a buscar en Internet un poco de material.Saludos,
SantiagoHola Tamara, encontré una manera que se podría almacenar los datos en Power BI pero requiere de realizar ciertos pasos, que te podrían tomar más o menos un minuto cada día de tu parte para el almacenamiento.
Lo que se puede hacer en desde Power Query con un poco de programación en Lenguaje M.
Antes de los pasos que te voy a detallar debes duplicar (clic derecho y duplicar) a tu DataSet y le podrías renombrar “Historico”
Ya con esto, esto son los pasos a seguir:
Día 1. (donde se encuentra los datos en mi caso lo tengo en excel)
Power Query: Tabla DataSet
Pasos:
- A tu DataSet lo copiamos (como esta en las imagenes)
- Clic en Enter Data
2.1 Control + V
2.2 Clic en botón OK, y vamos a ver que se nos creo una tabla.
2.3 Clic en: Advanced Editor
2.4 Copiar el Código (tu código que te saldrá a ti, yo voy a dejar como me salio a mi)
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUNzTQNzIwMlDSUTLQMVSK1YEIGiIEjSGCRiiCpkqxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Fecha = _t, Valor = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Fecha", type date}, {"Valor", type number}}) in #"Changed Type"
2.5 Clic en la Tabla: Historico y vamos al Editor Avanzado y copiamos el código
2.6 Eliminar la tabla creada (Table)
- En esta parte debemos modificar el código M de nuestra tabla: DataSet ( igual en Editor Avanzado)
let Source = Excel.Workbook(File.Contents("C:\Users\Laura Cordova\Desktop\Alcenamiento.xlsx"), null, true), Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data], #"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Fecha", type date}, {"Valor", Int64.Type}}), NewData = Table.TransformColumnTypes(#"Promoted Headers",{{"Fecha", type date},{"Valor", Int64.Type }}), TablaUnion = Table.NestedJoin(Historico,{"Fecha"},NewData,{"Fecha"},"NewColumn",JoinKind.RightAnti), Combined = if Table.IsEmpty(TablaUnion) then Historico else Table.Combine({Historico, TablaUnion[NewColumn]{0}}), #"Changed Type1" = Table.TransformColumnTypes(Combined,{{"Valor", type number}}) in #"Changed Type1"
Esto es lo que deberías hacer la primera vez.
Día 2.
Click en
y vas a ver en la tabla de DataSet tienes la unión de la tabla Historico con los nuevos datos en la tabla DataSet
Y aquí solo debemos hacer los siguientes pasos:
- Copiar la tabla completa
- Click en Especificar datos y Control + V
- Luego click en Editor Avanzado y copiar código
- Pegar código en el Editor Avanzado de la tabla Hitorico
- Eliminar table.
Espero que te ayude, esto te puede ayudar en el caso que si o si quisieras tener a Power BI como un medio para almacenar datos.
Saludos,
SantiagoBuenas tardes estimados compañer@s,
Lo aprendido fue:
¿Qué aprendiste en la sección “Optimize model performance”?
- La importancia de importar las columnas que son necesarias.
- No duplicar columnas, es decir solo tener una columna en una tabla y que no se repita en otra.
- Siempre realizar un test del desempeño de nuestras visualizaciones antes de utilice el usuario final.
- Trabajar con “aggregations” nos puede ayudar mucho a optimizar el tiempo de respuesta de la carga de una visualización.
¿Cómo te servirá esto que aprendiste en tus desarrollos de Power BI?
- A enfocarme en el desempeño de mi archivo (entregable) antes de presentarlo al usuario final.
Saludos,
SantiagoHola Kevin, cómo éstas ?
Me parece bien la lógica que estas haciendo, justo con eso hice un caso hipotético que lo muestro a continuación:
Cree una tabla en excel y la conecte a Power BI y esta así:
con tu lógica le doy un numero a cada uno y creo una medida tipo columna:
Estado Numero = SWITCH(Table1[Estado],"Completado",1,"En Proceso",2,"Atrasado",3)
Ahora creo una medida:
Max Estado = SWITCH(MAXA(Table1[Estado Numero]),1,"Completado",2,"En proceso",3,"Atrasado")
Qué hace esta medida ?
MAXA()
te ayuda a dar el valor mayor de la columna y con Switch solo volvemos a darle sentido a los números con su correcto significado.y así podemos clasificar al estado del pedido.
Otra solución puede ser con esta medida en una nueva tabla:
Max Por Pedido = SUMMARIZE( Table1,Table1[Pedido], "Max Pedido", MAX(Table1[Estado Numero]))
La función SUMMARIZE me suele ayudar mucho cuando tengo que agrupar, en este caso se agrupo por pedido y obtiene el máximo por cada pedido.
Espero que sea útil
Saludos,
SantiagoMe alegro mucho Kevin, estamos para ayudarnos entre tod@s.
Muchas gracias Raúl por tu aporte muy útil.
Saludos,
SantiagoHola Minerva cómo éstas ?
estoy utilizando la base de datos que tenemos en el curso.
Tengo una consulta en el punto 1:
Cuando un cliente compra un producto, se genera una factura y en ciertos casos compra más de un producto. Ejemplo: yo voy a hacer una compra pero no necesariamente compro un solo producto, mi primera compra podría ser de mas de un producto. Tu necesitas del cliente nuevo que compro por primera vez (1 o mas productos) es decir su primera factura ?Con el punto 2:
Te sugiero que encuentres la última fecha que X cliente realizó la compra:
Fecha ultima Compra = LASTDATE(Sales[SaleDate])
Luego puedes obtener una medida con la diferencia los días desde la ultima compra hasta el día de hoy o también hasta la ultima fecha que ha facturado dicha empresa.
opcion 1: Measure 2 = DATEDIFF([Fecha ultima Compra],TODAY(),DAY)
opcion 2: fecha ultima factura empresa = MAXX(ALL(Sales),Sales[SaleDate])
Measure 2 = DATEDIFF([Fecha ultima Compra],[fecha ultima factura empresa],DAY)Con esa diferencia vas a tener los días, y con un if x>90 podrás saber cual de tus clientes ha comprado o no en el rango que tu escojas.
En el punto 3 es un producto en especifico ? por que un cliente sin comprar en 90 días y un cliente sin comprar un producto B por 90 días ? lo veo parecido tal vez me estoy confundiendo con el punto 3.
Saludos,
SantiagoTe dejo una imagen para te ayude:
en este caso con la medida de:
Dias Transcurrido desde última compra = DATEDIFF([Fecha ultima Compra],TODAY(),DAY)
Ejemplo: Cliente: 2g Herramientas ha pasado 270 días que no ha comprado nada desde su última compra, claro la diferencia es desde su última compra hasta hoy. En tu caso vas a tener datos más actualizado.
Saludos,
SantiagoMe alegro mucho Minerva entonces esto te puede ayudar con el Punto Uno:
Creo una tabla donde Contiene: Cliente, Fecha de Primera Compra, la primera factura que fue comprada.
Tabla Primera Factura Cliente = SUMMARIZE( Sales, Customers[CustomerName], "Fecha Primera Compra", FIRSTNONBLANK('Calendar'[Date],[M_Ventas]), "Invoice" , MAXX( TOPN(1, SUMMARIZE(Sales,'Calendar'[Date],Sales[Invoice]), CALCULATE(MIN('Calendar'[Date])),ASC),Sales[Invoice]) )
Con esta tabla hago un join a la tabla Sales (campo de join es Invoice) desde el Modelo de Datos:
Esto lo hago para saber que productos fueron comprados con esa factura.
Ejemplo:
Muchas gracias Minerva que tenga un buen inicio de semana tu también.
Saludos,
SantiagoBuen día para tod@s,
¿Qué aprendiste en la sección “Design a Data Model”?
- Buenas prácticas: Ocultar columnas que no se va a utilizar. Organizar mi modelo en la parte de arriba las tablas de dimensiones y en la parte de abajo la(s) tabla de hechos.
- Las diferentes jeraquias que puede existir en una tabla y cómo dar solución con las funciones de DAX: PATH (Entidad, Entidad Padre).
- La importaciones que tiene la creación de una tabla calendario para el análisis de nuestros datos.
- La importancia de “role plating dimensions” para dar solución a la relación entre tablas que ya tienen una relación.
- La solución para resolver “Many-to-Many relationships” que se puede crear un tabla con valores unicos y luego crear una relación para cada tabla respetando la cardinalidad de uno a muchos.
¿Cómo te servirá esto que aprendiste en tus desarrollos de Power BI?
Uno de los puntos que quiero recalcar es el tema del modelo de estrella, en ciertas ocasiones si me ha tocado trabajar con el modelo copo de nieve ya que las tablas en la base de datos tiene un relación así pero no se me paso por la cabeza tener una única tabla producto haciendo un “Merge Query” entre estas tabla de dimensiones (Subcategoría y Categoría). Seguro para nuestros proyectos lo utilizaré.
Cómo te servirá esto que aprendiste al presentar el examen de certificación?
La verdad me ayuda mucho a reconocer la terminología y aprender como se llama cada uno de los puntos que se ve en el curso y que seguro existirá preguntas con estos términos en el examen. También en el enfoque que Diego nos esta guiando para tener diferentes caminos a la hora de analizar y contestar cada escenario.Saludos,
SantiagoBuenos días con Tod@s,
¿Qué aprendiste en la sección “Develop a Data Model”?
- De acuerdo la dirección que se tiene en el modelo de datos entre las tablas se puede propagar un filtro.
- En la función SUMMARIZECOLUMNS(); no se puede especificar una columna más de una vez.
- La adaptación de ADDCOLUMMNS (CaledarAuto(),“Año”,Year(Date)) para crear una tabla calendario desde DAX.
- Solo hay cómo hacer jerarquías con columnas de la misma tabla. Con medidas no hay como hacer jerarquías.
Tener varias opciones de crear sinónimos para que cliente puede interactuar con palabras que son familiares para el/ella en Q&A.
- El potencias que se tiene con RLS, para restrigir el acceso a datos a determinados usuarios, y no solo en visualizaciones sino al conjunto de datos. Se puede crear que cada área de negocio tenga su propia data.
- Super útil la lógica de crear una columna de medida para asignar un Encargado (usuario) a la tabla Seller.
¿Cómo te servirá esto que aprendiste en tus desarrollos de Power BI?
- La verdad ayudará mucho sobretodo con RLS para compartir o tener un dataset con acceso para cada área de negocio puedo ver lo que necesite.
- Tener preguntas sugeridas para una mejor interacción del usuario final.
¿Cómo te servirá esto que aprendiste al presentar el examen de certificación?
Creo que todo lo que se esta viendo en el curso es muy importante para el examen.
Saludos,
Santiago