Пусть ячейка 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .