Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Tengo un conjunto de datos que tiene el siguiente aspecto:
Fecha | Nombre | Categoría | Total |
4/10 | Bob | A | 5 |
4/10 | Alice | A | 10 |
4/10 | Joe | B | 10 |
4/10 | Nick | A | 15 |
4/11 | Bob | A | 14 |
4/11 | Alice | A | 6 |
4/11 | Joe | B | 11 |
4/11 | Nick | A | 10 |
.
.
.
Tenga en cuenta que un nombre solo se emparejará con 1 categoría.
¿Es posible obtener por cada nombre y fecha, el tiempo invertido en el 15% inferior (para Total) de su categoría en los últimos 7 días.
Hola @t-dahen - ¿Conseguiste la respuesta que estabas buscando? ¿Se marcó la respuesta correcta como solución?
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI Reporting@t-dahen , No está claro para mí.
Vea si estos pueden ayudar
https://blog.enterprisedna.co/implementing-80-20-logic-in-your-power-bi-analysis/
https://forum.enterprisedna.co/t/testing-the-pareto-principle-80-20-rule-in-power-bi-w-dax/459
https://finance-bi.com/power-bi-pareto-analysis/
https://community.powerbi.com/t5/DAX-Commands-and-Tips/Calculate-the-sum-of-the-top-80/td-p/763156
No estoy seguro de entender completamente sus requisitos, pero estas dos medidas devolverán los totales durante 7 días, luego devolverán un 1 si el total actual está por debajo del 15% del total de 7 días. Si necesita más ayuda, publique la salida de la muestra y, posiblemente, más de 2 días de datos para una prueba de 7 días.
Seven Day Total =
VAR varCurrentDay = MAX( 'Date'[Date] )
VAR varCurrentName =
MAX( 'Table'[Name] )
VAR varSevenDayTotal =
SUMX(
FILTER(
ALL( 'Table' ),
'Table'[Date]
IN DATESBETWEEN(
'Date'[Date],
varCurrentDay - 7,
varCurrentDay
)
&& 'Table'[Name] = varCurrentName
),
'Table'[Total]
)
RETURN
varSevenDayTotal
---------------------------------------------------------------------------------
Less than 15 Percent =
VAR varCurrentTotal =
MAX( 'Table'[Total] )
RETURN
IF(
varCurrentTotal=BLANK(),
BLANK(),
IF(
DIVIDE(
varCurrentTotal,
[Seven Day Total],
0
) < .15,
1,
0
)
)
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingEn lugar de los últimos 7 días, para el intervalo de fechas seleccionado (a través de la segmentación de datos), es posible ver cómo el porcentaje de días que cada persona estaba en el 15% inferior de la categoría. (Utilicé el 33% para un ejemplo más fácil. Esto no debe cambiar nada en la lógica.) Para abajo, Alice era la persona más baja en su categoría en 4/10 y 4/14 por lo que su porcentaje sería de 2/7 a 28,57%.
Fecha | Nombre | Categoría | Total |
10-Abr | Alice | A | 2 |
10-Abr | Bob | A | 5 |
10-Abr | Joe | B | 4 |
10-Abr | Nick | A | 8 |
11-Abr | Alice | A | 10 |
11-Abr | Bob | A | 6 |
11-Abr | Joe | B | 7 |
11-Abr | Nick | A | 4 |
12-Abr | Alice | A | 5 |
12-Abr | Bob | A | 3 |
12-Abr | Joe | B | 9 |
12-Abr | Nick | A | 4 |
13-Abr | Alice | A | 5 |
13-Abr | Bob | A | 7 |
13-Abr | Joe | B | 6 |
13-Abr | Nick | A | 1 |
14-Abr | Alice | A | 2 |
14-Abr | Bob | A | 8 |
14-Abr | Joe | B | 5 |
14-Abr | Nick | A | 3 |
15-Abr | Alice | A | 7 |
15-Abr | Bob | A | 4 |
15-Abr | Joe | B | 8 |
15-Abr | Nick | A | 9 |
16-Abr | Alice | A | 6 |
16-Abr | Bob | A | 5 |
16-Abr | Joe | B | 2 |
16-Abr | Nick | A | 3 |
Me gustaría una mesa como:
Nombre | Porcentaje de días pasados por debajo del 33% inferior de la categoría para el rango de fechas seleccionado | ||
Alice | 28.57% | Alice estuvo en el fondo 33% durante 2 días de los 7 | |
Bob | 28.57% | Bob estaba en el fondo 33% durante 2 días de los 7 | |
Joe | 100% | La única persona en la Categoría B | |
Nick | 42.86% | Nick estaba en el fondo 33% durante 3 días de los 7 |
Hola @t-Dahen ,
Puede crear una tabla calculada y una medida para obtenerla como se indica a continuación:
Table 2 =
SUMMARIZE (
'Table',
'Table'[Date],
'Table'[Category],
"minsname", CALCULATE (
MAX ( 'Table'[Name] ),
FILTER ( 'Table', 'Table'[Total] = MIN ( 'Table'[Total] ) )
)
)
Percent2 =
VAR _tdays =
CALCULATE (
COUNTROWS ( 'Date' ),
DATESBETWEEN (
'Date'[Date],
CALCULATE ( MIN ( 'Table 2'[Date] ), ALL ( 'Table 2' ) ),
CALCULATE ( MAX ( 'Table 2'[Date] ), ALL ( 'Table 2' ) )
)
)
RETURN
DIVIDE ( COUNT ( 'Table 2'[minsname] ), _tdays )
He creado un archivo pbix de ejemplo con los pasos anteriores, puede obtenerlo de este enlace.
Saludos
Rena