cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Administrator
Administrator

Análisis de cesta de mercado - encontrar los ingresos de los clientes que compraron el combo de productos

Hola a todos,

Agradezco que alguien pueda ayudarme en esto.

Actualmente estoy haciendo un proyecto sobre análisis de cesta de la compra (también llamado análisis de asociación de productos).

El propósito es encontrar combinaciones de productos que los clientes compran y que potencialmente podemos vender a futuros clientes. Por ejemplo, a partir de nuestros datos, es posible que hayamos visto que había un número de clientes que compraban leche (producto A) y cookies (producto B) de nosotros. Esto significaría que podemos vender galletas a clientes que nos compren solo leche en el futuro.

En los casos habituales, este análisis se haría mediante la búsqueda del NÚMERO de clientes que compran ambos productos (referencia: aquí).

Por ejemplo, 20 clientes han comprado leche, 13 clientes han comprado galletas, intersecándolas con 7 clientes comprados ambos productos, etc.

Sin embargo, en mi caso, quiero encontrar los ingresos recibidos de los clientes que han comprado ambos productos.

Por ejemplo, 20 clientes han gastado $20 comprando leche, 13 clientes han gastado $13 comprando galletas, intersecándolas con 7 clientes han gastado $14 comprando ambos productos.

Mi conjunto de datos está estructurado de tal manera que es por cliente y transacciones y solo 1 producto por transacción.

Consulte a continuación la muestra simplificada. (Por supuesto, hay más de 2 productos en mi fuente de datos.)

ClienteTransactionNoProductoIngresos
Aaa1Leche20
Bbb2Galletas10
Bbb3Leche16
Ccc4Galletas8
Ddd5Galletas6
Ddd6Leche24

He intentado adaptar las fórmulas y la guía de análisis de aquí y de aquí.

Screenshot 2021-01-21 171616.png

Con la medida siguiente, podría replicar esta tabla anterior:

ComprdBoth ?

VAR productrow - VALUES(data[Client])

VAR productcol á CALCULATETABLE(VALUES(data[Client]),ALL(data), TREATAS(VALUES('Product dim column'[Product]),data[Product]))

devolución

COUNTROWS(INTERSECT(productrow, productcol)))

Sin embargo, hasta ahora no puedo obtener los ingresos recibidos. La medida que he utilizado es la siguiente (un montón de texto burbujo porque seguí edting y probando):

RevPurchasedBoth ?

VAR productrow - SUMX(SUMMARIZE(data, data[Client], data[Product]),CALCULATE(SUM(data[Revenue])))

VAR productcol - SUMX(SUMMARIZE(data, data[Client], data[Product]),CALCULATE(SUM(data[Revenue])))

TREATAS(VALUES('Product dim col'[Product]),data[Product]))

VAR tow1 ? VALUES('Producto fila tenue'[Producto])

VAR tow2 - VALUES('Product dim col'[Product])

RETURN CALCULATE(productrow+productcol, INTERSECT(tow1,tow2))

CALCULATE(SUM(data[Revenue]),FILTER(ALL(data), CONTAINS(VALUES('Product dim row'[Product]), 'Product dim row'[Product], data[Product])), FILTER(ALL(data), CONTAINS(VALUES('Product dim col'[Product]), 'Product dim col'[Product]], data[Product]))

Esto es lo que he conseguido:
Screenshot 2021-01-21 170431.png

Apreciar la opinión de cualquier gurú de PBI sobre dónde he ido mal o puntándome al recurso / dirección correcta !! Muchas gracias.

1 ACCEPTED SOLUTION

Actualización2:

¡Tengo los valores que necesitaba!

RevPurchaseBoth ?
VAR productrowTM VALUES(data[Client])
VAR productcol á CALCULATETABLE(VALUES(data[Client]), ALL('Product dim row'),
TREATAS(VALUES('Product dim col'[Product]),data[Product]))
devolución
CALCULATE(data[revrow]+data[revcol], INTERSECT(productrow,productcol))

revrow - SUM(data[Revenue])

revcol á CALCULATE(data[revrow],ALL('Product dim row'), TREATAS(VALUES('Product dim col'[Product]),data[Product]))

Honestamente, no sé por qué funciona ahora cuando creé 2 medidas separadas (revrow y revcol). No funcionó cuando los puse como VAR en la medida RevPurchasedBoth. ¡Agradezco que alguien pueda explicarlo!

View solution in original post

2 REPLIES 2
Administrator
Administrator

actualizar:

Estoy tan cerca de obtener los valores correctos!!

He editado mi medida para esto:

RevPurchaseBoth ?
VAR productrowTM VALUES(data[Client])
VAR productcol á CALCULATETABLE(VALUES(data[Client]), ALL('Product dim row'),
TREATAS(VALUES('Product dim col'[Product]),data[Product]))

devolución
CALCULATE(SUM(data[Revenue]), INTERSECT(productrow,productcol))
Las celdas se muestran correctamente (en blanco donde se supone que está en blanco, rellenada donde se supone que se rellena), pero los valores de las celdas están equivocados. Ahora sólo muestran los ingresos de la base de producto. Lo que necesito es la suma de los ingresos tanto de productrow como de productcol.
¿Alguien sabe cómo resolver este error?

Actualización2:

¡Tengo los valores que necesitaba!

RevPurchaseBoth ?
VAR productrowTM VALUES(data[Client])
VAR productcol á CALCULATETABLE(VALUES(data[Client]), ALL('Product dim row'),
TREATAS(VALUES('Product dim col'[Product]),data[Product]))
devolución
CALCULATE(data[revrow]+data[revcol], INTERSECT(productrow,productcol))

revrow - SUM(data[Revenue])

revcol á CALCULATE(data[revrow],ALL('Product dim row'), TREATAS(VALUES('Product dim col'[Product]),data[Product]))

Honestamente, no sé por qué funciona ahora cuando creé 2 medidas separadas (revrow y revcol). No funcionó cuando los puse como VAR en la medida RevPurchasedBoth. ¡Agradezco que alguien pueda explicarlo!

View solution in original post

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.