Texto para Binário com Fórmula

5

Eu tenho uma função VBA curta que produz uma representação binária de uma string de texto:

Public Function TextToBin(S As String) As String
    Dim i As Long, L As Long

    L = Len(S)
    With Application.WorksheetFunction
        For i = 1 To L
            TextToBin = TextToBin & .Dec2Bin(Asc(Mid(S, i, 1)))
        Next i
    End With
End Function

Por exemplo:

FuisolicitadoasubstituiressaUDFporumafórmulasimplesparaqueoaplicativopossaserexecutadoemumambientesemmacro.

Minhasoluçãoatualécolocar:

=IFERROR(DEC2BIN(CODE(MID($A$1,COLUMNS($A:A),1))),"")

na célula B1 e copie. Então, em outra célula, use:

=TEXTJOIN("",TRUE,B1:IV1)

No entanto, não quero admitir que o melhor que podemos fazer é usar mais de dezesseis mil células auxiliares!

Existe um método simples e compacto para obter o mesmo resultado?

    
por Gary's Student 05.01.2017 / 16:57

1 resposta

11

Use isso como uma matriz:

=TEXTJOIN("",TRUE,DEC2BIN(CODE(MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))))

Sendo uma fórmula de matriz, ela deve ser confirmada com Ctrl-Shift-Enter em vez de Enter ao sair do modo de edição. Se feito corretamente, o Excel colocará {} em torno da fórmula.

    
por 05.01.2017 / 17:11