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
gdecome
Helper III
Helper III

Análisis de ventas cruzadas

Hola equipo, tratando de hacer un análisis de venta cruzada y tengo una tabla de ventas con columnas ORDER, PRODUCTO, AMOUNT y necesito algunas sugerencias para construir el modelo y crear DAX. Ninguna otra tabla con detalles del producto, solo tiene que resumir por el nombre del producto ya incluido en la tabla Sales.

El ejemplo (formato) siguiente es sólo para ilustrar el contenido para una mejor visualización:

Pedido 1 Prod1,$02

Pedido2 Prod1,$05 Prod2,$10

Pedido3 Prod1,$02 Prod2,$04 Prod3,$01

Pedido4 Prod2,$05

Pedido5 Prod2,$10 Prod3,$02

Pedido6 Prod1,$08 Prod3,$04

Pedido7 Prod1,$04

Basándome en eso, quiero mostrar 3 matrices con la combinación de cada par de productos.

Por número de pedidos, por ejemplo:

Prod1-Prod2 : 2 Los pedidos incluyen ambos productos

Prod3-Prod3: No hay orden solo para Prod3

La tabla es simétrica por la diagonal

Prod1 Prod2 Prod3

Prod1 3 2 2

Prod2 2 1 2

Prod3 2 2 0

Por cantidad de productos, por ejemplo:

Prod3-Prod1: $15 es la cantidad para los 2 productos cuando se venden juntos

Prod2-Prod2: $5 es el total cuando Prod2 se vende solo

La tabla es simétrica por la diagonal

Prod1 Prod2 Prod3

Prod1 $14 $21 $15

Prod2 $21 $05 $17

Prod3 $15 $17 $0

Por porcentaje de importe, por ejemplo:

Prod1-Prod2 : 33% de la cantidad (de los 2 productos) proviene de Prod1

Prod3-Prod3: no importa, ya que será el mismo en la diagonal

La tabla no es simétrica sino complementaria por la diagonal

Prod1 Prod2 Prod3

Prod1 - 33% 67%

Prod2 67% - 82%

Prod3 33% 18% -

6 REPLIES 6
v-diye-msft
Community Support
Community Support

Hola @gdecome

Lo siento no entender muy bien la lógica.

Prod1 Prod2 Prod3

Prod1 3 2 2

Prod2 2 1 2

Prod3 2 2 0

por ejemplo: si desea calcular el recuento distinto de pedidos cuando solo existe valor de fila&valor de columna, el recuento distinto de orden debe gustar a continuación:

3.PNG

Si desea calcular los recuentos que contienen el valor de fila/valor de columna, los resultados deben ser los siguientes:

4.PNG

¿Podría explicar por favor cómo va en sus resultados esperados?

Community Support Team _ Dina Ye
If this post helps, then please consider Accept it as the solution to help the other members find it more
quickly.

Hola @v-diye-msft , gracias por sus comentarios.

Mi lógica es la siguiente:

  • En la diagonal, el número debe ser el número de pedidos donde el sólo hay un producto:
    Prod1 a 2 (Pedidos 1 y 7) ... Puse 3 por error
    Prod2 a 1 (solo Orden4)
    Prod3 a 0 (no es el producto único en ningún pedido)
  • Para las otras combinaciones, algunos ejemplos:
    Prod1-Prod2 - Prod2-Prod1 --> 2 ... Order2 y Order3 tienen ambos productos
    Prod1-Prod3 - Prod3-Prod1 --> 2 ... Order3 y Order6 tienen ambos productos
    No importa si la Orden tiene más productos, para este conteo sólo necesito saber si ambos están en el orden
  • Para los cálculos (Importe y %) la lógica es la misma teniendo en cuenta el par de productos o el producto solo

Espero que esto se clasifique y, por sus fotos, veo que ya ha hecho algunas pruebas. Muchas gracias por su ayuda.

Hola @v-diye-msft, después de una revisión entiendo mejor los dos cálculos que usted y yo diría que ambos tienen sentido. Lo que estoy pensando como resultado es una combinación de dos. La primera para la diagonal (cuando el producto es el mismo en fila/columna) y la segunda tabla para el resto. ¿Es posible?

Hola @gdecome

No es capaz de combinar las 2 lógicas en un solo cálculo, si desea obtener los recuentos de los cuales sólo tienen elementos prod relacionados, utilizando la siguiente medida:

Measure = var a = SELECTEDVALUE('Table'[Prod])
var b = SELECTEDVALUE('Table 2'[Prod])
var t =DISTINCT( UNION(ROW("Prod",a),ROW("Prod",b)) )
Return COUNTROWS(FILTER(all('Table'[Order]),CALCULATE(var t2=CALCULATETABLE(VALUES('Table'[Prod]),ALLSELECTED('Table'[Prod])) return COUNTROWS ( t2 ) = COUNTROWS ( t )
 && ISEMPTY ( EXCEPT ( t, t2 ) ))))

Si desea obtener los recuentos de los elementos de inclusión de prod, utilice este:

Measure 2 = var t1 = SELECTCOLUMNS(FILTER(ALL('Table'),'Table'[Prod]=SELECTEDVALUE('Table 2'[Prod])),"order",[Order])

Return
CALCULATE(DISTINCTCOUNT('Table'[Order]),INTERSECT(t1,VALUES('Table'[Order]))

)

p.i. para su facilidad.

Community Support Team _ Dina Ye
If this post helps, then please consider Accept it as the solution to help the other members find it more
quickly.

Hola @v-diye-msft , muchas gracias por su apoyo.

harshnathani
Community Champion
Community Champion

HOLA @gdecome ,

Usted puede echar un vistazo a

https://www.youtube.com/watch?v=8PUNpVAiRAE

https://www.youtube.com/watch?v=P7fHvMzM_ZM

https://www.youtube.com/watch?v=z9ttZAZkEhs

https://finance-bi.com/power-bi-basket-analysis/

https://www.daxpatterns.com/basket-analysis/


saludos

Harsh Nathani


Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

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.