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
Anonymous
Not applicable

Devolver el producto anterior de un cliente de devolución como columna calculada

Hola a todos

Esta comunidad me ha ayudado a mejorar mis habilidades analíticas, DAX y power BI en general tanto que pronto espero poder ayudar a otros miembros. Por ahora... Una vez más necesito tu ayuda para conseguir algo.

Tengo una tabla con las siguientes columnas: ClientID, Fecha de inicio, Fecha de finalización, Producto, Tipo de producto e Intensidad del producto

CLIENTIDFECHA DE INICIOFECHA DE FINALIZACIÓNProductoTIPO DE PRODUCTOINTENSIDAD DEL PRODUCTO
100011-1-20191-2-20195a51
100031-3-20191-4-20195B52
100041-3-20191-4-20194A41
100011-5-20191-6-20195C53
100041-5-20191-7-20194A41

Necesito agregar una columna que devuelva el PRODUCTO anterior del cliente. Es posible que no haya ningún producto anterior porque el cliente no es (todavía) un cliente de devolución.

Los valores de las columnas de fecha no son tan ordenados en los datos reales como en los datos de ejemplo, pero para los clientes devueltos la nueva FECHA DE INICIO siempre es posterior a la FECHA FINAL anterior.

Esto es lo que debería parecer:

CLIENTIDFECHA DE INICIOFECHA DE FINALIZACIÓNProductoTIPO DE PRODUCTOINTENSIDAD DEL PRODUCTOPRODUCTO ANTERIOR
100011-1-20191-2-20195a51nulo (o valor de relleno)
100031-3-20191-4-20195B52nulo (o valor de relleno)
100041-3-20191-4-20194A41nulo (o valor de relleno)
100011-5-20191-6-20195C535a
100041-5-20191-7-20194A414A

¿Alguna sugerencia? ¡Gracias!

2 REPLIES 2
Greg_Deckler
Super User
Super User

Vea mi artículo sobre el tiempo medio entre el error (MTBF) que utiliza EARLIER: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p/3395...

Por lo tanto, en su caso algo como:

Previous Product Column =
  VAR __PreviousDate =
    MAXX(
      FILTER(
        'Table',
        [CLIENTID] = EARLIER([CLIENTID]) &&
          [START DATE] < EARLIER([START DATE])
      ),
      [START DATE]
    )
RETURN
  MAXX(
    FILTER(
        'Table',
        [CLIENTID] = EARLIER([CLIENTID]) &&
          [START DATE] < __PreviousDate
    ),
    [PRODUCT]
  )
    


@ 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!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Hola Greg,

Gracias por su rápida respuesta! ¡Seguramente estudiaré tu artículo sobre MTBF! He intentado poner en práctica su sugerencia. Es un gran paso en la dirección correcta, aunque por desgracia no es del todo adecuado para su propósito.

Cuando solo hay dos filas para un cliente que regresa (lo que significa que solo una vez), el DAX no parece devolver el producto anterior.

Haciendo zoom en un caso específico, obtengo los siguientes resultados:

CLIENTIDfecha de iniciofecha finalproductoTIPO DE PRODUCTODENSIDAD DE PRODUCTOCOLUMNA PRODUCTO ANTERIOR
2259522-2-20197-7-20195G57
225958-7-201930-11-20195G57
2259518-10-201922-11-20195D545D
225951-12-201931-5-20205D545D

Idealmente, la segunda fila debería devolver '5G', al igual que la tercera fila, la cuarta y última fila debería devolver 5D (como lo hace ahora).

Cualesquier ideas/sugerencias qué hacer?

Gracias de antemano!

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.