Casos de uso y modelo de datos con DAX
¿Cuándo utilizar DAX en Power BI?
Modelo de datos del proyecto de ventas de vehículos
¿Cómo afecta la dirección de filtro en Power BI?
Quiz: Casos de uso y modelo de datos con DAX
Creación de tablas y columnas con DAX
Columna calculada
Tablas calculadas
Quiz: Creación de tablas y columnas con DAX
Medidas
¿Cuándo crear una medida con DAX?
¿Cuáles son las principales funciones de agregación de DAX?
Manipulación de texto con DAX
Funciones lógicas y condicionales: IF, AND, OR
Funciones lógicas y condicionales anidadas: IF, SWITCH
Funciones lógicas y condicionales: HASONEVALUE
Funciones lógicas y condicionales: SELECTEDVALUE
Filtrado de datos con FILTER y SEARCH
Quiz: Medidas
CALCULATE
Uso de CALCULATE en Power BI
CALCULATE con ALL y ALLEXCEPT
Quiz: CALCULATE
Manejo de Iteradores y contextos
Iteradores X: cálculos por fila
Clasificación y ordenamiento de datos con RANKX y TOP
Evaluación de contextos con CALCULATE
Quiz: Manejo de Iteradores y contextos
Funciones de inteligencia de tiempo
Análisis de fechas y tiempo con DAX
Análisis de crecimiento acumulado en el tiempo con DAX
Quiz: Funciones de inteligencia de tiempo
Optimización de modelos y escritura de código DAX
Uso de variables para optimizar fórmulas en DAX
Mejorar legibilidad de código con DAX Formatter
Evaluación de modelo de datos con DAX Studio
Mantenimiento de modelos de datos con Tabular Editor
¿Cómo escribir código DAX con ChatGPT?
AI Visuals para interpretar el modelo de datos
Integración de medidas en reporte de Power BI
Reporte con medidas de seguimiento comercial en Power BI
Integración de visualizaciones de productos de mayor venta y ganancia
You don't have access to this class
Keep learning! Join and start boosting your career
Calculate is a Power BI feature that allows us to perform dynamic and complex calculations using context evaluation. Understanding its use is critical to solving business questions that require detailed analysis. How do we start? First, we generate a measure called 'Total Ripple Sale'. The basic formula would be:
Total Onda Sales = CALCULATE([Total Sales], Brand = "Onda").
This measure shows us the total sales of the Onda brand. By applying this to a table, we can see how the calculation behaves for different brand categories. What happens if we change the context with a table that includes varied brands? When using Calculate, the function iterates and generates table values adjusted to the context of each brand.
By advancing our understanding, we can develop measures that include multiple marks. For example, we create 'Total Toyota Wave Sales', which sums the sales of both brands:
Total Sales Wave Toyota = CALCULATE([Total Sales], IN(Brand, {"Toyota", "Wave"}))
This measure is taken to a table and filtered only by the embedded variables, showing that the Calculate function modifies contexts according to the logic applied.
Context evaluation becomes essential when dealing with complex business questions and scenarios. Suppose we want to identify salespeople whose sales exceed 30 million. We can create a measure as follows:
Sales Salesperson > 30 Million = CALCULATE([Total Sales], Salespersons, [Total Sales] > 30,000,000).
Then, by sorting the salesmen according to their sales, we discover that only a few exceed that figure. The utility of this measure is clear: with a single expression and its associated filters, we narrowed the data set to focus on our specific interest.
Calculate's knowledge and evaluation of contexts provides a remarkable competitive advantage. It becomes a powerful tool to handle various business demands by allowing us to generate sophisticated tables and accurate evaluations. By acquiring advanced DAX skills, such as iterators and rankings, we can address challenges that require narrowing information across specific calculation contexts.
In short, Power BI and Calculate skills, combined with context evaluation, enhance our ability to address business complexities with customized and accurate solutions. Go ahead, practice, challenge yourself to create innovative solutions and share your achievements with the community to continue learning and growing in the world of data analytics.
Contributions 49
Questions 3
De algo me sirvió el curso de fundamentos de base de datos.
Brands_Over_50M =
CALCULATE (
[Total de Ventas],
FILTER (
VALUES(dim_vehiculo[marca_vehiculo]),
CALCULATE (
[Total de Ventas],
ALL(dim_vehiculo),
dim_vehiculo[marca_vehiculo] = EARLIER(dim_vehiculo[marca_vehiculo])
) > 50000000
)
)
Mi solución:
Venta marca vehiculo mayor > 50000000 = CALCULATE([Total de ventas], FILTER(dim_vehiculo, sum(Fact_Ventas[Precio Venta sin IGV]) > 50000000))
Esta evaluacion de contextos va mas allá del uso de calculate, la idea es que tu puedas entender que filas, que datos son relevantes para tu caso, ademas, como una funcion puede relacionarse con los datos.
es una parte crucial en el analisis de los datos ya que te va a permitir responder preguntas claves de negocio.
Alguien me puede explicar la razón por la cual al usar la medida de Total de ventas en filter, no se obtiene el resultado si la suma de ventas sin IGV corresponde al Total de las ventas, es decir:
Total de ventas = sum(Fact_Ventas[Precio Venta sin IGV])
No se obtiene el resultado y manda error:
VentaMarca>50M = CALCULATE([Total de ventas],filter(dim_vehiculo,[Total de ventas])> 50000000)
Al sustituir la medida de Total de ventas por la suma de las ventas sin IGV se obtiene el resultado
VentaMarca>50M = CALCULATE([Total de ventas],filter(dim_vehiculo,sum(Fact_Ventas[Precio Venta sin IGV])> 50000000))
Creo que en el minuto 3:04 elige la marca-vehiculo pero de Marca Top por eso solo le aparecen dos resultados y uno de ellos es “Suzuki”. En el primer ejercicio elijió marca-vehiculo pero de la dim_vehiculo.
Encontre otra manera de hacerlo más rápido leyendo un poco de documentación. Aín así surge a raiz del otro post que realicé.
Venta Marca 50M MIX = IF( CALCULATE([Total de Ventas],
ALLEXCEPT(dim_vehiculo,dim_vehiculo[marca_vehiculo]))>50000000,
VALUE([Total de Ventas]))
La lógica es, si encuentras que al evaluar las ventas, hay marcas que sean mayores a los 50M, muéstrame el valor de dicha venta.
Aún así, sigo sin entender por qué
VentaMarca>50M =
CALCULATE([Total de Ventas],
FILTER(dim_vehiculo,[Total de Ventas]>50000000))
//Si es idéntico a:
VentaVendedor>30M =
CALCULATE([Total de Ventas],
FILTER(Dim_Vendedor,[Total de Ventas]>30000000))
No funciona. Dejo foto:
Bueno, después de muchos intentos y con el conocimiento brindado hasta el momento, creo que llegarás a lo siguiente:
Entonces para ello hacemos lo siguiente:
Creamos la medida:
Venta MARCA =
CALCULATE([Total de Ventas],
ALLEXCEPT(dim_vehiculo,dim_vehiculo[marca_vehiculo]))
Por qué? Porque queremos efectivamente mostrar las ventas en todas las marcas y si, el resultado es identico a poner solo las ventas totales, sin embargo, nuestro objetivo es crear una medida con ese filtro ya establecido.
Con la medida anterior, vamos a crear la medida >50M ahora sí.
VentaMARCA>50MM =
CALCULATE([Venta MARCA],
FILTER(dim_vehiculo,[Venta MARCA]>50000000))
Ahora colócalo en la tabla. Espero poder haberte ayudado.
Lo que sí, es que me vinieron más interrogantes. Sería bueno que el profesor responda y nos explique por qué no funciona lo siguiente:
VentaMarca>50M =
CALCULATE([Total de Ventas],
FILTER(dim_vehiculo,[Total de Ventas]>50000000))
//Si es idéntico a:
VentaVendedor>30M =
CALCULATE([Total de Ventas],
FILTER(Dim_Vendedor,[Total de Ventas]>30000000))
Colocaré imagen sobre como se comportan las medidas:
wow a mi algo que me funciono de pura chiripa fue:
MARCA MAS DE 50 MILLONES = CALCULATE([Total de ventas],FILTER(SELECTCOLUMNS(dim_vehiculo,"TOYOTA",dim_vehiculo[marca_vehiculo]),[Total de ventas] > 50000000))
https://www.youtube.com/watch?v=kYF-Fhv6LRk
No tiene desperdicio.
Want to see more contributions, questions and answers from the community?