Мне нужна помощь, чтобы сделать следующее преобразование.
Я хочу то же самое, как это: Столбец 7151 7152 7153 7154
В один ряд -> (7151)|(7152)|(7153)|(7154)
="("&A1&")|("&A2&")|("&A3&")|("&A4&")"
Если используемый диапазон в столбце A содержит много данных (или иногда изменяется), вам лучше использовать код vba для генерации результата.
Вы можете добиться этого с помощью пользовательской функции кода VBA.
В листе Excel нажмите ALT+F11, чтобы открыть редактор VBA. В меню «Файл» вставьте модуль и дважды щелкните имя модуля на левой панели (если необходимо), чтобы открыть редактор исходного кода. Вставьте в него следующий код.
Function TXTJOIN(argument1 As Range) 'Accept input range
rowcounter = argument1.Rows.Count
If rowcounter > 255 Then
TXTJOIN = CVErr(xlErrValue) 'If row counter > 255 return #VALUE! Error
Exit Function
End If
colcounter = argument1.Columns.Count ' Check the number of columns in the input range
If colcounter = 1 Then 'Process if it's a single column range
For Each element In argument1
result = result & "(" & element & ")" & "|"
Next element
TXTJOIN = Left(result, Len(result) - 1)
Else
TXTJOIN = CVErr(xlErrValue) 'If it's a multicolumn range, return #VALUE! Error
End If
End Function
Сохраните код и выйдите. Если вы используете Office 2007 и более поздние версии, вам нужно будет сохранить книгу Excel как книгу Excel с поддержкой макросов .xlsm.
Таким образом, мы создали пользовательскую функцию под названием TXTJOIN.
Используйте это в своем листе сейчас, как показано на рисунке ниже.
Обратите внимание, что эта пользовательская функция упрощена для работы только с одним столбцом. Передача в него диапазона нескольких столбцов должна вернуть # ЗНАЧЕНИЕ! Ошибка. Это будет работать только в этой книге, так как код существует в этой книге. Кроме того, чтобы избежать передачи A:A, он ограничивается максимум 255 ячейками для объединения.