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.
@Greg_Deckler usted podría ser capaz de ayudar con este. Por cierto, la solución que creó para las preguntas anteriores era phenominal.
Tengo una columna que reconoce si hay una discrepancia entre el valor en la columna "Unidad de precios" mirando el colunmn "Contrato único/Material/Proveedor". Por ejemplo, el Contrato 5994393 tiene un error con la Unidad de preciosde Material20. En virtud del Material 20 de este contrato, la unidad de precios se muestra como 1000 y 1 y genera un "2" en la columna Error de precios. Sin embargo, mirando las columnas Inicio/Fin del contrato puede ver que el error se corrigió el 1/13/2020. Este fue un error de 1/1/2020 - 1/12/2020, pero fue capturado, y corregido; ahora los intervalos de fechas son 1/13/2020-12/31/9999 para la entrada corregida. Una columna debe mostrar que este error se ha corregido.
Del mismo modo, El contrato 47389 tiene una unidad de precios que es inconsistente que aún no ha sido capturado. La fecha de finalización del contrato es el año 9999 y la unidad de precios es incoherente. Una columna debe mostrar que se trata de un error que aún no se ha corregido.
Contrato único/Material/Proveedor | Contrato | Material | Proveedor | Pricing Unit | Medida | Inicio del contrato | Fin del contrato | Fórmula de error de la unidad de precios (>1 - Error) |
5994393_20_Brick Internacional | 5994393 | 20 | Brick International | 1 | Caso | 1/13/2020 | 12/31/9999 | 2 |
5994393_20_Brick Internacional | 5994393 | 20 | Brick International | 1 | Caso | 11/20/2019 | 12/31/2019 | 2 |
5994393_20_Brick Internacional | 5994393 | 20 | Brick International | 1000 | Caso | 1/1/2020 | 1/12/2020 | 2 |
Proveedor 47389_10_Wood | 47389 | 10 | Proveedor de madera | 1 | Para | 1/1/2019 | 12/31/2019 | 2 |
Proveedor 47389_10_Wood | 47389 | 10 | Proveedor de madera | 100 | Para | 1/1/2020 | 12/31/9999 | 2 |
Hola, @Jacob111
Según su descripción, puede crear una medida como se muestra a continuación.
Result =
var _ID = SELECTEDVALUE('Table'[Contract])
var _Ifhaserror =
CALCULATE(
DISTINCTCOUNT('Table'[Pricing Unit]),
FILTER(
ALLSELECTED('Table'),
'Table'[Contract] = _ID
)
)
var _start =
CALCULATE(
SUM('Table'[Pricing Unit]),
FILTER(
ALLSELECTED('Table'),
'Table'[Contract Start] =
CALCULATE(
MIN('Table'[Contract Start]),
FILTER(
ALL('Table'),
'Table'[Contract] = _ID
)
)
)
)
var _end =
CALCULATE(
SUM('Table'[Pricing Unit]),
FILTER(
ALLSELECTED('Table'),
'Table'[Contract Start] =
CALCULATE(
MAX('Table'[Contract Start]),
FILTER(
ALL('Table'),
'Table'[Contract] = _ID
)
)
)
)
return
IF(
_Ifhaserror=1,
"no error",
IF(
_Ifhaserror>1&&_start=_end,
"this error has been corrected",
IF(
_Ifhaserror>1&&_start<>_end,
"an error has not yet been corrected"
)
)
)
Resultado:
Saludos
Allan
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@v-alq-msft Gracias por la ayuda! Esto es detectar errores y no errores, pero estoy recibiendo falsos positivos cuando se trata de errores que se han corregido. En la medida, ¿por qué se centró en el inicio del contrato y no en el fin del contrato? Dentro del final del contrato, si el año es 9999 entonces sé que este es el precio actual / presente que se muestra (no significa que es correcto). Además, la fecha de inicio del contrato, una vez corregida, nunca será la fecha como antes (línea de fórmula: Ifhaserror.1&&_start-_end). Será el día siguiente.
He cambiado todas las instancias de 'Table'[Contract] con 'Table'[Unique Contract/Material/Vendor] ya que se centra en lo que exactamente necesita para hacer coincidir.
Hola, @Jacob111
Por favor, intente utilizar la siguiente medida para ver si puede ayudar.
Result =
var _ID = SELECTEDVALUE('Table'[Unique Contract/Material/Vendor])
var _Ifhaserror =
CALCULATE(
DISTINCTCOUNT('Table'[Pricing Unit]),
FILTER(
ALLSELECTED('Table'),
'Table'[Unique Contract/Material/Vendor] = _ID
)
)
var _start =
CALCULATE(
SUM('Table'[Pricing Unit]),
FILTER(
ALLSELECTED('Table'),
'Table'[Unique Contract/Material/Vendor]=_ID&&
'Table'[Contract End] =
CALCULATE(
MIN('Table'[Contract End]),
FILTER(
ALL('Table'),
'Table'[Unique Contract/Material/Vendor] = _ID
)
)
)
)
var _end =
CALCULATE(
SUM('Table'[Pricing Unit]),
FILTER(
ALLSELECTED('Table'),
'Table'[Unique Contract/Material/Vendor]=_ID&&
'Table'[Contract End] =
CALCULATE(
MAX('Table'[Contract End]),
FILTER(
ALL('Table'),
'Table'[Unique Contract/Material/Vendor] = _ID
)
)
)
)
return
IF(
_Ifhaserror=1,
"no error",
IF(
_Ifhaserror>1&&_start=_end,
"this error has been corrected",
IF(
_Ifhaserror>1&&_start<>_end,
"an error has not yet been corrected"
)
)
)
Resultado:
Saludos
Allan
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@v-alq-msft Esto ha sido de gran ayuda y me está proporcionando una gran cantidad de información. Sin embargo, he luchado para poner esta información en cualquier gráfico útil o visual. A pesar de que puedo mostrar el resultado de la fórmula sin una columna, no actúa como uno.... lo que significa que no puedo crear una segmentación de los valores devueltos, gráficos de barras, etc.
He intentado cambiar la fórmula para ser reconocida ya sea como una "columna personalizada" por lo que se puede utilizar de la manera anterior, pero sin suerte.
¿Hay alguna manera de adaptar la solución anterior en una "Columna personalizada" o de tal manera que los resultados se puedan reproducir?
Hola, @Jacob111
Puede haber una manera de crear una columna personalizada para lograr su requisito. Desafortunadamente no soy bueno en Power Query. Espero que alguien más pueda ayudarte.
Saludos
Allan
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 | |
2 | |
1 |