March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hola buenas tardes,
Tengo una tabla calculada con la que obtengo en una columna de nombre available si un producto estuvo disponible en una tienda en una determinada fecha como se muestra en la siguiente imagen.
Lo que pretendo obtener los días consecutivos en los que la columna available estuvo en cero ya que con ello obtengo los números de días concecutivos que un producto estuvo en desabasto en una determinada tienda, ya lo he intentando de varias maneras pero no encuentro como conseguir esto, espero me puedan ayudar
Hi, @Syndicate_Admin
Puede probar los siguientes métodos.
Tabla 2:
Table 2 =
Var table2=SUMMARIZE('Table','Table'[retailer_id],'Table'[master_data_id],'Table'[master_product_id],'Table'[Available])
return
FILTER(table2,[Available]=0)
Columna:
Judge =
DATEDIFF([master_data_id]-2,MaxX(FILTER('Table 2',[master_data_id]=EARLIER('Table 2'[master_data_id])-1),[master_data_id]),DAY)
First day =
IF([Judge]<>BLANK(),0,1)
Consecutive days =
VAR last_1_date =
CALCULATE (
MAX ( 'Table 2'[master_data_id] ),
FILTER (
'Table 2',
'Table 2'[master_data_id] <= EARLIER ( 'Table 2'[master_data_id] )
&& [First day] = 1
)
)
VAR sum_ =
CALCULATE (
COUNTROWS ( 'Table 2' ),
FILTER (
'Table 2',
'Table 2'[master_data_id] >= last_1_date
&& 'Table 2'[master_data_id] <= EARLIER ( 'Table 2'[master_data_id] )
)
)
RETURN
IF ( [First day] = 1, 1, sum_ )
Days =
VAR _N1 =
CALCULATE (
MIN ( 'Table 2'[master_data_id] ),
FILTER ( 'Table 2', 'Table 2'[master_data_id] > EARLIER ( 'Table 2'[master_data_id] ) && [First day] = 1 )
)
VAR _N2 =
CALCULATE (
MAX ( 'Table 2'[Consecutive days] ),
FILTER ( 'Table 2', [master_data_id] >= EARLIER ( 'Table 2'[master_data_id] ) && [master_data_id] <= _N1 )
)
VAR _N3 =
CALCULATE (
MAX ( 'Table 2'[Consecutive days] ),
FILTER ( 'Table 2', [master_data_id]= MAX ( 'Table 2'[master_data_id] ) )
)
RETURN
IF (
[First day] = 1
&& _N1 <> BLANK (),
_N2,
IF ( [First day] = 1 && _N1 = BLANK (), _N3 )
)
Date1 = IF([Consecutive days]=1,[master_data_id])
Date2 = IF([Days]<>BLANK(),[Date1]+[Days]-1,BLANK())
period = IF([Date1]<>BLANK(), [Date1]&"-"&[Date2],BLANK())
Tabla 3:
Table 3 =
Var table3=SUMMARIZE('Table 2','Table 2'[retailer_id],'Table 2'[master_product_id],'Table 2'[period],'Table 2'[Days])
return
Filter(table3,[Days]<>BLANK())
¿Es este el resultado que esperas?
Saludos
Equipo de soporte de la comunidad _Charlotte
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hola buenas tardes,
Gracias por su apoyo, si ese es el comportamiento que espero que tenga, únicamente si se ingresa más de un producto en los datos de origen no reconoce los otros productos , si ingreso los datos así
No reconoce el producto con id 2
Hi, @Syndicate_Admin
El resto de los métodos y fórmulas permanecen sin cambios. Es necesario cambiar la fórmula de la sentencia.
Judge =
DATEDIFF (
[master_data_id] - 2,
MAXX (
FILTER (
'Table 2',
[master_data_id]
= EARLIER ( 'Table 2'[master_data_id] ) - 1
&& [retailer_id] = EARLIER ( 'Table 2'[retailer_id] )
&& [master_product_id] = EARLIER ( 'Table 2'[master_product_id] )
),
[master_data_id]
),
DAY
)
¿Es este el resultado que esperabas?
Saludos
Equipo de soporte de la comunidad _Charlotte
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hola buenas tardes,
Funciona perfecto, ahora mi único problema está siendo unificar en una sola medida todos los cálculos, ya que todo este cálcula va a ser utilizado dentro de una medida que se va a mostrar en el dashboard, teniendo la tabla3 calculada voy a mostrar en el return un max, min y varias cosas a parte, la razón por la que se hace así es porque la medida tiene que ser dinamica y el resultado mostrado tiene que variar en función de los filtros seleccionados.
El problema que estoy teniendo es cuando agrega una columna con la medida sum_
El avance de la medida es este:
Hi, @Syndicate_Admin
¿Qué tipo de resultados espera obtener de esta columna de Sum?
¿Es 292 la salida que esperas?
Saludos
Equipo de soporte de la comunidad _Charlotte
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Lo que estoy intentando hace es unir todas las medidas que nos compartió en el archivo de nombre
No había analizado que es lo que hacen de manera particular las medidas, yo supongo que si seria 292 lo que tiene que devolver, pero estos últimos dos cálculos corresponde a la columna Consecutive days del archivo que habia compartido.
Hi, @Syndicate_Admin
Puede intentar utilizar las columnas calculadas después de crear la tabla. Escribirlo todo en la función de la tabla tal como está ahora cometerá errores aritméticos contextuales.
Saludos
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.