使用公式将文本转换为二进制

使用公式将文本转换为二进制

我有一个简短的 VBA 函数,可以生成文本字符串的二进制表示形式:

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

例如:

在此处输入图片描述

我被要求用一个简单的公式替换这个 UDF,以便应用程序可以在无宏的环境中运行。

我当前的解决方法是:

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

在细胞内B1并复制。然后,在另一个单元格中使用:

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

然而,我不想承认我们所能做的最好的事情就是使用超过一万六千个辅助细胞!

有没有简单、紧凑的方法来获得相同的结果?

答案1

将其用作数组:

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

作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。如果操作正确,Excel 将会覆盖{}公式。

在此处输入图片描述

相关内容