Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
ChumaAmako
Helper I
Helper I

Recuento diferenciado basado en expresiones de filtro

Querida comunidad,

Tengo un modelo con una tabla Cuentas, Pedidos, Detalles del pedido, Detalles del producto y Calendario, con todas las relaciones en su lugar. Por favor, descargue el archivo pbix anónimo AQUI.

Tengo un desafío para crear medidas que calculan lo siguiente en la Tabla de pedidos:

  1. El número de consumidores pasivos; Este recuento de los consumidores únicos que no han comprado en los últimos 28 días, pero ha comprado en los últimos 35 días y tiene al menos 1 pedido anterior.
  2. El número de consumidores activos; Este recuento de los consumidores únicos que no han comprado en los últimos 28 días. Para esto, probé esta fórmula;
    No de usuarios activos: CALCULATE(DISTINCTCOUNT('Order Table'[User Email]),FILTER('Order Table',DATESBETWEEN('Calendar'[Date],MAX('Order Table'[Order Start Date])-28,MAX('Order Table'[Order Start Date])))
    Pero obtengo un error al mostrar el número en un objeto visual (consulte el archivo pbix)
    Cualquier ayuda será muy apreciada.
2 ACCEPTED SOLUTIONS
Greg_Deckler
Super User
Super User

@ChumaAmako - Yo lo intentaría de esta manera:

No of Active Users =
  VAR __MaxDate = MAXX(ALL('Order Table'),[Order Start Date])
  VAR __MinDate = __MaxDate - 28
  VAR __Table = FILTER(ALL('Order Table'),[Order Start Date]>=__MinDate)
RETURN
  COUNTROWS(DISTINCT(SELECTCOLUMNS(__Table,"Email",[User Email])))


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

v-kelly-msft
Community Support
Community Support

Hola @ChumaAmako ,

Cree 2 medidas como se indica a continuación:

_Count active = CALCULATE(COUNT('Accounts Table'[Email Address]),FILTER(ALL('Accounts Table'),'Accounts Table'[Email Address]=MAX('Accounts Table'[Email Address])&&'Accounts Table'[Days Since Last Purchase]<=28))
_No of Active Users = 

CALCULATE(DISTINCTCOUNT('Accounts Table'[Email Address]),FILTER('Accounts Table','Accounts Table'[_Count active]>=1)
)

Y verás:

Annotation 2020-08-31 175509.png

Para el archivo .pbix relacionado, pls ver adjunto.

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

View solution in original post

4 REPLIES 4
v-kelly-msft
Community Support
Community Support

Hola @ChumaAmako ,

Cree 2 medidas como se indica a continuación:

_Count active = CALCULATE(COUNT('Accounts Table'[Email Address]),FILTER(ALL('Accounts Table'),'Accounts Table'[Email Address]=MAX('Accounts Table'[Email Address])&&'Accounts Table'[Days Since Last Purchase]<=28))
_No of Active Users = 

CALCULATE(DISTINCTCOUNT('Accounts Table'[Email Address]),FILTER('Accounts Table','Accounts Table'[_Count active]>=1)
)

Y verás:

Annotation 2020-08-31 175509.png

Para el archivo .pbix relacionado, pls ver adjunto.

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

Greg_Deckler
Super User
Super User

@ChumaAmako - Yo lo intentaría de esta manera:

No of Active Users =
  VAR __MaxDate = MAXX(ALL('Order Table'),[Order Start Date])
  VAR __MinDate = __MaxDate - 28
  VAR __Table = FILTER(ALL('Order Table'),[Order Start Date]>=__MinDate)
RETURN
  COUNTROWS(DISTINCT(SELECTCOLUMNS(__Table,"Email",[User Email])))


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Hola @Greg_Deckler muchas gracias por la solución.

Cualquier idea sobre cómo puedo acercarme a la segunda medida

El número de consumidores pasivos; Este recuento de los consumidores únicos que no han comprado en los últimos 28 días, pero ha comprado en los últimos 35 días y tiene al menos 1 pedido anterior.

@ChumaAmako - Aquí hay una variación en el tema para los uers pasivos.

No of Passive Users =
  VAR __MaxDate = MAXX(ALL('Order Table'),[Order Start Date])
  VAR __MinDate = __MaxDate - 28
  VAR __MinDate2 = __MaxDate - 35
  VAR __Table1 = SELECTCOLUMNS(FILTER(ALL('Order Table'),[Order Start Date]<__MinDate1),"Email",[User Email]) // users who have bought > 35 days ago.
  VAR __Table2 = SELECTCOLUMNS(FILTER(ALL('Order Table'),[Order Start Date]>=__MinDate1 && [Order Start Date]<__MinDate),"Email",[User Email]) //users bought between 28-35 days agao
  VAR __Table3 = SELECTCOLUMNS(FILTER(ALL('Order Table'),[Order Start Date]>=__MinDate && [Order Start Date]<=__MaxDate),"Email",[User Email]) // users bought in last 28 days
  VAR __Table = INTERSECT(EXCEPT(__Table2,Table3),__Table1)
RETURN
  COUNTROWS(DISTINCT(SELECTCOLUMNS(__Table,"Email",[User Email])))


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors