Fórmula de Excel o asistencia de VBA

Fórmula de Excel o asistencia de VBA

No estoy seguro de si esto es posible en una fórmula o si se necesitará VBA, pero tengo el siguiente conjunto de datos:

Conjunto de datos

Quiero tomar valores de A:F, ignorar las celdas vacías y generar el valor en la celda G (incluidos los retornos de carro después de cada par)

Probé una combinación de texto y eso me lleva a una parte del camino, pero convierte todos los valores en una sola cadena. Como puedes ver, necesitan ir A => B B => C C => D

pero ignora los espacios en blanco.

¡Cualquier ayuda apreciada!

Respuesta1

Usar:

=TEXTJOIN(CHAR(10),TRUE,INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,1))&" => "&INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,2)))

Al usar, INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,1))y INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,2))creamos dos matrices de celdas no vacías, una que comienza con la primera y termina con la penúltima y una segunda que comienza con la segunda y termina con la última.

Luego concatenamos con " => "y usamos TEXJOIN para agregar el salto de línea.

y copie.

ingrese la descripción de la imagen aquí

Respuesta2

Yo lo resolvería de la siguiente manera:

Introduzca una línea auxiliar para cada línea de datos que genere el resultado intermedio: T1, T1, T5, T3, T6, T6, T2, T2, T3l, T3, T7.

Regla: "Si la celda está vacía, complete el predecesor" A3: =A1 B3: =if(b1="";a1;b1)

En otra línea auxiliar, puede construir la expresión final de forma acumulativa usando vbCrlf para los saltos de línea: Regla: "si el contenido de la celda cambia, agregue otra subexpresión a la fórmula; si no, repita la fórmula anterior" b4: =if(b3 <>a3;a4 & vbcrlf & a3 & "=>" b3;a4) ...

información relacionada