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álculo de la infracción

Hola;

Necesito su amable apoyo para el siguiente número pls :

tengo tabla como se muestra a continuación, el último colum marcado en amarillo que quiero crear en mitabla. Necesito fórmula dax para la columna, no para medir.

Así que pls permítanme explicar lo que es esta tabla y en qué reglas necesito columna amarilla.

en esta tabla hay materiales que se indexan como grupo para cada uno de ellos, hay cantidades de solicitud y fechas de solicitud, cantidades de entrega y fechas de entrega,

La columna "cantidad abierta" muestra: cantidad de solicitud -cantidad de entrega

La columna "statu" muestra que si todos los materiales entregados o no, si todo el material entregado se cierra, si no está abierto.

Me gustaría encontrar si hay violación durante la entrega de cantidades. Así que reglas como esa :

  • Si el estado es sistema "abierto" comprobará a continuación toda la cantidad de entrega de la fila para cada material, cada comprobación será para el material en el que estamos. si hay incluso 1 pcs cantidad de entrega en las próximas filas sistema escribirá la última columna "violación", si hay o ay cantidad entregada en todas las líneas siguientes, entonces aquí estará en blanco
  • Si el estado está "cerrado", el sistema comprobará la fecha de entrega de la solicitud, el anuncio comparará la fecha de entrega de la siguiente línea. Si en una de las siguientes líneas habrá una fecha de entrega antes de su propia fecha de solicitud de nuevo el sistema escribirá "infracción", si no estará en blanco
  • Para cada material para el sistema de filas más las últimas escribirá en blanco esa columna amarilla

Capture.JPG

para hacer su cálculo más fácil soy sharig con usted sobresale ource como se muestra a continuación:

https://drive.google.com/file/d/1252yy235azu94tCWCUDAbjI3f1FPEqvy/view?usp=sharing

Espero que esté claro gracias de antemano por su amable ayuda

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hey @erhan_79 ,

Asumo que esta instrucción DAX permite crear una columna calculada que devuelve lo que está buscando:

violation = 
var __Material = 'Table'[Material]
var __Index = 'Table'[Index]
var __Status =  'Table'[Status]
var __DeliveryDate = 'Table'[Delivery Date]
var doSucceedingDeliveriesExist =
    IF( __Status = "Open"
        , IF(
            CALCULATE( 
                MAX( 'Table'[Delivery Quantity] )
                , FILTER(
                    ALL( 'Table')
                    , 'Table'[Material] = __Material && 'Table'[Index] > __Index
                )
            ) > 0
            , "Violation"
            , BLANK()
        )
    )
var doOpenPreceedingDeliveriesExist =
    IF( __Status = "Closed"
        , IF(
            CALCULATE( 
                MIN( 'Table'[Delivery Date] )
                , FILTER(
                    ALL( 'Table')
                    , 'Table'[Material] = __Material && 'Table'[Index] > __Index
                )
            ) <= __DeliveryDate
            , "Violation"
            , BLANK()
        )
    )
return
IF( doSucceedingDeliveriesExist = "Violation" || doOpenPreceedingDeliveriesExist = "Violation"
    , "Violation"
    , BLANK()
)

Aquí hay una captura de pantalla del resultado, tenga en cuenta que llamo a la violación de columna:

image.png

Con suerte, esto proporciona lo que está buscando.

saludos

Tom

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Hey @erhan_79 ,

Asumo que esta instrucción DAX permite crear una columna calculada que devuelve lo que está buscando:

violation = 
var __Material = 'Table'[Material]
var __Index = 'Table'[Index]
var __Status =  'Table'[Status]
var __DeliveryDate = 'Table'[Delivery Date]
var doSucceedingDeliveriesExist =
    IF( __Status = "Open"
        , IF(
            CALCULATE( 
                MAX( 'Table'[Delivery Quantity] )
                , FILTER(
                    ALL( 'Table')
                    , 'Table'[Material] = __Material && 'Table'[Index] > __Index
                )
            ) > 0
            , "Violation"
            , BLANK()
        )
    )
var doOpenPreceedingDeliveriesExist =
    IF( __Status = "Closed"
        , IF(
            CALCULATE( 
                MIN( 'Table'[Delivery Date] )
                , FILTER(
                    ALL( 'Table')
                    , 'Table'[Material] = __Material && 'Table'[Index] > __Index
                )
            ) <= __DeliveryDate
            , "Violation"
            , BLANK()
        )
    )
return
IF( doSucceedingDeliveriesExist = "Violation" || doOpenPreceedingDeliveriesExist = "Violation"
    , "Violation"
    , BLANK()
)

Aquí hay una captura de pantalla del resultado, tenga en cuenta que llamo a la violación de columna:

image.png

Con suerte, esto proporciona lo que está buscando.

saludos

Tom

Esto es exactamente lo que busco, muchas gracias @TomMartens !

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.