Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount.
Register nowThe Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.
Hola a todos
Estoy tratando de trabajar con un conjunto de datos que tiene estas columnas:
Fecha del informe | Tipo de formulario | IDENTIFICACIÓN | Días reales |
12/2/2021 | Presentación | 01E-XXX-00002 | 467 |
12/2/2021 | Informe de observación de campo | 01C-XXX-00004 | 6 |
12/2/2021 | Informe de observación de campo | 01C-XXX-00004 | 377 |
12/2/2021 | Informe de observación de campo | 01C-XXX-00004 | 6 |
12/2/2021 | Presentación | 01C-XXX-00004 | 377 |
12/2/2021 | Presentación | 05BB-XXX-00001 | 8 |
12/2/2021 | RFI | 09AA-XXX-00001 | 411 |
12/2/2021 | RFI | 09AC-XXX-00003 | 405 |
12/2/2021 | Presentación | 09AS-XXX-00002 | 392 |
12/2/2021 | Presentación | 15AB-XXX-00002 | 399 |
12/2/2021 | RFI | 15AC-XXX-00001 | 1 |
He creado este gráfico de líneas con los datos -
Me pregunto cómo excluyo los valores más altos del 5% del "Día real"?
La medida que estoy usando hasta ahora para intentar filtrar =
BOTTOM 95% Latency =
VAR __rt = CALCULATE(Sum(Data[Actual Days]), FILTER(All(Data),Data[Actual Days] <= MAX(Data[Actual Days])))
VAR __95p = CALCULATE(SUM(Data[Actual Days]), ALL(Data)) * 0.95
RETURN
IF(__rt <= __95p, 1, 0)
Estoy filtrando por 1 para el gráfico, pero no estoy seguro de los resultados. Solo clasifica 4 filas como '0' de un total de 1.045 filas y hay filas clasificadas como '1' donde el valor de Días reales es tan alto como los valores clasificados como '0'.
Cualquier aporte sobre esto es muy apreciado.
Solved! Go to Solution.
De acuerdo con su descripción, 1045 datos, 95 por ciento, 1045 * 0.95 = 992.75, es decir, tome los datos después de 993, si de acuerdo con mi método anterior, cuando más de un valor duplicado, pueden estar todos seleccionados.
como a continuación:
En mi opinión, si desea alcanzar la duplicación con solo un par aleatorio, debe crear filas de índice auxiliares para asegurarse de que el 5 por ciento sea 1.
insertar índice:
A continuación, ajuste la medida a lo siguiente:
test1 =
VAR RANK1 =
RANKX ( ALL ( 'Table' ), CALCULATE ( SUM ( 'Table'[value] )+0.0000001*SUM('Table'[Index]) ) )
VAR MIN1 =
CALCULATE ( COUNTROWS ( 'Table' ), ALL ( 'Table' ) ) * 0.05
RETURN
IF ( RANK1 <= MIN1, 1, 0 )
final:
Saludos
Lucien
Como no tengo sus datos originales de 1045 filas, creé una nueva plantilla basada en lo que mencionó, de la siguiente manera.
La muestra tiene 1045 filas, luego uso la siguiente medida:
test1 =
VAR RANK1 =
RANKX ( ALL ( 'Table'[Date] ), CALCULATE ( SUM ( 'Table'[value] ) ) )
VAR MIN1 =
CALCULATE ( COUNTROWS ( 'Table' ), ALL ( 'Table' ) ) * 0.05
RETURN
IF ( RANK1 <= MIN1, 1, 0 )
Fianal get: (cuando el valor comienza desde 994, luego devuelve 1)
El primer paso es obtener el primer 5 por ciento del total, el segundo paso es ordenar los valores y luego obtener los datos deseados de acuerdo con la clasificación digna y el número del 5 por ciento.
En su muestra, use lo siguiente:
BOTTOM 95% Latency =
VAR __rt = RANKX ( ALL ( 'Data' ), CALCULATE ( SUM ( 'Data'[Actual Days] ) ) )
VAR __95p = CALCULATE ( COUNTROWS ( 'Data' ), ALL ( 'Data' ) ) * 0.05
RETURN
IF(__rt <= __95p, 1, 0)
¿Respondí a su pregunta? ¡Marca mi post como solución!
Saludos
Lucien
Hola @v-luwang-msft. Gracias por su respuesta. El problema es que tengo valores repetitivos, por lo que este método no toma el porcentaje correcto. Ahora estoy tratando de hacer algo como esto (aunque aún no he conseguido que esto funcione) -
Tengo una medida que = percentil 95 de la columna de valores. Estoy tratando de usar eso para crear un filtro. No he tenido suerte hasta ahora, pero esto es esencialmente lo que estoy intentando =
Filter = IF((Data[Days]) >= [95% Days], 1, 0)
De acuerdo con su descripción, 1045 datos, 95 por ciento, 1045 * 0.95 = 992.75, es decir, tome los datos después de 993, si de acuerdo con mi método anterior, cuando más de un valor duplicado, pueden estar todos seleccionados.
como a continuación:
En mi opinión, si desea alcanzar la duplicación con solo un par aleatorio, debe crear filas de índice auxiliares para asegurarse de que el 5 por ciento sea 1.
insertar índice:
A continuación, ajuste la medida a lo siguiente:
test1 =
VAR RANK1 =
RANKX ( ALL ( 'Table' ), CALCULATE ( SUM ( 'Table'[value] )+0.0000001*SUM('Table'[Index]) ) )
VAR MIN1 =
CALCULATE ( COUNTROWS ( 'Table' ), ALL ( 'Table' ) ) * 0.05
RETURN
IF ( RANK1 <= MIN1, 1, 0 )
final:
Saludos
Lucien
Esto es genial, ¡gracias!
Para obtener más contexto: si tengo 1.045 filas en mi conjunto de datos, estoy buscando que 993 filas se etiqueten como un 95% más bajo en términos de valores de 'Días reales'.
Para ampliar este tema, también he formulado esta medida =
95% Data =
VAR _sum =
SUM (Data[Actual Days])
VAR _top =
CALCULATE(
COUNTROWS( ADDCOLUMNS( VALUES(Data[Form ID]), "_sum", _sum)),
REMOVEFILTERS(Data[Form ID])
) * 0.95
RETURN
CALCULATE(
CALCULATE( AVERAGEA (Data[Actual Days])),
KEEPFILTERS(
TOPN(
_top,
ALLSELECTED( Data[Form ID]),
CALCULATE( AVERAGEA (Data[Actual Days]) ), ASC
)
)
)
Esto parece producir un promedio de los valores del día real por ID de formulario con un 5% excluido, lo cual es genial, sin embargo, cada vez que intento usar esta medida con otras columnas (es decir, la columna Fecha de informe) se rompe y los datos ya no tienen sentido.