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

Medida DAX para comparar fechas MAX con filtro de columna condicional

No estoy seguro de que el título aquí describa mejor mi situación y estoy teniendo problemas para encontrar los términos de búsqueda correctos, así que perdóneme si la solución a esto está justo debajo de mis narices aquí en los foros.

Estoy tratando de sumar el número de cargas en un programa de envío y filtrarlo por solo las cargas que se han facturado. Así que necesito comparar la fecha MAX en la tabla DirectCosts con la fecha MAX en la tabla ShippingCalendar, pero quiero aplicar este filtro por Código de costo para saber cuántas cargas de cada código de costo ya se han pagado.

Aquí hay algunas tablas de ejemplo:

DirectCosts

Número de facturaPaidDateCódigo de costo
10012/28/2022160
10023/9/2022165
10033/9/2022160
10043/18/2022166
10054/1/2022165
10064/2/2022165
10074/8/2022160
10084/29/2022160
10095/8/2022166
10105/12/2022161
10115/13/2022161
10125/25/2022165

EnvíoCalendar

ID de cargaLoadQtyFecha de aprobaciónCódigo de costo
25512/28/2022160
25613/9/2022165
25713/9/2022160
25813/18/2022166
25934/1/2022165
26024/2/2022165
26114/8/2022160
26214/29/2022160
26315/8/2022166
26425/12/2022161
26515/13/2022161
26615/25/2022165
26716/1/2022160
26816/1/2022161
26916/4/2022160
27016/5/2022165
27126/9/2022165
27216/10/2022160
27316/13/2022160
27416/13/2022166
27516/17/2022165
27646/22/2022160
27716/24/2022165
27816/27/2022161

Ambas tablas se unen en una tabla CostCodes donde CostCode es la clave principal.

Pensé que tal vez una simple función CALCULATE haría el truco, pero no devuelve ningún valor.

PaidLoadQty = 
    CALCULATE(
        SUM('ShippingCalendar'[LoadQty]),
        FILTER(
            'ShippingCalendar',
            MAX('ShippingCalendar'[ApprovedDate]) <= MAX('DirectCosts'[PaidDate])
        )
    )

La imagen de la tabla que estoy buscando debería verse así:

Código de costoPaidLoadQty
1604
1613
1657
1662

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

@wlandry12

Creo que su tabla de resultados no es correcta, por ejemplo, la fecha MAX para el código de costo 165 en DirectCosts es 25-May-22 y hay 4 líneas en la tabla ShippingCalendar para ese código de costo con fechas anteriores al 25-May-22.

Por cierto, pruebe esta medida:

PaidLoadQty = 
VAR _Max_Date =
    CALCULATE (
        MAX ( DirectCosts[PaidDate] ),
        ALLEXCEPT ( DirectCosts, DirectCosts[Cost Code] )
    )
RETURN
    CALCULATE (
        COUNTROWS ( ShippingCalendar ),
        ShippingCalendar[ApprovedDate] <= _Max_Date
    )

Salida:

VahidDM_0-1656372413122.png

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Aprecia tus felicitaciones!!

Badges.jpg

| de LinkedIn | de Twitter Blog | YouTube (en inglés)

Tiene razón, el resultado para el código de costo 165 debe ser 4, no 7.

La medida DAX que proporcionó funcionó perfectamente. ¡Gracias!

Syndicate_Admin
Administrator
Administrator

Hola

Coud explicas la primera línea de tu salida: ¿cómo obtienes 4 en la columna PaidLoadQty para el código de coste 160?

Saludos.

Hay 4 cargas con el código de costo 160 en o antes del 4/29/22, la fecha máxima de una factura pagada para ese código de costo en la tabla directCosts.

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.