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

Valores que faltan por semana: devuelve el último valor activo

Chicos im encontiéndose con un problema en el trabajo aquí y a través de horas de googling y video-watching todavía tengo que encontrar la respuesta.

En pocas palabras:

Tengo semanas con un cierto precio para un artículo.

Esto sólo se muestra en el conjunto de datos si hay un cambio de precio.

Si no hay ningún cambio de precio, entonces no se muestra en los datos.

Ejemplo:

Semana 1 - 1,83 EUR

Semana 3 - 1,85 EUR

Semana 6 - 1,86 EUR

así que la semana 2, 4, 5 están vacías.

Sin embargo, quiero crear una medida donde se mostrará el último precio para esa semana.

Semana 1 - 1,83 EUR

Semana 2 - 1,83 EUR

Semana 3 - 1,85 EUR

Semana 4 - 1,85 EUR

Semana 5 - 1,85 EUR

Semana 6 - 1,86 EUR

Los precios también están en el nivel de fecha, pero quiero establecer un precio por semana en lugar de día.

Cualquier ayuda es muy apreciada aquí!

1 ACCEPTED SOLUTION
v-rzhou-msft
Community Support
Community Support

Hola @Oxbk

Si tiene un gran número de semanas, es posible que deba usar dax para crear una tabla de la semana separate.

Y la medida de

WeekNum = SUBSTITUTE('Price'[Week],"Week ","")

Cambie el tipo de columna de texto a número entero.

A continuación, construya Allweek Table.

AllWeek = ADDCOLUMNS(GENERATESERIES(MIN('Price'[WeekNum]),MAX('Price'[WeekNum]),1),"Week","Week"&" "&[Value])

Measurez:

Price = 
VAR _P1 =
    CALCULATE (
        MAX ( 'Price'[Price] ),
        FILTER ( 'Price', 'Price'[Week] = MAX ( AllWeek[Week] ) )
    )
VAR _MaxNum =
    MAXX (
        FILTER ( ALL ( 'Price' ), 'Price'[WeekNum] <= MAX ( AllWeek[Value] ) ),
        'Price'[WeekNum]
    )
VAR _P2 =
    CALCULATE (
        MAX ( 'Price'[Price] ),
        FILTER ( 'Price', 'Price'[WeekNum] = _MaxNum )
    )
RETURN
    IF ( _P1 = BLANK (), _P2, _P1 )

Resultado:

1.png

Puede descargar el archivo pbix desde este enlace: Faltan valores por semana - devolver el último valor activo

Saludos

Rico Zhou

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

3 REPLIES 3
v-rzhou-msft
Community Support
Community Support

Hola @Oxbk

Si tiene un gran número de semanas, es posible que deba usar dax para crear una tabla de la semana separate.

Y la medida de

WeekNum = SUBSTITUTE('Price'[Week],"Week ","")

Cambie el tipo de columna de texto a número entero.

A continuación, construya Allweek Table.

AllWeek = ADDCOLUMNS(GENERATESERIES(MIN('Price'[WeekNum]),MAX('Price'[WeekNum]),1),"Week","Week"&" "&[Value])

Measurez:

Price = 
VAR _P1 =
    CALCULATE (
        MAX ( 'Price'[Price] ),
        FILTER ( 'Price', 'Price'[Week] = MAX ( AllWeek[Week] ) )
    )
VAR _MaxNum =
    MAXX (
        FILTER ( ALL ( 'Price' ), 'Price'[WeekNum] <= MAX ( AllWeek[Value] ) ),
        'Price'[WeekNum]
    )
VAR _P2 =
    CALCULATE (
        MAX ( 'Price'[Price] ),
        FILTER ( 'Price', 'Price'[WeekNum] = _MaxNum )
    )
RETURN
    IF ( _P1 = BLANK (), _P2, _P1 )

Resultado:

1.png

Puede descargar el archivo pbix desde este enlace: Faltan valores por semana - devolver el último valor activo

Saludos

Rico Zhou

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

Hola @RicoZhou,

gracias por la ayuda. He podido reconstruir su ejemplo.

Ahora hay un nivel adicional de complejidad en esto.

Los datos también están en el nivel de artículo y de cliente.

¿Cómo puedo trabajar esto en su ejemplo?

Datos de ejemplo:

Semana - artículo - cliente - precio

Semana 1 - artículo a - cust 1 - 1,83

Semana 1 - artículo a - cust 2 - 1,85

Semana 2 - artículo b - cust 1 - 2,50

Semana 2 - artículo a - cust 2 - 1,86

Semana 3 - artículo a - cust 1 - 1,85

Semana 5 - artículo b - cust 1 - 2,60

Semana 6 - artículo a - cust 1 - 1,86

etcetera.

A partir de esto quiero ser capaz de mirar el precio por cliente y calcular (usando el precio de coste por cliente) el margen de cada artículo por semana.

amitchandak
Super User
Super User

@Oxbk , Crear una semana separada tabe con todas las semanas y probar una fórmula como

calculate(lastnonblankvalue(Week[Week], max(Table[Value])), filter(allselected(Week), Week[Week] <-Max(Week[week])))

Proporcione sus comentarios y consejos para nuevos videos
Tutorial Series Dax Vs SQL Direct Query PBI Consejos
Apreciamos tus Felicitaciones.

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.