Coloque a seguinte fórmula em cada célula de A a L, para todas as linhas de 1 a 4096
=IF(MOD(ROW() - 1, 2^(13 - COLUMN())) < 2^(12 - COLUMN()), 0, 1)
Se você quiser a coisa toda em uma string com espaços como o que você pediu, coloque isso na última coluna
=A1 & " " & B1 & " " & C1 & " " & D1 & " " & E1 & " " & F1 & " " & G1 & " " & H1 & " " & I1 & " " & J1 & " " & K1 & " " & L1
e arraste todo o caminho até A4096: L4096
Para uma solução geral, coloque o número de bits em alguma célula, como Z1, ou célula nomeada como NumOfBits
e use a seguinte fórmula
=IF(MOD(ROW() - 1, 2^(NumOfBits + 1 - COLUMN())) < 2^(NumOfBits - COLUMN()), 0, 1)
Versão otimizada:
=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)
Explicação:
Se escrevermos todas as representações binárias em linhas de cima para baixo, o ciclo de inversão / alternância do enésimo bit (contando a partir do lsb) é 2 n . Em cada ciclo a primeira metade (de 0 a 2 n-1 -1) será 0 e a última metade será 1. Por exemplo, o lsb (primeiro bit da direita) alternará a cada 2 1-1 = 1 bit, o segundo bit alternará a cada 2 2-1 = 2 bits ...
Como resultado, vamos usar o módulo 2 n para obter a posição atual do número no ciclo, se for menor que 2 n-1 é um bit zero, senão é um.