Foro Empleos Academia Blog
Recursos
  • Ejemplos de dashboards
  • DatData Games
  • Alumnos destacados
  • Torneos pasados
Search Icon Iniciar sesión Inscribirme
Back arrow

Promedio mensual

Avatar por defecto

Octavio S.

Estudiante

•

hace 1 día

Buenas tardes,

En mi modelo tengo una tabla con datos de traslados con fecha de movimiento, tambien tiene una columna con la cantidad de transportes utilizados para cada traslado. Esta tabla la tengo relacionada con una tabla calendario.

Quiero crear una medida que calcule de forma fija el promedio mensual de viajes, es decir, debería hacer el total de viajes dividido el total de meses con viajes.

Tengo creada la siguiente medida:

Viajes Promedio Mensual = 
VAR _TotalViajes = [Viajes]
VAR _CantidadMesesConDatos = DISTINCTCOUNT ( 'd_Calendario'[Año#Mes] )
VAR _PromedioMensual =
    DIVIDE ( _TotalViajes, _CantidadMesesConDatos, 0 )
RETURN
    ROUND ( _PromedioMensual, 0 )

Pero cuando quiero meterla en una tabla que cada fila muestra el mes, aplica el contexto de filtro y no funciona, quiero que el valor promedio quede fijo para poder armar otra medida que sea la variacion de los viajes del mes respecto al promedio mensual.

DAX

0 Votos
4
Respuestas
Solucionado
Respuestas
Avatar por defecto

Asistente Virtual Datdata

Equipo Datdata

•

respondió hace 1 día

🤖 Esta respuesta fue generada automáticamente por nuestra inteligencia artificial local. Es un intento único de ayudarte al instante. No responderá a mensajes posteriores en este hilo.

Hola, ¡gracias por tu consulta!

Entiendo que buscas crear una medida de promedio de viajes mensual fijo en Power BI, que no se vea afectada por el contexto de filtro de la fila (en este caso, el mes), para poder calcular la variación mensual respecto a ese promedio.

Tu medida está bien encaminada, pero el problema al colocarla en una tabla donde cada fila es un mes es que el contexto de filtro del mes está actuando sobre la medida `[Viajes]`. Para que el promedio sea fijo y no cambie por cada mes, necesitas "eliminar" el filtro de mes del cálculo del promedio.

Aquí te propongo una forma de ajustar tu medida para que el promedio mensual sea fijo:

1. Modifica la medida para eliminar el filtro de mes del cálculo del promedio:

Utilizaremos la función `ALL` o `ALLEXCEPT` para quitar el filtro de la columna de mes (o la combinación Año-Mes) en el cálculo del promedio.

Viajes Promedio Mensual Fijo = 
VAR _TotalViajes = [Viajes] // Asumiendo que [Viajes] es una medida que suma el total de viajes
VAR _CantidadMesesConDatos = 
    CALCULATE(
        DISTINCTCOUNT('d_Calendario'[Año#Mes]),
        ALL('d_Calendario') // Elimina todos los filtros de la tabla Calendario, incluyendo el mes
        // Si solo quieres eliminar el filtro de mes pero mantener otros filtros de calendario, podrías usar ALLEXCEPT:
        // ALLEXCEPT('d_Calendario', 'd_Calendario'[Año]) // Si solo quieres mantener el filtro de año
    )
VAR _PromedioMensual = 
    DIVIDE( _TotalViajes, _CantidadMesesConDatos, 0 )
RETURN
    ROUND( _PromedioMensual, 0 )

Explicación de los cambios:

  • `CALCULATE(DISTINCTCOUNT('d_Calendario'[Año#Mes]), ALL('d_Calendario'))`: Aquí es donde ocurre la magia. `CALCULATE` modifica el contexto de filtro. `ALL('d_Calendario')` elimina *todos* los filtros aplicados a la tabla `d_Calendario`. Esto significa que `DISTINCTCOUNT` contará todos los meses con datos en tu tabla de calendario, independientemente del mes que esté seleccionado en el contexto de la fila de tu tabla de informes.
  • Si quisieras que el promedio fuera fijo para el año seleccionado pero no para el mes, usarías `ALLEXCEPT` en lugar de `ALL`. Por ejemplo: `ALLEXCEPT('d_Calendario', 'd_Calendario'[Año])`.

Con esta medida `Viajes Promedio Mensual Fijo`, el valor calculado debería permanecer constante sin importar en qué mes estés analizando.

Para la medida de variación del mes respecto al promedio, podrías usar esta nueva medida fija:

Variacion vs Promedio Mensual = 
VAR _ViajesMesActual = [Viajes] // Tus viajes para el mes actual en el contexto de la tabla
VAR _PromedioFijo = [Viajes Promedio Mensual Fijo] // Tu nueva medida con el promedio fijo
RETURN
    _ViajesMesActual - _PromedioFijo

Espero que esto te ayude a resolver tu problema. Si tienes más dudas, los recursos de Datdata sobre DAX y medidas son muy valiosos.

Te sugiero visitar:

Enlace oculto — inicia sesión para verlo

- Asistente Virtual de Datdata

0 Votos
Avatar de Javier Gómez

Javier Gómez

Equipo Datdata

•

respondió hace 15 horas

Hola Octavio,

Me parece  que el problema es que DISTINCTCOUNT('d_Calendario'[Año#Mes]) está respetando el contexto de filtro del mes en cada fila, y eso te daría 1 en cada fila, puedes corroborar viendo el resultado de lo que te arroja la variable de _CantidadMesesConDatos después de RETURN.

A lo que entiendo que requieres, deberías modificar esta última variable removiendo los filtros de la tabla calendario así: 

VAR _CantidadMesesConDatos =
    CALCULATE (
        DISTINCTCOUNT ( 'd_Calendario'[Año#Mes] ),
        ALL ( 'd_Calendario' ),
        KEEPFILTERS ( VALUES ( 'Traslados'[Fecha] ) )
    )

Dentro de VALUES agregarías tu columna de fecha de la tabla de hechos de los traslados.

De cualquier manera si esto no ayuda, estaría excelente compartieras imágenes para entender mejor la situación.

Quedo atento.
0 Votos
Avatar por defecto

Octavio S.

Estudiante

•

respondió hace 6 horas

Buen día Javier, muchas gracias por tu respuesta

Finalmente pude solucionarlo con la siguiente medida:

CantidadMesesConDatos 1 = 
CALCULATE (
    DISTINCTCOUNT ( 'd_Calendario'[Año#Mes] ),
    FILTER (
        ALL ( 'd_Calendario' ),
        CALCULATE ( COUNTROWS ( 'f_Traslados Instalaciones' ) ) > 0
    )
)

Probé con la solución que me proporcionaste pero devuelve 12, es decir, todos los meses del calendario.

Con la medida de arriba me devuelve 8, que  son los meses que tienen algún movimiento en la tabla de hechos.

Saludos.
0 Votos
Avatar de Javier Gómez

Javier Gómez

Equipo Datdata

•

respondió hace 3 horas

Buen día Octavio,

Entiendo! Me alegra que lo hayas solucionado.

Saludos!
0 Votos
Es necesario estar inscrito para dejar tu duda, comentario y/o respuesta

Sobre el alumno

OctavioSomonte850

Octavio S.

Cursos completados

Imagen del curso Aprende Power BI con proyectos sencillos
Imagen del curso Domina Power BI con proyectos intermedios
Imagen del curso Certificación oficial por Microsoft de Power BI
Imagen del curso Especialización en Transformación de Datos con Power Query

Más preguntas sobre el tema

Medida DAX

RoxanaSc461

La función CALCULATE no reconoce mis columnas de talbla.

deleted-user-UVUC

medidas

Esme

conteo de clientes hasta selecciòn de segmentador. (Nivel novato)

Luiscarlos619

uso de dax formatter

MALANIS

Recursos
  • Foro
  • Inscribirse
  • Blog
  • Ejemplos de dashboards
Cursos
  • Aprende Power BI con Proyectos
  • Análisis de Datos con Power BI y Excel
  • Especialización en Power Query
  • Certificación de Power BI
  • Tu Portafolio de Dashboards
Legales
  • Términos del servicio
  • Política de privacidad
  • Política de cookies
  • Contacto
  • Acerca
Canal de YouTube de datdata Cuenta de Linkedin de datdata Cuenta de Instagram de datdata Página de Facebook de datdata Cuenta de TikTok de datdata
© 2025 © datdata - Todos los derechos reservados

Confirmar eliminación

Para eliminar esta participación, por favor ingrese su contraseña.