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

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

Reply
Annu_choubey
Microsoft Employee
Microsoft Employee

¿Cómo escribir medida para obtener el valor incremental para el valor que falta para una fecha determinada?

Hola expertos,

Supongamos que tengo debajo de la tabla en la que tengo algún valor faltante en pocos días.

Scenerio 1

Día Valor

día 1 3
día2
day3
day4
día5
day6
día 7 8


Como vemos arriba hemos perdido valor desde el día 2 hasta el día 6.

Necesito llenar este espacio vacío con algún valor basado en mi condición. Así que condición ser como
Condición 1:(Diferencia del valor máximo-min/countofblankvalues+1)
(Por ejemplo: de scenerio 1 tabla el valor máximo es 8 y el valor mínimo es 3 y countofblanks es: 5-3/5+1-0.83 )

Condición 2: El valor de salida de la condición 1 debe añadirse a todos los valores en blanco (valor de primera en blanco) )
(Por ejemplo: la salida de condición 1 es : 0.83 + valor del día 1)
día 1---3
día 2---3+0,83 x 3,83 (Día 1 +valor de condición 1 : 0,83)
día 3---3.83+0.83-4.66 (Día 2+condición 1 valor : 0.83)
día4---3,83+0,83 a 4,66 (Día 3 +condición 1 valor : 0,83)
día 5---5.5+0.83-6.3 (Día 4 +condición 1 valor : 0.83)
día6---6.3+0.83-7.13 (Día 5 +condición 1 valor : 0.83)
día 7---8

Condición 3: if( Valor Day1 <día 7 valor ,condición 2,1)
(Por ejemplo: el valor del día 1 es 3 y el valor del día 7 es 8 y luego 3<7 y luego la conición 2 ,1)


¿Cómo escribir una medida basada en la condición anterior en Power BI?


Gracias
Annu

1 ACCEPTED SOLUTION

@vasu538

Por favor, pruebe esta medida:

Missing Fill =
VAR _CURVALUE = [Metric Total]
VAR _CURRDAY =
    SELECTEDVALUE ( DateTable[Date] )
VAR _PREVDAY =
    LASTNONBLANK (
        FILTER ( ALLSELECTED ( DateTable[Date] ), DateTable[Date] < _CURRDAY ),
        [Metric Total]
    )
VAR _NEXTDAY =
    FIRSTNONBLANK (
        FILTER ( ALLSELECTED ( DateTable[Date] ), DateTable[Date] > _CURRDAY ),
        [Metric Total]
    )
VAR _PREVAL =
    CALCULATE ( [Metric Total], DateTable[Date] = _PREVDAY, ALL ( DateTable ) )
VAR _NEXTVAL =
    CALCULATE ( [Metric Total], DateTable[Date] = _NEXTDAY, ALL ( DateTable ) )
VAR _BLANKS =
    DATEDIFF ( _PREVDAY, _NEXTDAY, DAY )
VAR _DIFF =
    DIVIDE ( _NEXTVAL - _PREVAL, _BLANKS )
VAR _BLANKINC =
    COUNTROWS (
        FILTER (
            ALLSELECTED ( DateTable[Date] ),
            DateTable[Date] < _CURRDAY
                && DateTable[Date] >= _PREVDAY
        )
    )
VAR _INCREMENT =
    CALCULATE ( [Metric Total], DateTable[Date] = _PREVDAY ) + ( _DIFF * _BLANKINC )
RETURN
    IF (
        ISBLANK ( _CURVALUE ),
        IF ( ISBLANK ( _PREVAL ), _NEXTVAL, _INCREMENT ),
        _CURVALUE
    )

________________________

Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla

Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂

Youtube Linkedin

Did I answer your question? Mark my post as a solution! and hit thumbs up


Subscribe and learn Power BI from these videos

Website LinkedIn PBI User Group

View solution in original post

9 REPLIES 9
Fowmy
Super User
Super User

@Annu_choubey

Reemplaqué el DAY en su tabla con fechas reales, espero que sea el caso en la realidad.

Aquí está la medida:

Missing Fill = 

VAR _CURVALUE = SELECTEDVALUE(Table1[Value])
VAR _CURRDAY = SELECTEDVALUE(Table1[Day])
VAR _PREVDAY = MAXX( FILTER(ALL(Table1),Table1[Day] < _CURRDAY && Table1[Value] <> BLANK()), Table1[Day])
VAR _NEXTDAY =MINX( FILTER(ALL(Table1),Table1[Day] > _CURRDAY && Table1[Value] <> BLANK()), Table1[Day])
VAR _PREVAL = CALCULATE( SUM(Table1[Value]), Table1[Day] = _PREVDAY,ALL(Table1))
VAR _NEXTVAL = CALCULATE( SUM(Table1[Value]), Table1[Day] = _NEXTDAY,ALL(Table1))
VAR _BLANKS = DATEDIFF(_PREVDAY,_NEXTDAY,DAY)
VAR _DIFF =  DIVIDE(_NEXTVAL - _PREVAL, _BLANKS )
VAR _BLANKINC = COUNTROWS( FILTER(ALL(Table1),Table1[Day] < _CURRDAY && Table1[Day] >= _PREVDAY))
VAR _INCREMENT = MAXX( FILTER(ALL(Table1),Table1[Day] < _CURRDAY && Table1[Value] <> BLANK()), Table1[Value]) + _DIFF * _BLANKINC

RETURN
IF( 
    ISBLANK(_CURVALUE),
   _INCREMENT,
    _CURVALUE
)


Salida esperada:

Fowmy_0-1601545808005.png

________________________

Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla

Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂

Youtube Linkedin



Did I answer your question? Mark my post as a solution! and hit thumbs up


Subscribe and learn Power BI from these videos

Website LinkedIn PBI User Group

Anonymous
Not applicable

Hola Fowmy,

Gracias por la respuesta rápida. Estoy tratando de implementar la misma cosa, pero no está funcionando en mi pbix . Se adjunta el archivo pbix . ¿Puedes ayudarme en estos ?

Archivo Pbix : https://1drv.ms/u/s!Au-aOkl1BoHugijnugHCN0fzY8jq?e=DgtBAa

Gracias de antemano.

@vasu538@Annu_choubey

Modifiqué la medida en función del modelo de su archivo. Por favor, compruébos ahora.

Puede descargar el archivo: HERE



Missing Fill = 
VAR _CURVALUE = [Metric Total]
VAR _CURRDAY = SELECTEDVALUE(DateTable[Date])
VAR _PREVDAY = MAXX( FILTER(ALLSELECTED(DateTable[Date]),DateTable[Date] < _CURRDAY && [Metric Total] <> BLANK()), DateTable[Date])
VAR _NEXTDAY = MINX( FILTER(ALLSELECTED(DateTable[Date]),DateTable[Date] > _CURRDAY && [Metric Total] <> BLANK()), DateTable[Date])
VAR _PREVAL = CALCULATE( [Metric Total], DateTable[Date]= _PREVDAY,ALL(DateTable))
VAR _NEXTVAL = CALCULATE([Metric Total], DateTable[Date] = _NEXTDAY,ALL(DateTable))
VAR _BLANKS = DATEDIFF(_PREVDAY,_NEXTDAY,DAY)
VAR _DIFF =  DIVIDE(_NEXTVAL - _PREVAL, _BLANKS )
VAR _BLANKINC = COUNTROWS( FILTER(ALLSELECTED(DateTable[Date]),DateTable[Date] < _CURRDAY && DateTable[Date] >= _PREVDAY))
VAR _INCREMENT =  CALCULATE([Metric Total], DateTable[Date] =_PREVDAY) + (_DIFF * _BLANKINC)
RETURN
IF( 
    ISBLANK(_CURVALUE),
   _INCREMENT,
    _CURVALUE
)

Medida adicional:

Metric Total = SUM(Metrics[MetricValue])

________________________

Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla

Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂

Youtube Linkedin

Did I answer your question? Mark my post as a solution! and hit thumbs up


Subscribe and learn Power BI from these videos

Website LinkedIn PBI User Group

Anonymous
Not applicable

Hola Fowmy,

Gracias por una respuesta rápida. Está funcionando como se esperaba, pero en este caso a continuación, ¿cómo podemos llenar todos los valores?

( para Ex: sólo tenemos valor de fecha (valor métrico para 9/10/2020) entre todas las fechas como a continuación, entonces necesitamos llenar todos los valores con ese valor ?

cp.PNG

Thannks Por adelantado

@vasu538

En este escenario, ha filtrado el nombre del activo por AC y solo hay en el valor 9/10/2020. Así que dime cómo quieres que se rellenen los valores para las fechas anteriores al 9/10/2020, quiero decir, ¿cuál es la lógica? Mejor proporcionar un ejemplo.

Puesto que no hay ningún valor después de esa fecha, el mismo valor se repite hasta el final de la fecha del calendario.

________________________

Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla

Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂

Youtube Linkedin

Did I answer your question? Mark my post as a solution! and hit thumbs up


Subscribe and learn Power BI from these videos

Website LinkedIn PBI User Group

Anonymous
Not applicable

Hola Fowmy

Si el valor de la métrica es 0, entonces no funciona como se esperaba. Me han aplicado los filtros en el archivo PBIX.

Filtros:

Activo: Perfil

manme:teanet

Aquí está el archivo:

https://1drv.ms/u/s!Au-aOkl1BoHugijnugHCN0fzY8jq?e=9TWQct

Gracias de antemano

@vasu538

¿Cuál debe ser la condición para cero?


Pruebe el siguiente cambio después de la parte RETURN

IF( 
    ISBLANK(_CURVALUE) || _CURVALUE = 0,
    IF( ISBLANK(_PREVAL) , _NEXTVAL ,_INCREMENT),
    _CURVALUE
)



________________________

Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla

Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂

Youtube Linkedin

Did I answer your question? Mark my post as a solution! and hit thumbs up


Subscribe and learn Power BI from these videos

Website LinkedIn PBI User Group

Anonymous
Not applicable

Hola Fowmy,

Nuestra medida actual trabajando todos los casos excepto donde lastnonblankvalue es 0 . He explicado a continuación con el ejemplo .

Los valores de llenado deben ser de valor máximo a mínimo.

Tabla de muestras

VALOR DE FECHA

Día 1 10

Día 2

Día 3

Día 4 0

Ps: Los valores de llenado deben ser de valor máximo a mínimo (10 -0)

Si lastnonblankvalue (Day4) es 0 entonces debemos disminuir el valor

Necesito llenar este espacio vacío con algún valor basado en mi condición. Así que condición ser como
Condición 1:(Diferencia del valor máximo-min/countofblankvalues+1)
(Por ejemplo: de scenerio 1 tabla el valor máximo es 10 y el valor mínimo es 0 y countofblanks es: 10-0/2+1-3.3

Condición 2: El valor de salida de la condición 1 debe restarse a todos los valores en blanco (valor de primera en blanco) )
(Por ejemplo: la salida de la condición 1 es : 3.3 - valor del día 1)
Día 1 - 10

Día 2 -10 (valor del día 1)-3,3 x 6,7

día 3 - 6.7 (valor del día 2)-3.3-3.4

Día 4 - 0

por encima de scenerio no está funcionando en nuestra medida actual, esperar que todos los casos deben funcionar como se esperaba.

Ejemplo del modelo

Actualmente faltan reajustes de medida de relleno por debajo de los valores, pero los valores esperados se escriben en color azul.

Capture.PNG

Aquí está el camino : https://1drv.ms/u/s!Au-aOkl1BoHugijnugHCN0fzY8jq?e=xDyQXq

Por favor, hágamelo saber si necesita alguna información.

Gracias de antemano.

@vasu538

Por favor, pruebe esta medida:

Missing Fill =
VAR _CURVALUE = [Metric Total]
VAR _CURRDAY =
    SELECTEDVALUE ( DateTable[Date] )
VAR _PREVDAY =
    LASTNONBLANK (
        FILTER ( ALLSELECTED ( DateTable[Date] ), DateTable[Date] < _CURRDAY ),
        [Metric Total]
    )
VAR _NEXTDAY =
    FIRSTNONBLANK (
        FILTER ( ALLSELECTED ( DateTable[Date] ), DateTable[Date] > _CURRDAY ),
        [Metric Total]
    )
VAR _PREVAL =
    CALCULATE ( [Metric Total], DateTable[Date] = _PREVDAY, ALL ( DateTable ) )
VAR _NEXTVAL =
    CALCULATE ( [Metric Total], DateTable[Date] = _NEXTDAY, ALL ( DateTable ) )
VAR _BLANKS =
    DATEDIFF ( _PREVDAY, _NEXTDAY, DAY )
VAR _DIFF =
    DIVIDE ( _NEXTVAL - _PREVAL, _BLANKS )
VAR _BLANKINC =
    COUNTROWS (
        FILTER (
            ALLSELECTED ( DateTable[Date] ),
            DateTable[Date] < _CURRDAY
                && DateTable[Date] >= _PREVDAY
        )
    )
VAR _INCREMENT =
    CALCULATE ( [Metric Total], DateTable[Date] = _PREVDAY ) + ( _DIFF * _BLANKINC )
RETURN
    IF (
        ISBLANK ( _CURVALUE ),
        IF ( ISBLANK ( _PREVAL ), _NEXTVAL, _INCREMENT ),
        _CURVALUE
    )

________________________

Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla

Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂

Youtube Linkedin

Did I answer your question? Mark my post as a solution! and hit thumbs up


Subscribe and learn Power BI from these videos

Website LinkedIn PBI User Group

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

February Power BI Update Carousel

Power BI Monthly Update - February 2026

Check out the February 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.