Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo calcular en valores agrupados en una sola medida DAX?

Tengo una lista de identificaciones y marcas de tiempo. Necesito hacer un recuento distinto de identificaciones por hora y luego promediar el conteo de cada hora en una medida. Prefiero no crear tablas separadas porque necesito hacer esto para varios coches indicadores usando diferentes columnas, así que quiero poder hacer el grupo dentro de una medida.

Datos de origen

HoraIDENTIFICACIÓN
8:00A
8:00A
9:00A
9:00D
9:00E
10:00A
10:00G
10:00H
10:00I
10:00J
11:00K
11:00L
12:00 PMM

Tabla intermedia si tuviera que configurar una tabla separada para hacer el cálculo

HoraRecuento distinto de ID
8:001
9:003
10:005
11:003

Valor final de la tarjeta indicadora que quiero crear

Promedio de recuento distinto de ID3

¿Hay alguna manera de hacer esto sin tener que crear la tabla intermedia? Mi visual final es una tarjeta indicadora, por lo que no puedo usar una tabla para agrupar por la medida

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Tienes razón. Mi publicación, de hecho, no agrega ningún valor en absoluto. Lo siento por la publicación duplicada.

Syndicate_Admin
Administrator
Administrator

Hola @Ashish_Mathur ,

¿Puede explicar la ventaja de su solución sobre la mía? El DAX contiene más o menos el mismo código, excepto que se divide en dos medidas, en lugar de usar solo una.

Siempre estoy ansioso por aprender y mejorar.

Saludos
Tom

Syndicate_Admin
Administrator
Administrator

Hola

Estas medidas funcionan

ID count = DISTINCTCOUNT(Data[ID])
Measure = AVERAGEX(VALUES(Data[Hour]),[ID count])

Espero que esto ayude.

Untitled.png

Syndicate_Admin
Administrator
Administrator

Hola @BriefStop
Puedes lograr tu objetivo con 2 sencillas medidas:
1. Para el recuento distinto de IDS por hora:

DistinctID = si(HASONEVALUE('Tabla'[Hora]),PROMEDIOX(valores('Tabla'[Hora]),DISTINCTCOUNT('Tabla'[ID])),SUMX(valores('Tabla'[Hora]),DISTINCTCOUNT('Tabla'[ID])))
Ritaf1983_0-1685764492358.png

2. Para la fijación de "incorrecto" total:

AverageTotal =
DÓNDE PROMEDIO_ =
PROMEDIOX ( TODO ( 'Tabla'[Hora] ), [DistinctID] )
DEVOLUCIÓN
( SI ( HASONEVALUE ( 'Tabla'[Hora] ), [DistinctID], PROMEDIO_ ) )
Ritaf1983_1-1685764619714.png

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

Hola @BriefStop ,

Esta medida ayuda a crear lo que quieres:

Measure = 
AVERAGEX(
    VALUES( 'Table'[Hour] )
    , CALCULATE( DISTINCTCOUNT('Table'[ID] ) )
)

Pero no estoy seguro del resultado esperado, porque obtengo 2.4 en lugar del 3 esperado:
image.png
La medida devuelve el mismo resultado en la línea Total (sin contexto de filtro hace que sea mágico aquí) y en el visual Tarjeta.
La medida recorre en iteración una tabla de horas y determina el promedio dividiendo la expresión numérica . por el número de filas. Debe tener en cuenta que el número de filas es 1 dentro de la tabla visual pero cinco en la línea total.

Con suerte, esto proporciona lo que está buscando para abordar su sistema.

Saludos

Tom

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.