Cómo concatenar los últimos valores de celdas que no están en blanco de varias columnas

Cómo concatenar los últimos valores de celdas que no están en blanco de varias columnas

Me gusta saber cómo obtener los últimos valores de celdas que no están en blanco de varias columnas de manera clara, es decir, el valor esperado resaltado en verde.

ingrese la descripción de la imagen aquí

Sé cómo obtener la última celda que no esté en blanco en una columna aplicando

=IFERROR(LOOKUP(2,1/(INDIRECT("A1:A"&ROW())<>""),INDIRECT("A1:A"&ROW())),"")

y luego unir varias columnas aplicando

=TEXTJOIN("",TRUE,G4:L4)

He pensado varias formas posibles, como por ejemplo:

  1. transformar los datos de origen de una matriz 2D a una matriz 1D y devolverlos como fórmula matricial;
  2. utilizar matriz si;
  3. bucle por fila en lugar de columnas.

Pero no puedo pensar en ninguna fórmula clara y funcionar correctamente.

Cualquier ayuda sería apreciada. Gracias.

Respuesta1

Para una fila, puedes:

  1. filtro para celdas que no están en blanco

  2. tomar la columna más a la derecha

    =DEJAR(r,A4:F4,TOMAR(FILTRO(r,r<>""),-1))

ingrese la descripción de la imagen aquí

Para hacer esto en una única fórmula, simplemente coloque ese cálculo en BYROW:

=LET(d,A4:F16,BYROW(d,LAMBDA(r,TAKE(FILTER(r,r<>""),-1))))

ingrese la descripción de la imagen aquí

Editar: para aplicar la unión de texto, puedes usar esto:

=LET(
    d, A4:F16,
    BYROW(
        d,
        LAMBDA(r,
            LET(
                lastletter, TAKE(FILTER(r, r <> ""), -1),
                position, XMATCH(lastletter, r),
                seqend, CODE(INDEX(lastletter, 1, 1)),
                seqstart, INDEX(seqend - position + 1, 1, 1),
                seq, SEQUENCE(seqend - seqstart + 1, , seqstart),
                TEXTJOIN("", TRUE, CHAR(seq))
            )
        )
    )
)

información relacionada