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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

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.

Anonymous
Not applicable

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

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors