Eu tenho algumas listas de moeda bastante longas no excelque eu preciso converter em um formato de matriz, para uso em um programa diferente. Existe alguma fórmula interna que retornará os valores de string de uma lista, em uma matriz de string?
Por exemplo, o seguinte:
a
b
c
d
e
Retornará como "a", "b", "c", "d", "e" (mesmo que seja apenas na barra de fórmulas para que eu possa copiar e colar!)
Eu preferiria não usar o VBA, se possível, simplesmente devido a restrições de tempo, no entanto, se isso funcionar de forma relativamente fácil, qualquer sugestão seria realmente útil também.
Muito obrigado antecipadamente
Respostas:
2 para resposta № 1Nada embutido diretamente AFAIK.
Adicione um módulo VBA, cole:
Public Function ToArrStr(r As Range) As String
ToArrStr = """" & Join(Application.Transpose(r), """,""") & """"
End Function
Então na folha você pode: =ToArrStr(A1:A5)
(Assume sua passagem> 1 célula verticalmente)
2 para resposta № 2
A maneira como vi isso sendo tratado na fórmula do Excel é acumular linha por linha:
A B
--- -----------------
a =""""&A1&""""
b =B1&","""&A2&""""
c =B2&","""&A3&""""
d =B3&","""&A4&""""
1 para resposta № 3
FWIW, Se você tiver a atualização mais recente para o Excel ou estiver usando o aplicativo on-line, haverá uma fórmula incorporada. É TEXTJOIN (). Assim:
="""" & TEXTJOIN(""",""",TRUE,A1:A5) & """"
0 para a resposta № 4
Outra maneira de converter a lista em array. Espero que ajude.
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
Em seguida, na planilha você pode: = ToArrStr1 (A1: A5)