Respuestas de foro creadas
-
Gracias!
HOla,
les copio mi resumen,.
Un saludo
Crear medidas de agregación única
Uso de SUM and IFUso de funciones estadísticas Básicas:
Average
Count
Max and Min
Es mejor trabajar con medida que con las columnas (seleccionando el tipo de medida que se necesita, i.e. Sum, Average, etc), ya que así se obtiene directamente la medida que se necesita.Identificar medidas implícitas y reemplazar por medidas explícitas
Ocultar las columnas que pueden dar lugar a confusión por parte del usuario y dejar las medidas calculadas.Reemplazar las columnas numéricas con medidas: iteradores X
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3567095/posts/11910394
Iteradores X: dan row context a las medidas para evitar usar columnas para hacer operaciones por columnas. Ejemplos: SUMX, AVERAGEX,
Por ejemplo, para SUM, se puede calcular la fila y luego sumarla (con SUM) o hacer todo de una vez con SUMXPara una función ejemplo SUMX(Tabla, Expresion), la expresión usada puede ser, por ejemplo una medida, o una columna, es decir:
SUMX(Tabla Ventas, Tabla Ventas[columna]) =SUMX(Tabla Ventas, Medida)
Los pasos para definir la función de este ejemplo serían:
Se define una tabla con los datos
Se ejecuta la expresión para cada fila de la tabla
Se suman (en el caso de la función SUMX) los resultados de las operaciones para cada fila de la tabla indicada. La operación que se realice depende de la función que se utilice, AVERAGEX, SUMX, MINX, MAX, COUNTX, etc.Ejemplo:
Si quiéramos calcular una medida con información contenida en distintas tablas se debe usar el RELATED. Ejemplo, si se quiere calcular el coste de venta de cada venta realizada, se debe hacer :
Costo de venta =SUMX(Sales, Sales[Quantity]*RELATED(Products[Unitary Cost])
Usar calculate para manipular filtros
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3567095/posts/11910392
Para calcular la venta total de todos los vendedores, sin filtros, se debe hacer:
Filtro ALL
Venta total =CALCULATE([Venta (Sum)], ALL(Seller[Seller Name])
Aquí hay que tener en cuenta que con ALL se quitan todos los filtros que hay en el reporte. Otra cuestión es que estamos usando Venta(Sum) que es una medida que suma todas las ventas. Lo correcto es usar medidas dentro de medidas, aunque se podría haber calculado a través de SUM(Sales[Ventas]) que es la suma de la columna que tiene todas la ventas.
Filtro ALLSELECTED
Si usáramos ALLSELECTED eliminaríamos solo los filtros de la visualización en donde insertemos la medida
Venta total =CALCULATE([Venta (Sum)], ALLSELECTED(Seller[Seller Name]), o podría haberse puesto:
Venta total = CALCULATE([Venta (Sum)], ALLSELECTED(Seller[Seller Name], Seller[Region]))
Capacitación express CALCULATE
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3567095/posts/11910396
Contexto de Evaluación:
Todas las operaciones de DAX son evaluadas en un contexto. Una misma operación de DAX puede tener resultados diferentes según el contexto en el que se evalúe:En un caso el contexto es el general y en el otro es el regional.
El contexto puede ser:
ROW CONTEXT: hace referencia a otros valores dentro de la misma fila
FILTER CONTEXT: hace referencia a los valores dentro en una misma columna o tabla:CALCULATE(): Qué hace CALCULATE()?
CALCULATE es la única función que puede modificar el FILTER CONTEXT.
Función: CALCULATE(<Expresión>, Filtro1, Filtro2, ...). En CALCULATE() primero se consideran los filtros y luego la expresión que se ejecuta después de los filtros para obtener el resultado.Ejemplo: SUM VS CALCULATE1()
Ejemplo 2: quitamos todos los filtros de año en CALCULATE2()
La función se traduce como una tabla donde se le han aplicado filtros para obtener el CALCULATE1
Funciones comunes con CALCULATE()
Algunas funciones que devuelven una tabla son:
FILTER(): Devuelve una tabla filtrada
ALL(): quita todos los FILTROS y devuelve una tabla
ALLSELECTED: Quita todos los filtros de una visualización y devuelve una tabla
ALLEXCEPT(): quita todos los filtros except los que se pongan en la función y devuelve una tabla
Funciones de TIME INTELLIGENCEFunciones TIME INTELLIGENCE con DAX
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3567095/posts/11921599
Cálculo de ventas totales:
Venta = SUM(Sales[Venta])Cálculo de ventas totales en el mismo período del año anterior:
Ventas mismo Mes año anterior = CALCULATE([Venta], SAMEPERIODLASTYEAR(Calendario[Fecha]))
Para calcular las ventas acumuladas:
Ventas acumuladas en el año = CALCULATE([Venta], DATESYTD(Calendario[Fecha]))
En una tabla quedaría así:Capacitación express en TIME INTELLIGENCE
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3567095/posts/11921597
Cuándo se utilizan?
Se utilizan por ejemplo para
a. Comparar venta con periodos previous
b. Obtener acumulados mensuales, trimestrales, anuales de ventas
c. Obtener el promedio de ventas de los últimos 30 días-
No se debe confundir con las funciones de FECHA Y HORARequisitosLa columna fechas debe tener todas las fechas del rango de fechas considerado
La fecha debe estar marcada del tipo FECHA o FECHA/HORA
PARA CUMPLIR SIEMPRE ESTOS REQUISITOS SE USA LA TABLA CALENDARIOPasos requeridos por estas funciones
a- Detecta el contexto de filtro actual para determinar el periodo de fechas en el contexto
b- Elimina el contexto del filtro de la columna de fechas para tener todas las fechas disponibles
c- Se desplaza en el tiempo para encontrar en nuevo periodo (especificado en la función)
d- Aplica el filtro para obtener el periodo deseado
Grupos de funciones
Que devuelven una fecha específica
FIRSTDATE()
STARTOFMONTH()
ENDOFMONTH()
STARTOFQUARTER()
ENDOFQUARTER()
Que devuelven una tabla con fechas (MÁS USADAS)
DATEADD()
DATESMTD()
DATESQTD()
DATESYTD()
DATESINPERIOD()
Que evalúan una expresión:
TOTALMTD()
TOTALYTD()
OPENINGBALANCEMONTH()
CLOSINGBALANCEQUARTER()
Ojo, Cuidado con el grupo que devuelve una tabla y el que evalúa una expresiónCombinando TIME INTELLIGENCE con CALCULATE()
Patrones comunes con CALCULATE()
Crear semi-additive measures
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3567095/posts/11910391
Semi-additive measures son medidas que no pueden ser agregadas a través de todas las dimensiones FECHA/FECHA/HORA
Por ejemplo, para el inventario de cada día y el inventario al final de mes no se puede hacer una suma del inventario de todos los días del mes, por tanto se utiliza una función semiaditiva como sigue:Inventario para cada día podría calcularse como : Inventario Total = SUM(Inventario[Inventario])
Sin embargo, el inventario del mes se debe corresponder con el inventario del último día del mes:
Inventario mensual =
CALCULATE([Inventario Total], LASTDATE(Calendario[Fecha]))
Si nos diera a en blanco el último día del mes (en caso de que la empresa no trabaje, por ejemplo), deberíamos cambiar la medida a la siguiente
expresión, la cuál sería válida para mes, quarter y año
Inventario mensual =
CALCULATE([Inventario Total], LASTNONBLANK(Calendario[Fecha], [Inventario Total])Hola,
este es mi resumen de lo aprendido. Muy interesante y útil todo.-Aplicar "cross-filter directions" y "security filtering":
Cross filter "Single": Si dos tablas, una de Dim y una Fact, están relacionadas con un cross filter "single", los filtros de la tabla Dim se propagan a la tabla Facts pero no a la inversa, por la relación cross filter. Se podría configurar la relación como "Both", pero puede darnos problemas no esperados o no intuitivos.
Cross-filter "Both": propaga la info en ambos sentidos. Si usamos una tabla Dim con una Fact, la info de la Fact, también se propaga a la de Dim. Patrón de los números que se repiten. RLS: propagación del RLS activando la casilla "Apply security filter in both directions".-Crear tablas calculadas:
Tablas calculadas con DAX: OJO QUE NO PUEDEN VERSE EN POWER QUERY
New Table (Menú Home, Table Tools): se combinan dos tablas de la siguiente forma:
- SUMMARIZECOLUMN, por ejemplo:
Combinacion Seller-products =
SUMMARIZECOLUMNS(Seller[Seller ID],
Products[ProductID],
"Cantidad Vendida",
SUM(Sales[Quantity])
CALENDARAUTO()
Se puede crear una tabla Calendario también de esta manera:
Calendario 2 =
ADDCOLUMNS(
CALENDARAUTO(),
"Year", YEAR([Date]),
"Month", MONTH([Date])
)- Create hierarchies:
Jerarquías organizacional, de productos, de fechas, etc.
Las jerarquías de fechas se detectan automáticamente cuando se tiene las siguientes opciones activadas: Se recomienda desactivarlas.
Crear jerarquías:
Se recomienda crear jerarquías en casos necesarios, por ejemplo Country, City, para evitar errores en las visualizaciones. Si no están creadas, se deben asignar manualmente.
Crear jerarquías: Se selecciona un campo y con el botón derecho del ratón se "Crea una jerarquía" y luego se arrastran otros campos hacia allí.
No se pueden crear jerarquías con cantidades, ni con columnas de diferentes tablas.- Crear columnas calculadas:
Crear columnas:Desde columnas agregadas: no es una Buena práctica
Row context:. PBI detecta automaticamente que los datos están en fila y efectua las operaciones necesarias.
Medidas Daxs: NO AGREGAR COLUMNAS, SINO CALCULAR MEDIDAS es una BUENA PRACTICA- Implementar el Row Level Security (RLS)
A través del RLS se puede restringir el acceso a los datos a determinados usuarios, para que, por ejemplo, solo puedan ver los datos de su region, o que cumplen con una regla de Seguridad específica. Para eso, se debe activar la funcionalidad en la relación entre tablas que contienen el filtro y que permite discriminar la infomación que llega a cada usuario. Esto último no lo tengo 100% claro, lo deduzco del Quiz final.
El RLS permite manejar un único reporte al cuál, diferentes usuarios pueden acceder para visualizar únicamente SU información. De lo contrario, habría que crear un reporte para cada usuario.
Asignar ROLES EN PBI: Ir a Modelling--Manage Security Roles - Crear roles con los filtros adecuados
Publicar en PBI Service y desde allí en reporte se pueden realizar las asignaciones:
- Compartir reporte (en la parte reporte) con cada persona, escribiendo el correo
- Datos: en seguridad asignar las personas necesarias al perfil según nuestro interés.
Asignación de roles dinámicamente:
-Agregar una columna con el correo electrónico del responsable de cada área, por ejemplo, Encargado: [email protected], si es España, o Ruben@ si es otro.
-Luego, se crea el rol genérico llamado USUARIO, con el siguiente filtro de la tabla SELLER: [Encargado] == USERPRINCIPALNAME()
-Se publica nuevamente el reporte
-Desde el modelo de datos(tres puntos), dentro de la parte llamada "Seguridad", se asignan todos los usuarios por sus correos electrónicos y cada uno tendrá acceso a los datos establecidos en la columna Encargado de la tabla Región- Configurar la funcionalidad Q&A
Esta opción muestra una visualización como respuesta a una pregunta realizada en PBI. Cómo configurarla?
Agregar la visualización nativa de PBI llamada Q&A
Doble click en la pestaña de visualizaciones
Pestaña de Modelling: clickear Q&A setup, allí se puede:
Establecer los sinónimos
Ver eventuales preguntas de los usuarios hechas en el PBi si está publicado en PBI serviceHola!
Este es el resumen de lo aprendido en la sección!
Un saludo!Definir tablas
Definir tablas: una tabla es distinta a una query. La table almacena datos, la query es el Código que permite obtener una table
Ocultar tablas y columnas no necesarias, para evitar que el usuario vea información que no le resulta relevante
Configuración de Propiedades de las tablas y medidas: vista desde el modelo de datos.Sinónimos, descripción y nombres.
Row label: es para indicar cuál es el identificador de la table, es útil para las tablas que tienen ID único.
Advanced: import, Direct Query, dual.
Hide/Unhide
Configuración de Propiedades de columnas:Folder: si se quiere agrupar las columnas en un folder
Hide/Unhide
Type format
Sort column by : se puede ordenar una columna en función de otra (i.e.cronológico)
Data Category: permite indicar si una columna contiene datos de una categoría, por ejemplo, country/region
Summarized by: cómo se muestra columna, sum, etc
Quick Measures
Running total: permite obtener el acumulado de las ventas para una fecha determinada. Se puede modificar luego
Crear nuevas medidas con buenas prácticas según PBI
Cambiar la medida de sitio desde la medidaFlatten-out a parent-chield hierarchy (ver tema parent-child hierarchy)- Aplanado
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3482750/posts/11626454Creamos la columna con todas las jerarquías
Ruta Jerarquia = PATH(Jerarquia[Entidad], Jerarquia[EntidadPadre])
Agregamos columnas con cada nivel de jerarquía
Nivel 1 = PATHITEM(Jerarquia[Ruta Jerarquia],1)
Nivel 2 = PATHITEM(Jerarquia[Ruta Jerarquia],2)
....Performance requirement https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3482750/posts/11626451
Esquema de estrella: https://learn.microsoft.com/en-us/power-bi/guidance/star-schema
Fact tables: table de transacciones. Información transaccional.
Dim table: características que describen lo que está registrándose en la Fact. Descripciones, ID únicos. Información descriptiva
Esquema de estrella debe estar ordenado: arriba las dimensiones y abajo las Facts
No es recommendable el esquema copo de nieve en PBI. Hay que crear una table de dimension con toda la información, por ejemplo, Producto, categoría de producto, subcategoría de producto todo en una tabla.
Puede haber más de una tabla de hechos. Esquema de estrella con multiples tablas de hechos.Crear Common date table:
https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-date-tables
Crear tabla calendario: las fechas no se debe repetir y debe tener todas las fechas en un rango establecido.
Si no existe la tabla calendario, desde POwer Query, Ir a "Nwe Source", luego a "Blank Query" y luego poner = List.Dates
aquí se agrega una lista y luego en add column seleccionamos la columna y vamos añadiendo cada columna de la tabla calendario.
Asegurarse de que la primera columna con las fechas, debe ser de tipo fecha
Marcar como tabla calendario del Modelo: Seleccionar la tabla y "Mark as Date Table". Desde visualizaciónDefinir la cardinalidad de una relación y la dirección del filtro cruzado
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3482750/posts/11626452Cross filter direction: puede ser single: Que la dirección va en un solo sentido,o both, que la dirección va en ambos sentidos.
Mucho Cuidado: LAS RELACIONES BIEN CREADAS SON LA BASE DEL BUEN DESARROLLO DE POWERBI. En Manage Relations se pueden ver/crear/borrar relaciones y cambiar cualquier característica que necesitemos. Hay una opción que es "autodetect" pero se debe tener mucho cuidado con su uso, ya que puede ser problemático si las relaciones se detectan de una manera errónea.
Role play dimensions
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3482750/posts/11626455
No puede haber más de una relación activa entre dos tablas. Para poder usar una relación diferente a la activa con la tabla calendario hay 2 opciones
Crear medidas con una relación específica diferente a la activa
Se puede usar una nueva medida que haga referencia a una relación inactiva a través de USERELATIONSHIP() , de la siguiente forma:En este caso se calculan las ventas por fecha de envío, en lugar de por fecha de venta que es la relación activa.
Crear una nueva tabla calendario con la nueva relación
Esta opción nos permitirá, no sólo calcular medidas con esa relación, sino incluir fechas y visualizaciones que hagan referencia a la relación. La creación de una nueva tabla se hace a partir de la tabla anterior, copiando exactamente la tabla calendario existente de la sgte forma:
Nombre nueva tabla= Nombre Antigua tabla (en New Table). L
uego establecemos la relación entre tablas. Con esta nueva tabla luego podemos crear las medidas según la necesidad, usando el filtro de fecha que nos interese y creando las medidas con la fecha de la tabla que queramos. Una buena práctica es cambiar el nombre de las fechas en la nueva tabla para evitar confusiones a la hora de crear medidas y visualizaciones.Resolver las many-to-many relationships
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3482750/posts/11626448Relación uno a uno: si no se repite el ID en ninguna de las dos tablas. En este caso se podrían unir las tablas con un merge para que sea más eficiente el modelo.
Relación uno a varios/Varios a uno: en una tabla el ID no se repite, pero en la otra así. Esta situación se da cuando conectamos una tabla dimensión con una Fact table.
Relación varios a varios: cuidado con la consistencia de los datos en esta situación. Una solución es crear una tabla adicional que contenga información única de alguna de estas tablas para luego relacionarlo con la otra.Definir el nivel apropiado para la granularidad de datos:
https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3482750/posts/11626446Hola!
comparto mis puntos claves de esta sección, basado en los aspectos que fueron relevantes para mi.Gracias
Detección de errores: No borrarlos, analizarlos. Recomendación: keep Error para analizarlos. Luego clikear en el error y observar de dónde vienen.
Nulos: Fill down, puede usarse en casos de que hay valores nulos, pero debería repetirse el que está arriba. Se pueden remover o reemplazar.
Values replacement: reemplazar valores por otros. Cuidado cuando se reemplaza texto que no se esté reemplazando parte del texto de otra celda que no queramos reemplazar. En números no es lo mismo, si reemplazo el 1 y una celda tiene el 165, ese 1 no será reemplazado en ningún caso que la coincidencia no sea total, es decir, que tengamos "1". Cuidado con la cantidad de reemplazos que agrega pasos en la consulta y hace más pesado el fichero y se tardará mucho más en cargar el PBI.
Tratamiento de errores: reemplazar, modificar o corregir: Cuidado con eliminar las filas con error. Preferentemente identificar y corregir el error. Mejor si se corrige en el origen, si fuera el caso, para evitar pasos innecesarios
Advanced Editor: incluir/modificar pasos. Ver funciones dentro. Cuidado con la coma al final de cada paso (salvo en el último) y luego del in debe ir uno de los pasos que hay en let. Cada paso debe indicarse con #' salvo que contenga palabras sin espacios.
Combinar consultas y anexarlas: se hacen con el Append o Merge.
Key column para combinar consultas: se puede crear esta columna con los valores de varias columnas o bien al realizar el merge se seleccionan las columnas que generan la clave única en cada table.
Pasos en advanced Editor: cada paso incrementa el tiempo de carga. Se deben minimizar los pasos y transformaciones.
Tipos de datos al combinar: cuando se combinan dos tablas, el tipo de dato de la columna utilizada para combinar debe ser el mismo en ambas tablas.Muchas gracias!
Muchas gracias Graciela!
Hola,
he aprendido lo siguiente:Selección entre Import, Direct Query o Dual: Excel sólo admite Import. Direct Query se puede usar con bbdd, muestras que Import con cualquier fuente de datos. Se usa Direct Query cuando las bbdd son muy grandes o se necesita información en tiempo real.
Query folding: Plegado de consultas. Realizar menor número de paso y los pasos que no admiten el plegado de consultas, dejarlos para el final. El plegado de consultas permite que las transformaciones se hagan en el servidor.
Parámetros: También en el tema de "Usar parámetros" vimos que los parámetros podíamos utilizarlos para darle más control a nuestros usuarios qué datos íbamos a mostrarles. Se puede hacer templates para que el usuario reciba el PBI y pueda seleccionar un rango de fechas según el parámetro establecido.
Use or create PBIDs file: se usa en Data Sources para exportar esa fuente de datos y que los usuarios puedan conectarse al servidor y las tablas sin necesidad de tener credenciales. Pueden entrar, seleccionar las tablas que les interesa, y trabajar haciendo visualizaciones con ellas
Query type/Conectores: es la forma en que un se conecta para cargar los datos en PBI. Existen muchas fuentes, las más usadas son SQL o AzureSQL y Excel. Otras más generales son: ODBC o Ole db. Hay una que se llama Folder para cargar varios ficheros a la vez.
Un saludo!
Hola!
He aprendido lo siguiente:
Identificar anomalías: estas pueden deberse a mala recopilación o puede ser un fenómeno real. En ambos casos hay que explorar más, para corregirlo o para averiguar la razón. Ayudas: diagramas, tablas para visualizar los outliers
Data Structures: Tener cuidado del tipo de datos que se asigna a cada columna y que coincida entre las distintas tablas para que las relaciones no se vean afectadas. Columnas que tienen registros tipo "Tabla" o Value" que conecta con una tabla que se puede expandir o un valor que se puede ver.
Propiedades de las columnas :Evaluar los datos. Cuando mayor cantidad de valores únicos haya, mayor será el peso del archivo, debido al método de compresión que tiene PBI. Hay métodos para hacer que un archivo de PBI no pese tanto.Las vistas de column profile, distribution and quality son muy útiles para identificar outliers, NAN o algún otro patrón sin necesidad de hacer visualizaciones.
Gracias!Buenos días,
Estoy usando la cuenta que se provee en el curso. He probado tanto con la de Ana como con la de Rubén.
En el curso aparece esto
y lo que yo veo (con la cuenta de Rubén, como puedes ver) es esto:
Sólo puedo crear una solución, que no tiene las mismas características que el entorno:
Muchas gracias,
Andrea