带有公式的二进制文本


5

我有一个简短的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

例如:

enter image description here

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

我目前的解决方法是放置:

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

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

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

但是,我不想承认我们能做的最好的事情就是使用超过16,000个辅助细胞!

是否有一个简单,紧凑的方法来获得相同的结果?

Answers:


11

将其用作数组:

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

作为数组公式,必须在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter确认。如果正确完成,那么Excel将放置 {} 围绕公式。

enter image description here


5
超酷 ! .....我没有意识到这一点 TEXTJOIN() 支持内部数组...如果我可以两次投票,我会!
Gary's Student

2
哇,我 需要抓住那些 数组公式
Mathieu Guindon

它确实是Excel在很长一段时间内添加的最酷的东西之一。 @ Gary'sStudent。
Scott Craner
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.