Формула Excel или помощь VBA

Формула Excel или помощь VBA

Не уверен, возможно ли это в формуле или понадобится VBA, но у меня есть следующий набор данных:

Набор данных

Я хочу взять значения из A:F, проигнорировать все пустые ячейки и построить значение в ячейке G (включая возврат каретки после каждой пары)

Я попробовал текстовое соединение, и это дает мне часть пути, но оно объединяет все значения в одну строку. Как вы видите, они должны идти A => B B => C C => D

но игнорируйте пробелы.

Любая помощь приветствуется!

решение1

Использовать:

=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)))

Используя 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))мы создаем два массива непустых ячеек: один, который начинается с первой и заканчивается предпоследней, и второй, который начинается со второй и заканчивается последней.

Затем мы объединяем " => "и используем TEXJOIN для добавления переноса строки.

и скопируйте вниз.

введите описание изображения здесь

решение2

Я бы решил это следующим образом:

Введите вспомогательную строку для каждой строки данных, генерирующей промежуточный результат: T1, T1, T5, T3, T6, T6 , T2, T2, T3l, T3, T7

Правило: «Если ячейка пуста, заполните предыдущую» A3: =A1 B3: =if(b1="";a1;b1)

В другой вспомогательной строке вы можете построить окончательное выражение кумулятивным способом, используя vbCrlf для переносов строк: Правило: «если содержимое ячейки изменяется, добавить еще одно подвыражение в формулу, если нет, повторить старую формулу» b4: =if(b3<>a3;a4 & vbcrlf & a3 & "=>" b3;a4) ...

Связанный контент