1 से 4096 तक की सभी पंक्तियों के लिए ए से लेकर एल तक प्रत्येक सेल में निम्न सूत्र रखें
=IF(MOD(ROW() - 1, 2^(13 - COLUMN())) < 2^(12 - COLUMN()), 0, 1)
यदि आप रिक्त स्थान के साथ एक स्ट्रिंग में पूरी चीज़ चाहते हैं जैसे कि आपने क्या पूछा था, तो इसे अंतिम कॉलम में रखें
=A1 & " " & B1 & " " & C1 & " " & D1 & " " & E1 & " " & F1 & " " & G1 & " " & H1 & " " & I1 & " " & J1 & " " & K1 & " " & L1
फिर सभी पंक्तियों को M4096 तक खींचें
अधिक सामान्य समाधान के लिए, कुछ सेल में बिट्स की संख्या, जैसे कि Z1, या नामित सेल की तरह रखें NumOfBits
और निम्न सूत्र का उपयोग करें
=IF(MOD(ROW() - 1, 2^(NumOfBits + 1 - COLUMN())) < 2^(NumOfBits - COLUMN()), 0, 1)
यह पंक्ति और स्तंभ ऑफसेट को बदलकर किसी भी सेल को शुरुआती सेल के रूप में उपयोग करने के लिए आसानी से संशोधित किया जा सकता है
शक्तियों के बजाय बिटवाइज़ संचालन का उपयोग करके अनुकूलित संस्करण:
=IF(BITAND(ROW() - 1, BITLSHIFT(1, 13 - COLUMN()) - 1) < BITLSHIFT(1, 12 - COLUMN()), 0, 1)
=IF(BITAND(ROW() - 1, BITLSHIFT(1, NumOfBits + 1 - COLUMN()) - 1) < BITLSHIFT(1, NumOfBits - COLUMN()), 0, 1)
सबसे त्वरित तरीका:
- ऊपर दिए गए किसी भी फॉर्मूले की नकल करें
- प्रेस F5(या Ctrl+ G) और पूरी रेंज का चयन करने के लिए A1: L4096 दर्ज करें
- F2फिर पेस्ट करने के लिए Ctrl+ दबाएँV
- प्रेस Ctrl+ Shift+ Enter। बूम। हो गया। खींचने की जरूरत नहीं
यह एक सरणी सूत्र है जो बहुत छोटी फ़ाइल की गणना और निर्माण करने के लिए बहुत तेज़ है
स्पष्टीकरण:
यदि हम ऊपर से नीचे तक पंक्तियों में सभी बाइनरी अभ्यावेदन लिखते हैं, तो nth-bit (lsb से गिनती) का फ़्लिपिंग / टॉगलिंग चक्र 2 n है । प्रत्येक चक्र में पहली छमाही (0 से 2 एन -1 -1) होगी और अंतिम आधी होगी 1. उदाहरण के लिए lsb (दाईं ओर से पहली बिट) हर 2 1-1 = 1 बिट को वैकल्पिक करेगी । दूसरा बिट हर 2 2-1 = 2 बिट्स टॉगल करेगा ...
परिणामस्वरूप हम चक्र में नंबर की वर्तमान स्थिति प्राप्त करने के लिए modulo 2 n लेंगे , यदि यह 2 n-1 से कम है तो यह शून्य बिट है, अन्यथा यह एक है।