Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola, chicos
Tengo una mesa con horario de entrega de clientes tenue en formato como este
País | Cst | Seq | Ref | Lunes | Martes | Miércoles | Jueves | Viernes | Sábado | Domingo |
eso | 2062 | 004D1 | ES2062004D1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
eso | 2062 | 005D1 | ES2062005D1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
eso | 2062 | 006D1 | ES2062006D1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
eso | 2062 | 007D1 | ES2062007D1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
eso | 2062 | 008D1 | ES2062008D1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
eso | 2062 | 009D1 | ES2062009D1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
eso | 2062 | 011D1 | ES2062011D1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
eso | 2064 | 001D1 | ES2064001D1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
eso | 3482 | 000D1 | ES3482000D1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
eso | 3482 | 003D1 | ES3482003D1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
eso | 3492 | 000D1 | ES3492000D1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
eso | 3515 | 001D1 | ES3515001D1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
eso | 3523 | 000D1 | ES3523000D1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
eso | 3543 | 000D1 | ES3543000D1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
eso | 3578 | 001D1 | ES3578001D1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
eso | 4481 | 001D1 | ES4481001D1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
eso | 9426 | 000D1 | ES9426000D1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
eso | 3256 | 000Z0 | ES3256000Z0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
donde básicamente dice que el cust con referencia ES2062004D1 (Country&cst&seq) sólo acepta la entrega en mo-fr,
cust con referencia ES2062005D1(Country&cst&seq) sólo acepta la entrega en mo, tue y thu. etcetera.
Entonces tengo una tabla de hechos donde tengo pedidos con fecha de entrega
Orden # | País | Cst | Seq | Ref | de la fecha |
12365 | eso | 2062 | 004D1 | ES2062004D1 | 19-10-20 |
12366 | eso | 2062 | 004D1 | ES2062004D1 | 20-10-20 |
12367 | eso | 2062 | 004D1 | ES2062004D1 | 21-10-20 |
12368 | eso | 2062 | 004D1 | ES2062004D1 | 22-10-20 |
12369 | eso | 2062 | 004D1 | ES2062004D1 | 23-10-20 |
12370 | eso | 2062 | 004D1 | ES2062004D1 | 24-10-20 |
12371 | eso | 2062 | 004D1 | ES2062004D1 | 25-10-20 |
12372 | eso | 2062 | 004D1 | ES2062004D1 | 26-10-20 |
12373 | eso | 2062 | 004D1 | ES2062004D1 | 27-10-20 |
12374 | eso | 2062 | 004D1 | ES2062004D1 | 28-10-20 |
12375 | eso | 2062 | 004D1 | ES2062004D1 | 29-10-20 |
12376 | eso | 2062 | 004D1 | ES2062004D1 | 30-10-20 |
12377 | eso | 2062 | 004D1 | ES2062004D1 | 31-10-20 |
12378 | eso | 2062 | 004D1 | ES2062004D1 | 01-11-20 |
12379 | eso | 2062 | 004D1 | ES2062004D1 | 02-11-20 |
12380 | eso | 2062 | 004D1 | ES2062004D1 | 03-11-20 |
12381 | eso | 2062 | 004D1 | ES2062004D1 | 04-11-20 |
12382 | eso | 2062 | 004D1 | ES2062004D1 | 05-11-20 |
lo que quiero lograr es que quiero saber si la fecha del es un día en el que el cliente acepta la entrega.
¿Cuál es la mejor solución
Estoy pensando en crear una columna calculada que calcularía algo como
si dim horario de entrega del cliente ref - referencia de hecho y la fecha de entrega es en los días 1-5 entonces 1 más 0
- ¿cómo debo abordar esto debo añadir esta tabla al modelo y crear relación
- no debería conectarlo al modelo y usar es como tabla de búsqueda - esto se puede hacer finalmente también en el editor de consultas (supongo)
- o de alguna manera crear columna calculada usando dax
Estaría muy agradecido si alguien tiene experiencia con escenario similar y puede recomendar una solución o al menos sugerir dirección
Muchas gracias
Miba
Solved! Go to Solution.
Hola @miba ,
Transformaría (despivo las columnas de día) las fechas en la programación de entrega del cliente tenue en filas, teniendo sólo dos columnas (día y entrega)..
por lo que puede calcular si su cliente tiene 1 en esas fechas comparando con otra tabla....
Consulte la solución adjunta mediante Power Query.
Aquí he creado una columna en la tabla de entrega para comprobar si tiene la fecha o no.
Hola @miba ,
Primero vaya a Power query>select Columns Mon-Sun >unpivot the columns;
A continuación, vuelva a la vista de modelo>crear una relación entre el tabel de hechos y la tabla unpivot;
A continuación, cree una columna calculada como se indica a continuación:
Column =
var _search=LOOKUPVALUE('Unpivot table'[Value],'Unpivot table'[ref],'Table (2)'[ref],0)
var _search2=LOOKUPVALUE('Unpivot table'[Value],'Unpivot table'[Attribute],'Table (2)'[Weekday],0)
Return
IF(_search=1&&_search2=1,TRUE(),FALSE())
O una medida como se indica a continuación:
Para el archivo .pbix relacionado, pls ver adjunto.
Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
Hola
Me gustaría ayudar. La segunda tabla, cuando se pega en MS Excel, no aparece en un formato adecuado. El primero parece estar bien. Pegue ambas tablas en un libro de MS Excel y comparta el vínculo de descarga de ese libro de trabajo.
Hola @miba ,
Transformaría (despivo las columnas de día) las fechas en la programación de entrega del cliente tenue en filas, teniendo sólo dos columnas (día y entrega)..
por lo que puede calcular si su cliente tiene 1 en esas fechas comparando con otra tabla....
Consulte la solución adjunta mediante Power Query.
Aquí he creado una columna en la tabla de entrega para comprobar si tiene la fecha o no.
Hola @miba,
Puedes probar lo siguiente,
-> crear una nueva columna en su dimensión de cliente como:
Accepts Delivery =
if([Monday] = 1, "2|", "|" ) &
if([Tuesday] = 1, "3|", "|" ) &
if([Wednesday] = 1, "4|", "|" ) &
if([Thursday] = 1, "5|", "|" ) &
if([Friday] = 1, "6|", "|" ) &
if([Saturday] = 1, "7|", "|" )&
if([Sunday] = 1, "1|", "|" )
-> crear una columna del día de la semana en su tabla de hechos (tipo de texto)
Day of Week = WEEKDAY([del date])
-> crear un calc en la tabla de hechos para identificar si el día de la semana existe en la cadena de entrega acepta
Good Date = if(FIND([Day of Week], RELATED('dim customer delivery schedule'[Accepts Delivery]), 1, 0)>0, TRUE(), FALSE())
Espero que esto ayude,
Richard
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
¿Mis respuestas ayudaron a llegar a una solución? Dale un kudos haciendo clic en Thumbs Up!
Proud to be a Super User!