Prabunathan
Hola,
Tengo una situación en la que tengo que extraer las transacciones que ocurrieron debido a una promoción específica (por ejemplo, una promoción de cheques regalo). De los millones de transacciones, tengo que filtrar las transacciones que tienen una combinación de «Artículo» + «Vale de regalo».
El siguiente ejemplo ilustra mejor el requisito.
Fecha | ID de transacción | Código del objeto | Descripción del Artículo | Cant. |
01-dic-17 | A001 | PH001 | Teléfono Asus X001 | 3 |
01-dic-17 | A001 | GV100 | Vale Gif 100 | 3 |
04-dic-17 | A002 | PH001 | Teléfono Asus X001 | 6 |
03-dic-17 | A003 | PH001 | Teléfono Asus X001 | 4 |
03-dic-17 | A003 | GV100 | Vale Gif 100 | 4 |
04-dic-17 | A004 | WM001 | Lavadora B001 | 8 |
02-dic-17 | A005 | WM001 | Lavadora B001 | 9 |
02-dic-17 | A005 | GV100 | Vale Gif 100 | 9 |
EJEMPLO 1 | ||||
FILTRAR | ||||
# de PH001 Unidades vendidas bajo promoción GV (es decir, cantidad total donde una ID de transacción contiene PH001 y líneas de pedido GV100) | ||||
RESULTADO | ID de transacción | Cant. | ||
A001 | 3 | |||
A003 | 4 | |||
EJEMPLO 2 | ||||
FILTRAR | ||||
# de WM001 Vendido bajo Promoción GV (es decir, Cantidad total donde una ID de transacción contiene WM001 + Líneas de pedido GV100) | ||||
RESULTADO | ID de transacción | Cant. | ||
A005 | 9 |
Necesito seleccionar el «Código de artículo» mediante un filtro para obtener el extracto de los ID de transacción donde el Criterea de ventas es Artículo + Vale de regalo.
Gracias de antemano por su orientación.
Prabunathn
estirar
En respuesta a Prabunathan
Disculpas, no leí los ejemplos.
¿El código del artículo es un filtro de carga o un cortador de todos los datos?
Si es un segmentador, agregue una medida como esta y filtre por el segmentador para el código del artículo y en el panel de filtro HasGV> 0
HasGV = VAR GV = "GV100" RETURN CALCULATE ( COUNT ( Trans[Transaction Id] ), FILTER ( ALL ( Trans ), Trans[Transaction Id] = MAX ( Trans[Transaction Id] ) && Trans[Item Code] = GV ) )
estirar
En respuesta a Prabunathan
Sí, el cálculo no funciona para el número de pedido, sino para toda la tabla.
Probé una táctica diferente usando una tabla de resumen. Aquí hay otro documento
https://1drv.ms/u/s!Aln7Q7AFJHneiW2FVW26L2xmf6OQ
Quizás esta página ayude a su uso, ya que parece resolver un problema similar.
http://www.daxpatterns.com/basket-analysis/
Shashankhegde
¿Cómo puedo configurar el filtrado dinámico cuando tengo el siguiente escenario?
Digamos que tengo, Mercados y tengo Unidades de producción
Quiero mostrar de forma selectiva los datos de mis empleados con el siguiente tipo de acceso
Tipo 1 – Pertenece al mercado (se hace fácilmente)
Tipo 2: pertenecer a la unidad de producto (fácil de hacer)
Tipo 4: acceso global independientemente del mercado o la unidad de producto
Tipo 3: pertenecer a un mercado específico y una unidad de producto específica
Por ejemplo, tengo un empleado que pertenece a Market – America y es parte de la Unidad de producto 1 y quiero mostrar solo los datos de NAM -> Unidad de producto 1 ¿Pueden ayudarme sobre cómo se puede implementar el Tipo 3?
estirar
¿Están los datos en columnas? Si es así, puede filtrar la descripción que comienza con un vale de regalo
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("vZJda8IwFIb/ykt3szEdra37uOywc0ILndYPEC9CG2dAEzCRsX+/NLG6QutgjEHLgffkOec9J1kuHdfrDmje9R6cjhO6rqdD+mpjKA8S6UZwioVVfGfVaUSGM891y8jWmIlDvqF7WOWIBDWkd7HLvUX8GuJfRII2pN1Y0GQs0GGe2JpzIjeMvyMhuY4Uz1Z+tFyvxvV/5p7auHaLFkG0CJM0joCyDGp/mX8ZxVk0bkxdQaxhtoYpZ0piIrYFDrzQLYYzpHuxE4oJjmuwO4pMKLItkTf1iQ/tg4JA7QmXJDfHRgPkgivCuDyWJbyAGQDbclam6E7ipnRw/swQjf7G0WQaZ0cpqzXSgnZxOllxYfUQGxK+udVTolpb71dbM7f5l/uyBW//e1t9846qRGOnb8rqCw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Date = _t, #"Transaction Id" = _t, #"Item Code" = _t, #"Item Description" = _t, Qty = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type text}, {"Transaction Id", type text}, {"Item Code", type text}, {"Item Description", type text}, {"Qty", Int64.Type}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each Text.StartsWith([Item Description], "Gif Voucher") or Text.StartsWith([Item Description], "Gift Voucher"))
in
#"Filtered Rows"
Prabunathan
En respuesta a estirar
Hola señor,
Gracias por tu orientación. Puede ser que no fui específico en mi pregunta en la publicación anterior.
De hecho, necesito filtrar la tabla por un criterio de búsqueda por Artículos, y la tabla de resultados debe tener los ID de transacción que tienen el «artículo» específico + «Vales de regalo» en ellos.
No es un requisito obtener el total de los vales de regalo emitidos.
Gracias por adelantado.
Prabunathan
estirar
En respuesta a Prabunathan
Disculpas, no leí los ejemplos.
¿El código del artículo es un filtro de carga o un cortador de todos los datos?
Si es un segmentador, agregue una medida como esta y filtre por el segmentador para el código del artículo y en el panel de filtro HasGV> 0
HasGV = VAR GV = "GV100" RETURN CALCULATE ( COUNT ( Trans[Transaction Id] ), FILTER ( ALL ( Trans ), Trans[Transaction Id] = MAX ( Trans[Transaction Id] ) && Trans[Item Code] = GV ) )
Prabunathan
En respuesta a estirar
Hola
Gracias y funciona fantástico.
estirar
En respuesta a Prabunathan
Estupendo.
No hay problema.
Prabunathan
En respuesta a estirar
Hola señor,
Disculpas por molestarte de nuevo. Aunque probé su solución en un trabajo de muestra, no pude aplicar su consejo y me perdí en el DAX. No estoy familiarizado con VAR, FILTROS en DAX.
Es difícil para mí narrar mi requisito, por lo tanto, estoy compartiendo un Pbix de muestra que puede ayudarlo a comprender mi requisito y corregir mi sintaxis de medida DAX.
https://www.dropbox.com/s/ablz8s4681ospwt/Sample.pbix?dl=0
Agradezco tu apoyo.
Saludos
Prabu
estirar
En respuesta a Prabunathan
Parece un error tipográfico en el número de cupón. Es ZO no Z0
HasGV1 = VAR GV = "ZOTGVCB100ISM" RETURN CALCULATE ( COUNT ( MASTER[Order No. ] ), FILTER ( ALL ( MASTER ), MASTER[Order No. ] = MAX( MASTER[Order No. ] ) && MASTER[Item] = GV ) )
Las variables son fáciles y hacen que el código sea un poco más fácil de leer un cambio, especialmente si usa valores varias veces.
https://www.sqlbi.com/blog/marco/2017/09/12/the-easiest-way-to-start-using-variables-in-dax/
https://docs.microsoft.com/en-us/power-bi/guided-learning/introductiontodax#step-4
https://powerbi.tips/2017/05/using-variables-within-dax/
Prabunathan
En respuesta a estirar
Hola señor,
Gracias de nuevo. Le pido que me devuelva el archivo Pbix con el filtro en acción.
Intenté después de corregir el código, pero la tabla de matriz todavía muestra TODOS los Id. De pedido que contienen ZOTGVCB100ISM, mientras que necesito que la tabla de matriz resultante muestre solo los Id. De pedido filtrados que contienen AMBOS elementos «Samsung SP N950» + «ZOTGVCB100ISM».
Saludos
estirar
En respuesta a Prabunathan
Sí, el cálculo no funciona para el número de pedido, sino para toda la tabla.
Probé una táctica diferente usando una tabla de resumen. Aquí hay otro documento
https://1drv.ms/u/s!Aln7Q7AFJHneiW2FVW26L2xmf6OQ
Quizás esta página ayude a su uso, ya que parece resolver un problema similar.
http://www.daxpatterns.com/basket-analysis/
Prabunathan
En respuesta a estirar
Hola señor,
Gracias . Este funcionó perfecto y gracias una vez más por todos los enlaces proporcionados.
Saludos
Prabu