फॉर्मूला के साथ बाइनरी को टेक्स्ट


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

मुझे इस यूडीएफ को एक सरल सूत्र के साथ बदलने के लिए कहा गया है ताकि आवेदन मैक्रो-मुक्त वातावरण में चल सके।

मेरा वर्तमान समाधान स्थान पर है:

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

सेल में बी 1 और कॉपी करें। फिर, किसी अन्य सेल में, उपयोग करें:

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

हालाँकि, मैं यह स्वीकार नहीं करना चाहता कि सबसे अच्छा हम सोलह हजार हेल्पर कोशिकाओं का उपयोग कर सकते हैं!

वहाँ एक ही परिणाम प्राप्त करने के लिए एक सरल, कॉम्पैक्ट विधि है ??

जवाबों:


11

इसे एक सरणी के रूप में उपयोग करें:

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

एक सरणी सूत्र होने के नाते इसे संपादन मोड से बाहर निकलने पर Enter के बजाय Ctrl-Shift-Enter के साथ पुष्टि की जानी चाहिए। यदि सही ढंग से किया जाता है तो एक्सेल डाल देगा {} सूत्र के आसपास।

enter image description here


5
बेहद कूल ! .....मुझे यह महसूस नहीं हुआ कि TEXTJOIN () आंतरिक सरणियों का समर्थन करता है ... अगर मैं इसे दो बार बढ़ा सकता हूं, तो मैं करूंगा!
Gary's Student

2
वाह, मैं वास्तव में उन पर एक पकड़ पाने की जरूरत है सरणी सूत्र !
Mathieu Guindon

यह वास्तव में सबसे शांत चीज़ों में से एक है जिसे एक्सेल ने लंबे समय में जोड़ा है। @ Gary'sStudent।
Scott Craner
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.