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.
Estoy presentando datos en una matriz que se ve así:
Me gustaría mostrar todas las filas donde Fecha reportada es después de Remediación. Idealmente, me gustaría mostrar todas las filas donde la fecha notificada es después de la corrección y la primera fecha informada antes de la corrección. En su defecto, me gustaría mostrar las filas con las tres últimas fechas reportadas. He estado jugando con TopN, pero no he llegado a ninguna parte. ¿Alguien puede señalarme en la dirección correcta? Muchas gracias.
Solved! Go to Solution.
HI @ReadTheIron,
Puede usar la siguiente fórmula de medida para verificar las últimas 3 fechas del informe que están después de 'Fecha de corrección' y agrupadas en función del 'nombre común' actual, luego puede usarla en la matriz 'filtro de nivel visual' para filtrar registros:
Flag =
VAR _currAssetDate =
CALCULATE (
MAX ( AssetTable[Remediation] ),
ALLSELECTED ( FailureTable ),
VALUES ( AssetTable[Common Name] )
)
VAR currReportDate =
MAX ( FailureTable[Date Reported] )
VAR _list =
CALCULATETABLE (
VALUES ( FailureTable[Date Reported] ),
FILTER ( ALL ( FailureTable ), [Date Reported] >= _currAssetDate ),
VALUES ( FailureTable[Common Name] )
)
VAR ranked =
FILTER (
ADDCOLUMNS ( _list, "Rank", RANKX ( _list, [Date Reported],, DESC ) ),
[Rank] <= 3
)
RETURN
IF ( currReportDate IN SELECTCOLUMNS ( ranked, "Date", [Date Reported] ), currReportDate )
Saludos
Xiaoxin Sheng
@amitchandak, @HashamNiaz , gracias por la ayuda! Desafortunadamente, me encuentro con el mismo problema cuando intento cualquiera de las soluciones: no puedo escribir una medida o una expresión DAX que haga referencia a dos tablas. Fecha de notificación proviene de una tabla (llámese FailureTable), todos los demás campos de otra (llámese AssetTable). Las dos tablas están relacionadas de muchos a uno en Nombre Común.
Entonces, si intento crear una medida, puedo llegar hasta =countrows(filter(FailureTable,FailureTable[Date Reported], pero luego no puedo ingresar AssetTable[Remediation].
Si intento agregar una columna calculada a AssetTable, no puedo escribir FailureTable.
Hay @ReadTheIron,
De hecho, las expresiones DAX se pueden calcular o invocar en varias tablas.
¿Puede compartir algunos datos ficticios que mantengan la estructura de datos sin procesar y los resultados esperados para pegar aquí con el formato de tabla? Debería ayudarnos a aclarar su escenario y probar la fórmula de codificación.
Cómo obtener respuestas a su pregunta rápidamente
Saludos
Xiaoxin Sheng
Aquí hay algunos datos ficticios que deberían dar la matriz en la pregunta original:
AssetTable
Nombre común | Remediación | Fecha del último error | Fecha de error más reciente después de la corrección |
BMT-J2-291A | 6/27/2021 | 7/24/2021 | 7/24/2021 |
IRT-L1-203 | 5/22/2021 | 8/31/2021 | 8/31/2021 |
BMT-Q1-471 | 7/17/2021 | 7/14/2021 |
Y FailureTable
Nombre común | Fecha de error | Código de causa |
IRT-L1-203 | 8/31/2021 | No se ha encontrado ninguna causa |
BMT-J2-291A | 7/24/2021 | No se encontró ningún código de causa aplicable |
BMT-Q1-471 | 7/14/2021 | No se ha encontrado ninguna causa |
BMT-Q1-471 | 7/5/2021 | No se ha encontrado ninguna causa |
IRT-L1-203 | 6/21/2021 | Escombros |
BMT-J2-291A | 6/2/2021 | No se ha encontrado ninguna causa |
BMT-Q1-471 | 3/27/2021 | Usado |
BMT-J2-291A | 3/25/2021 | Anclado |
BMT-J2-291A | 3/18/2021 | Anclado |
IRT-L1-203 | 3/18/2021 | Fuera de ajuste |
IRT-L1-203 | 2/24/2021 | No se ha encontrado ninguna causa |
BMT-J2-291A | 2/8/2021 | No se ha encontrado ninguna causa |
BMT-J2-291A | 2/1/2021 | Tiempo |
BMT-Q1-471 | 12/17/2020 | Fuera de ajuste |
BMT-J2-291A | 12/16/2020 | No se ha encontrado ninguna causa |
IRT-L1-203 | 10/7/2019 | No se ha encontrado ninguna causa |
IRT-L1-203 | 10/5/2019 | Edad |
BMT-J2-291A | 1/3/2019 | Edad |
Fecha del último error es una columna calculada que dibuja datos de FailureTable.
La matriz se filtra en función de si la fecha de error más reciente después de la corrección no está en blanco.
No estoy seguro de lo que estoy haciendo mal al tratar de crear una columna calculada que haga referencia a ambas tablas, ¡cualquier ayuda apreciada!
HI @ReadTheIron,
Puede usar la siguiente fórmula de medida para verificar las últimas 3 fechas del informe que están después de 'Fecha de corrección' y agrupadas en función del 'nombre común' actual, luego puede usarla en la matriz 'filtro de nivel visual' para filtrar registros:
Flag =
VAR _currAssetDate =
CALCULATE (
MAX ( AssetTable[Remediation] ),
ALLSELECTED ( FailureTable ),
VALUES ( AssetTable[Common Name] )
)
VAR currReportDate =
MAX ( FailureTable[Date Reported] )
VAR _list =
CALCULATETABLE (
VALUES ( FailureTable[Date Reported] ),
FILTER ( ALL ( FailureTable ), [Date Reported] >= _currAssetDate ),
VALUES ( FailureTable[Common Name] )
)
VAR ranked =
FILTER (
ADDCOLUMNS ( _list, "Rank", RANKX ( _list, [Date Reported],, DESC ) ),
[Rank] <= 3
)
RETURN
IF ( currReportDate IN SELECTCOLUMNS ( ranked, "Date", [Date Reported] ), currReportDate )
Saludos
Xiaoxin Sheng
¡Eso funciona maravillosamente! Lo estudiaré para descubrir cómo funciona: gracias por compartir su experiencia; realmente me está ayudando a aprender.
Hola @ReadTheIron !
Para resolver este problema, primero debe crear una columna que calcule que [Fecha notificada] es mayor que [Corrección] o no. Puede crear una columna calculada para ese propósito utilizando a continuación DAX;
IsDateReport = IF(Table[DateReported] > Table[Remediation], 1, 0)
Después de esto, deberá crear una medida de clasificación, que se basará en la selección de su columna como (Nombre común, Corrección), esto creará clasificación, ahora puede usar esta medida para filtrar solo los 3 primeros rangos.
Saludos
Hasham
@ReadTheIron, una de las formas en que se puede añadir medidas como
countrows(filter(Table, [Date Reported] > [Remediation]))
Todas las medidas deben seguir el filtro anterior
O cree una columna y úsela como un filtro de nivel visual y filtre esta columna = 1
if([Fecha notificada] > [Remediación] ,1,0)
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |