cancel
Showing results for 
Search instead for 
Did you mean: 

Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.

Reply
FernandoHern12
New Member

Rellenar columna con último valor, sólo si se cumple condición.

Hola a todos, espero alguien pueda arientarme sobre lo siguiente:

Tengo un conjunto de datos que se ven de la siguiente manera,

SemanaSales1Sales2Sales3
1912 4
20 3411
21   
22   
221041

Cómo podran darse cuenta en casi todas las semanas hay al menos un campo vacío; esto no afecta en lo absoluto en el ánalisis.

Sin ambargo, en semana 21 y 22 las tres columnas se encuentran vacías, es aquí en dónde tengo el problema. Me gustaría que las filas que cumplan con la condición de tener las tres columnas vacías, se rellenaran con los valores de la semana anterior. Esto 3 nuevas columnas finales.

El resultado esperado es el siguiente:

SemanaSales1Sales2Sales3Sales1NSales2NSales3N
1912 412 4
20 3411 3411
21    3411
22    3411
22104110411

Otro resultado aceptable es el siguiente:

SemanaSales1Sales2Sales2
1912 4
20 3411
21 3411
22 3411
2210411

Espero alguien me pueda orientar sobre la solución a seguir. Saludos. 

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@FernandoHern12

Puede agregar estas columnas calculadas a la tabla. Las últimas tres columnas son similares. Solo necesita modificar la columna de la tienda de ventas a la que hace referencia.

Flag = IF(ISBLANK('Table (2)'[Sales_Store1]) && ISBLANK('Table (2)'[Sales_Store2]) && ISBLANK('Table (2)'[Sales_Store3]), 0, 1)
NewSales_Store1 = IF('Table (2)'[Flag] = 1, 'Table (2)'[Sales_Store1], 
var _previousWeek = MAXX(FILTER('Table (2)','Table (2)'[Week] < EARLIER('Table (2)'[Week]) && 'Table (2)'[Flag] = 1),'Table (2)'[Week])
var _previousSales = MAXX(FILTER('Table (2)','Table (2)'[Week] = _previousWeek), 'Table (2)'[Sales_Store1])
return _previousSales)
NewSales_Store2 = IF('Table (2)'[Flag] = 1, 'Table (2)'[Sales_Store2], 
var _previousWeek = MAXX(FILTER('Table (2)','Table (2)'[Week] < EARLIER('Table (2)'[Week]) && 'Table (2)'[Flag] = 1),'Table (2)'[Week])
var _previousSales = MAXX(FILTER('Table (2)','Table (2)'[Week] = _previousWeek), 'Table (2)'[Sales_Store2])
return _previousSales)
NewSales_Store3 = IF('Table (2)'[Flag] = 1, 'Table (2)'[Sales_Store3], 
var _previousWeek = MAXX(FILTER('Table (2)','Table (2)'[Week] < EARLIER('Table (2)'[Week]) && 'Table (2)'[Flag] = 1),'Table (2)'[Week])
var _previousSales = MAXX(FILTER('Table (2)','Table (2)'[Week] = _previousWeek), 'Table (2)'[Sales_Store3])
return _previousSales)

vjingzhang_0-1669777951868.png

Saludos
Equipo de Apoyo a la Comunidad _ Jing
Si esta publicación ayuda, por favor acéptela como Solución para ayudar a otros miembros a encontrarla.

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@FernandoHern12

Puede agregar estas columnas calculadas a la tabla. Las últimas tres columnas son similares. Solo necesita modificar la columna de la tienda de ventas a la que hace referencia.

Flag = IF(ISBLANK('Table (2)'[Sales_Store1]) && ISBLANK('Table (2)'[Sales_Store2]) && ISBLANK('Table (2)'[Sales_Store3]), 0, 1)
NewSales_Store1 = IF('Table (2)'[Flag] = 1, 'Table (2)'[Sales_Store1], 
var _previousWeek = MAXX(FILTER('Table (2)','Table (2)'[Week] < EARLIER('Table (2)'[Week]) && 'Table (2)'[Flag] = 1),'Table (2)'[Week])
var _previousSales = MAXX(FILTER('Table (2)','Table (2)'[Week] = _previousWeek), 'Table (2)'[Sales_Store1])
return _previousSales)
NewSales_Store2 = IF('Table (2)'[Flag] = 1, 'Table (2)'[Sales_Store2], 
var _previousWeek = MAXX(FILTER('Table (2)','Table (2)'[Week] < EARLIER('Table (2)'[Week]) && 'Table (2)'[Flag] = 1),'Table (2)'[Week])
var _previousSales = MAXX(FILTER('Table (2)','Table (2)'[Week] = _previousWeek), 'Table (2)'[Sales_Store2])
return _previousSales)
NewSales_Store3 = IF('Table (2)'[Flag] = 1, 'Table (2)'[Sales_Store3], 
var _previousWeek = MAXX(FILTER('Table (2)','Table (2)'[Week] < EARLIER('Table (2)'[Week]) && 'Table (2)'[Flag] = 1),'Table (2)'[Week])
var _previousSales = MAXX(FILTER('Table (2)','Table (2)'[Week] = _previousWeek), 'Table (2)'[Sales_Store3])
return _previousSales)

vjingzhang_0-1669777951868.png

Saludos
Equipo de Apoyo a la Comunidad _ Jing
Si esta publicación ayuda, por favor acéptela como Solución para ayudar a otros miembros a encontrarla.

Muchas gracias, es lo que buscaba. Me ayudó mucho. Saludos.

Helpful resources

Announcements
PBI November 2023 Update Carousel

Power BI Monthly Update - November 2023

Check out the November 2023 Power BI update to learn about new features.

Community News

Fabric Community News unified experience

Read the latest Fabric Community announcements, including updates on Power BI, Synapse, Data Factory and Data Activator.

Power BI Fabric Summit Carousel

The largest Power BI and Fabric virtual conference

130+ sessions, 130+ speakers, Product managers, MVPs, and experts. All about Power BI and Fabric. Attend online or watch the recordings.

Top Solution Authors