Пусть ячейка A1 имеет "abccba". Теперь я пишу формулу в ячейке B1 =RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1)))))
она дает значение "a" или строку массива как {"a"; "b"; "c"; "c"; "b"; "a"} Теперь, когда я объединяю это с =CONCATENATE(RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1))))))
это дает "а", но я ожидаю "abccba", где я ошибаюсь?
как объединить строку массива?
Спасибо!
С уважением,
1 ответ
1
Concatenate не принимает значения массива в качестве аргумента; он принимает только отдельные текстовые значения. Когда вы вводите массивы, он просто принимает первое значение, которое вы уже нашли. Если вы хотите передать один аргумент в виде массива текста и получить результат, представляющий собой одну строку из всех этих аргументов, вы должны использовать VBA. Вот UDF, который сделал бы это:
Public Function JoinText(arr()) As String
For i = LBound(arr) To UBound(arr)
JoinText = JoinText & arr(i, 1)
Next
End Function
А вот формула для помещения в ячейку, которая должна быть введена как формула массива с помощью Ctrl+Shift+Enter:
{=JoinText(RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1))))))}