Это немного сложная задача, и я уверен, что это можно сделать проще. Однако первое, что пришло в голову, было TEXTJOIN
. Так что, если ваша версия Excel поддерживает эту функцию, вы можете использовать это. Например, в C1
:
=TRIM(MID(SUBSTITUTE(TEXTJOIN(" ",TRUE,REPT($B$1:$B$4&"|",$A$1:$A$4)),"|",REPT(" ",LEN(TEXTJOIN(" ",TRUE,REPT($B$1:$B$4&"|",$A$1:$A$4))))),(ROW(A1)-1)*LEN(TEXTJOIN(" ",TRUE,REPT($B$1:$B$4&"|",$A$1:$A$4)))+1,LEN(TEXTJOIN(" ",TRUE,REPT($B$1:$B$4&"|",$A$1:$A$4)))))
Это формула массива, которую необходимо ввести с помощью Ctrl Shift Ввод

Перетащите вниз ...
Это также будет работать, если в ваших значениях есть пробелы:

> Примечание: Если результирующая строка превышает 32767 символов (предел ячеек), TEXTJOIN
возвращает ошибку #VALUE!
.