Como faço para contar o número de recorrências sequenciais?

3

Eu tenho um arquivo excel no qual eu realizei uma operação. Agora tenho uma coluna que é preenchida pelo valor 1 ou 0.

O que preciso fazer para contar o número de "1s" que aparecem em uma sequência consecutiva.

Meu array é assim:
1
0
0
0
1
1
1
1
1
0
1
1
0

O que eu preciso ser capaz de extrair é que vimos uma sequência de 5 1s e depois uma corrida de 2 1s. Como eu faço isso?

    
por Tony 18.06.2013 / 19:57

4 respostas

1

Isso não é elegante, mas funcionará:

Após sua coluna de '1 e' 0 ',

faça sua segunda coluna:

0
=(A2+B1)*A2  <-- You can just drag-fill this downward
=(A3+B2)*A3
=(A4+B3)*A4
.
.
.

... e faça a terceira coluna:

0
=SUMIF(B3,0,B2)  <-- You can just drag-fill this downward as well
=SUMIF(B4,0,B3)
=SUMIF(B5,0,B4)
.
.
.

A terceira coluna mostrará o número de '1s em cada grupo, com a soma ao lado do último' 1 'na corrida.

    
por 18.06.2013 / 22:26
0

Usando a função COUNTIF , você pode dizer ao Excel para contar as ocorrências de um critério específico em um determinado intervalo.

COUNTIF(range,criteria)

Digamos que seus dados estejam na coluna A e nas linhas 1 a 13, você usaria o seguinte para contar o número de vezes que "1" ocorre.

=COUNTIF(A1:A13, 1)

Ajuste o intervalo para o intervalo que você deseja contar e os critérios para o que você deseja contar.

    
por 18.06.2013 / 20:17
0

Eu tive um problema semelhante. Minha abordagem era feia e ineficiente, mas funcionou.

Eu fiz uma segunda coluna, que olhou para ver se o valor da célula adjacente era o que eu estava procurando, e em caso afirmativo, dar um número de 0 + o valor da célula acima na segunda coluna.

Eu fiz uma terceira coluna onde cada célula olhou para a célula adjacente na coluna 2, e se o valor foi maior que o abaixo, para dar um valor de 0+ o valor máximo na terceira coluna até a linha da célula. Se não, ele cuspiu um valor vazio ("") Dessa forma, eu pude colocar um número de identificador seqüencial.

Eu fiz uma quarta coluna, onde olhou para a célula adjacente na coluna 3, e se era qualquer valor, exceto em branco, para colocar o valor dessa linha da coluna 2.

Eu então fiz uma quinta coluna que começou com 1, e cada linha foi uma acima da linha anterior, até o valor máximo da coluna 3.

Eu terminei de fazer uma sexta coluna que usava a função de pesquisa. O valor de pesquisa seria a célula adjacente na coluna 5. O intervalo seria a coluna 3 e 4. Eu teria que cuspir o valor da coluna 4.

Eu defino uma seqüência de valores idênticos como uma execução. Cada número na coluna 5 representa uma execução. Cada número na coluna 6 representa o tamanho dessa execução. Isso permite gerar os tamanhos de cada uma das execuções.

Como eu disse, esse é um jeito feio de fazer isso, e provavelmente poderia ser escrito muito mais limpo no VBA, mas é eficaz.

    
por 19.10.2016 / 09:27
0

Não pense nisso como contando números consecutivos. Pense nisso como encontrar a posição do primeiro 0.

= correspondência (0, A1: A14,0) -1

Arraste a fórmula para baixo, deixando o intervalo se ajustar ao arrastar para baixo. Ele lhe dará o número de 1s que você tem em uma fileira em qualquer ponto dos dados.

    
por 31.10.2017 / 10:39