Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Necesito calcular cuántos clientes de los que compraron la semana pasada - no compró esta semana.
Tengo una tabla de ventas simple: Fecha, Cliente, Producto, Importe.
Tengo una tabla de tiempo Calendario, pero no hay tabla de atenuación del Cliente (los clientes son identificados por cookies).
Pienso en un enfoque pero que lucha por implementarlo en una medida DAX:
Intenté crear una tabla VAR (por ejemplo, TempTable) que para cada cliente crea dos columnas: las ventas de la semana pasada y las ventas de esta semana, mediante ADDCOLUMNS.
Entonces - Filtrar solo a los clientes que tienen ventas de la semana pasada>0 y a esta semana ventas en blanco ().
El problema es - No puedo llegar a la TempTable nuevas columnas con FILTER, no puedo escribir TempTable[LastWeekSales], porque se trata de una tabla VAR.
He visto muchos ejemplos, (como aquí: https://www.daxpatterns.com/new-and-returning-customers/) pero por lo general usan una tabla Customers Dim y necesito hacerlo sin ella.
Por favor, ayúdenme.
Solved! Go to Solution.
@michaelshparber . durante una semana durante una semana se puede utilizar la semana o la semana de clasificación
Ejemplo
columna en la tabla de fecha/semana
Rango de la semana - RANKX(all('Date'),'Date'[Week Start date],,ASC,Dense)
Medida
Esta semana: CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-max('Date'[Week Rank])))
Last Week ? CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-max('Date'[Week Rank])-1))
Last year WeekTM CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-(max('Date'[Week Rank]) -52)))
Cliente perdido esta semana: Sumx(VALUES(Customer[Customer Id]),if(ISBLANK([This Week ]) && not(ISBLANK([Last Week])) , 1,BLANK()))
Nuevo cliente esta semana: sumx(VALUES(Customer[Customer Id]), if(ISBLANK([Last Week ]) && not(ISBLANK([This Week])) ,1,BLANK()))
Cliente retenido esta semana: if(not(ISBLANK([This Week])) && not(ISBLANK([Last Week])) , 1,BLANK())
Para la retención del cliente Consulte:
https://community.powerbi.com/t5/Community-Blog/Customer-Retention-Part-1-Month-on-Month-Retention/b...
Para Power BI — Semana a semana y WTD
https://medium.com/@amitchandak.1978/power-bi-wtd-questions-time-intelligence-4-5-98c30fab69d3
https://community.powerbi.com/t5/Community-Blog/Week-Is-Not-So-Weak-WTD-Last-WTD-and-This-Week-vs-La...
Hola @michaelshparber , @amitchandak ,
Veo que esta pregunta ya ha sido respondida. Me gustaría compartir la solución que creé por separado con usted para ver si añade algún valor para usted.
Esta es la medida:
___NumberOfCustomerStoppedBuying =
//CONCATENATEX (
SUMX(
SUMMARIZE (
CROSSJOIN ( Customers, 'Date' ),
Customers[Customer],
"s", if(
CALCULATE (
SUM ( Sales[Amount] ),
FILTER (
Sales,
Sales[Date] >= MIN ( 'Date'[Date] )
&& Sales[Date] <= MAX ( 'Date'[Date] )
&& Sales[Customer] = SELECTEDVALUE ( Customers[Customer] )
)
) > 0 , 1,0)
,
"sp", IF(
CALCULATE (
SUM ( Sales[Amount] ),
FILTER (
Sales,
Sales[Date] >= MIN ( 'Date'[Date] )-7
&& Sales[Date] <= MAX ( 'Date'[Date])-7
&& Sales[Customer] = SELECTEDVALUE ( Customers[Customer] )
)
) > 0 , 1,0)
),
if ([s]=0 && [sp]=1,1,0)
// [Customer] & " s:" & [s] & " sp:" & [sp] & "
// "
)
Enlace al archivo.
Mi mensaje de video para usted con la explicación sobre el enfoque:
Si usted considera que esto es una solución también, pls marca como tal. Los pulgares hacia arriba para el esfuerzo son apreciados.
¡Esperando su respuesta!
Saludos amables, Steve.
Proud to be a Super User!
Awesome Keyboard Shortcusts in Power BI, thumbs up if you like the article
My Community Blog Articles (check them out!)
My Blog - Power M code to automatically detect column types -
How to create test data using DAX!
Gracias Steve @stevedep por la explicación detallada que incluye el video.
También se utiliza el enfoque SUMX() que comprueba las condiciones, como @amitchandak .
Fui con @amitchandak solución porque es más sencilla y no requiere m ni crossjoin ni crear una tabla Customers (como he dicho - mis clientes son cookies, así que no quiero molestarme en crear una enorme tabla Customers además de la tabla Sales).
Así que gracias de nuevo!
Si aún así sigues teniendo problemas, problema desconocido.
@michaelshparber . durante una semana durante una semana se puede utilizar la semana o la semana de clasificación
Ejemplo
columna en la tabla de fecha/semana
Rango de la semana - RANKX(all('Date'),'Date'[Week Start date],,ASC,Dense)
Medida
Esta semana: CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-max('Date'[Week Rank])))
Last Week ? CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-max('Date'[Week Rank])-1))
Last year WeekTM CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-(max('Date'[Week Rank]) -52)))
Cliente perdido esta semana: Sumx(VALUES(Customer[Customer Id]),if(ISBLANK([This Week ]) && not(ISBLANK([Last Week])) , 1,BLANK()))
Nuevo cliente esta semana: sumx(VALUES(Customer[Customer Id]), if(ISBLANK([Last Week ]) && not(ISBLANK([This Week])) ,1,BLANK()))
Cliente retenido esta semana: if(not(ISBLANK([This Week])) && not(ISBLANK([Last Week])) , 1,BLANK())
Para la retención del cliente Consulte:
https://community.powerbi.com/t5/Community-Blog/Customer-Retention-Part-1-Month-on-Month-Retention/b...
Para Power BI — Semana a semana y WTD
https://medium.com/@amitchandak.1978/power-bi-wtd-questions-time-intelligence-4-5-98c30fab69d3
https://community.powerbi.com/t5/Community-Blog/Week-Is-Not-So-Weak-WTD-Last-WTD-and-This-Week-vs-La...
SUMX()!
¡Claro, hizo el trabajo!
Gracias @amitchandak
Pero aún así, en general, ¿cómo puedo filtrar una variable de tabla?