Преобразование списка Excel в формат массива
У меня есть несколько довольно длинных списков валют в excel, которые мне нужно преобразовать в формат массива для использования в другой программе. Существует ли какая-либо встроенная формула, которая возвращает строковые значения списка в строковый массив?
Например следующее:
a
b
c
d
e
Вернется как "a","b","c","d", " e " (даже если это просто в строке формул, чтобы я мог скопировать и вставить!)
Я бы предпочел не использовать VBA, если это возможно, просто из-за ограничений по времени, однако, если это работает выход относительно легкий, любые предложения по этому поводу тоже были бы очень полезны.
Заранее большое спасибо
4 ответа:
Ничего не встроено непосредственно в AFAIK.
Добавить модуль VBA, вставить:
Public Function ToArrStr(r As Range) As String ToArrStr = """" & Join(Application.Transpose(r), """,""") & """" End Function
Тогда на листе можно:
=ToArrStr(A1:A5)
(предполагается, что вы проходите > 1 клетку по вертикали)
Способ, которым я видел, как это обрабатывается в Формуле чисто Excel, накапливается строка за строкой:
A B --- ----------------- a =""""&A1&"""" b =B1&","""&A2&"""" c =B2&","""&A3&"""" d =B3&","""&A4&""""
Еще один способ преобразования списка в массив. Надеюсь, это поможет.
Public Function ToArrStr1(r As Range) As String Dim out As String For i = 1 To r.Cells.Count If out = "" Then out = """" & r.Cells(i) & """" Else out = out & ",""" & r.Cells(i) & """" Next i ToArrStr1 = out End Function
Тогда на листе можно: =ToArrStr1 (A1:A5)