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.
Hola a todos,
He estado luchando durante un par de días con el siguiente caso:
Estos son mis datos:
PARTE NO | NO ORDEN NO | FECHA DE TRANSACCIÓN | Qty |
Abc | 1001 | 4/11/2020 | 200 |
Abc | 1001 | 4/11/2020 | 200 |
Abc | 1001 | 5/11/2020 | 200 |
Abc | 1004 | 6/11/2020 | 200 |
Abc | 1004 | 9/11/2020 | 200 |
Cde | 1009 | 7/11/2020 | 300 |
Cde | 1009 | 8/11/2020 | 300 |
Mi intención es calcular cuántos pedidos diferentes se produjeron. En teoría, esto sería un conteo distinto, pero en la práctica, como con la orden de caso no 1004 cuando la orden se detuvo y continuó después de que se hizo la orden 1009. El resultado exacto sería calcular que se trataba de dos órdenes separadas.
El resultado correcto (recuento de órdenes) sería:
1001 a 1
1004 x 2
1009 a 1
--> 4 en lugar de un recuento distinto que resultaría en 3.
¿Alguna solución para esto? Estoy pensando que en base a la fecha de la transacción se podría decir que si el pedido no es el mismo y la fecha desde la última transacción para este producto es dentro de 1 día, entonces es uno, de lo contrario se cuenta en cuántos días diferentes se produjo en.
Gracias de antemano por cualquier ayuda!
Hola @oscarrudnas ,
Según su descripción, creé una columna de índice en el editor de consultas como condición de filtro para crear una columna calculada.
diff =
VAR _diff =
CALCULATE (
FIRSTNONBLANK ( 'Table (2)'[TRANSACTION DATE], 1 ),
FILTER ( 'Table (2)', EARLIER ( 'Table (2)'[Index] ) < 'Table (2)'[Index] )
)
VAR day_ =
DATEDIFF ( _diff, 'Table (2)'[TRANSACTION DATE], DAY )
RETURN
IF(ISBLANK(day_),0,day_)
A continuación, cree una medida como esta:
Measure =
VAR diff_1 =
CALCULATE ( DISTINCTCOUNT ( 'Table (2)'[ORDER NO] ), 'Table (2)'[diff] <= 0 )
VAR diff_2 =
CALCULATE ( COUNT ( 'Table (2)'[ORDER NO] ), 'Table (2)'[diff] > 0 )
RETURN
diff_2 + diff_1
Saludos
Liang
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Gracias por la entrada. Creo que esa solución será mejor que la que derivó de @amitchandakrespuesta.
La solución que tengo ahora es muy lenta, así que podría revisar su solución más tarde cuando tenga tiempo para mejorarla. Esta es la solución:
var _prod = Table[PART NO]
var _datesapplied = Table[DATE_TIME]
var _lastday =
maxx(
FILTER(Table,
Table[ProductKey] = _prod &&
Table[DATE_TIME] < _datesapplied),
Table[DATE])
var _diff = DATEDIFF(_lastday, _datesapplied,DAY)
return
SWITCH(TRUE(),
_diff = 0,0,
1)
A continuación, creé una medida que calcuó el distinto ORDEN NO donde esta columna es 1
CALCULATE(
DISTINCTCOUNT('Table'[SOURCE_REFKEY]),
Table[Shop Order Count] = 1)
¡Gracias por la entrada!
Otra forma de pensar sería contar los días distintos con la excepción de si el mismo orden se produce durante varios días. ¿Quizás eso ayudaría a pensarlo al revés?
@oscarrudnas , una columna como esta le dará 0 para la diferencia de fecha mayor que 1. Vea si esto puede ayudar
Columna ?
var _1 á datediff(maxx(FILTER('Table','Table'[ORDER]- EARLIER('Table'[ORDER]) && 'Table'[Date] < EARLIER('Table'[Date])),'Table'[Date]) , 'Table'[Date],day)
devolver if(_1 <-1,1,0)
Gracias por la respuesta. Sin embargo, no funcionó.
Recibo 1 por cada caso. Supongo que tendría que iterar en función de la columna del producto? Ahora el pedido - antes (orden) significaría básicamente (si lo he entendido correctamente) que tomamos la fecha de la orden antes de eso?
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.