Salta a la siguiente celda no vacía y usa el valor de lates en la list

Tengo la siguiente spreadsheet de Excel:

AB Desinetworking Result Column B 1 Product A 50 **50** **50** 2 Product B =IF(A2="","",B1) 50 50 3 =IF(A3="","",B2) 4 Prodcut C =IF(A4="","",B3) 50 **40** 5 =IF(A5="","",B4) 6 ="" =IF(A5="","",B5) 7 Product D =IF(A5="","",B6) 50 40 8 Product E =IF(A5="","",B7) 50 40 

** Entrada de usuario

En la Columna A hay una list de diferentes productos. Como puede ver, puede haber empty cells o celdas con fórmula ="" .

En la columna B , quiero lograr que el último valor antes de la primera empty cell o ="" celda se aplica a las otras filas.

Por ejemplo: si ingreso un 50 en la celda B1 , quiero lograr que este 50 aparezca junto a cada producto y empty cells o ="" se ignoren.

Puedo lograr esto con la siguiente fórmula:

 =IF(A2="","",$B$1) 

Ahora el problema es que el usuario también puede escribir un número diferente en otra celda en la Columna B. Por ejemplo, podría escribir un 40 en la celda B4 .

En este caso, quiero que el 40 se aplique a todas las demás filas siguientes en lugar de a las 50, como puede ver en la sección " Columna de resultados deseados B " en el ejemplo anterior.

¿Cómo debo cambiar mi fórmula en la Columna B para lograr esto?

Ingrese la siguiente fórmula en la Cell B2

 =IF(A2<>"",INDEX($B$1:$B1,MAX(IF($B$1:$B1<>"",1,0)*ROW($B$1:$B1))),"") 

Arrastra / copy abajo según sea necesario.

Esta es una fórmula de matriz así que compórtala presionando Ctrl + Shift + Enter.

Tratar:

 B2: =IF(A2="","",LOOKUP(2,1/LEN($A$1:A1),$B$1:B1)) 

Con el modo de direccionamiento utilizado en la fórmula LOOKUP, examinará las filas hasta la fila antes de la búsqueda. Si el valor de la columna A no está en blanco, lookup_vector coincidirá con la última celda no en blanco de la columna A antes de la fila que contiene la fórmula, y result_vector devolverá el valor en la misma fila en la columna B.

Es bastante crítico que sus inputs de usuario estén restringidas como lo describió anteriormente.

Si el usuario puede hacer una input en la columna B que NO corresponde a una input en la columna A, y desea que esa input se copie, utilice:

 =IF(A2="","",LOOKUP(2,1/LEN($B$1:B1),$B$1:B1)) 

Además, tenga en count que la secuencia se alterará si el usuario elimina una input en la columna B, en lugar de replacela con otro número. Las fórmulas debajo de la eliminación interpretarán el valor eliminado como cero.