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.
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 factura | PaidDate | Código de costo |
1001 | 2/28/2022 | 160 |
1002 | 3/9/2022 | 165 |
1003 | 3/9/2022 | 160 |
1004 | 3/18/2022 | 166 |
1005 | 4/1/2022 | 165 |
1006 | 4/2/2022 | 165 |
1007 | 4/8/2022 | 160 |
1008 | 4/29/2022 | 160 |
1009 | 5/8/2022 | 166 |
1010 | 5/12/2022 | 161 |
1011 | 5/13/2022 | 161 |
1012 | 5/25/2022 | 165 |
EnvíoCalendar
ID de carga | LoadQty | Fecha de aprobación | Código de costo |
255 | 1 | 2/28/2022 | 160 |
256 | 1 | 3/9/2022 | 165 |
257 | 1 | 3/9/2022 | 160 |
258 | 1 | 3/18/2022 | 166 |
259 | 3 | 4/1/2022 | 165 |
260 | 2 | 4/2/2022 | 165 |
261 | 1 | 4/8/2022 | 160 |
262 | 1 | 4/29/2022 | 160 |
263 | 1 | 5/8/2022 | 166 |
264 | 2 | 5/12/2022 | 161 |
265 | 1 | 5/13/2022 | 161 |
266 | 1 | 5/25/2022 | 165 |
267 | 1 | 6/1/2022 | 160 |
268 | 1 | 6/1/2022 | 161 |
269 | 1 | 6/4/2022 | 160 |
270 | 1 | 6/5/2022 | 165 |
271 | 2 | 6/9/2022 | 165 |
272 | 1 | 6/10/2022 | 160 |
273 | 1 | 6/13/2022 | 160 |
274 | 1 | 6/13/2022 | 166 |
275 | 1 | 6/17/2022 | 165 |
276 | 4 | 6/22/2022 | 160 |
277 | 1 | 6/24/2022 | 165 |
278 | 1 | 6/27/2022 | 161 |
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 costo | PaidLoadQty |
160 | 4 |
161 | 3 |
165 | 7 |
166 | 2 |
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:
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!!
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!
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.
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 |