Contar secuencia de unos y ceros con Excel

25/09/2009 - 05:27 por xorge | Informe spam
Hola a todos, soy nuevo en este grupo, tengo una duda, yo tengo una
columna, en Excel, llena de unos y ceros, lo que quiero hacer es
contar esos unos y ceros agrupandolos de uno en uno o de dos en dos
por ejemplo:

Secuencia Binaria --> 1101010001010 (la secuencia la tengo en una
columna no en forma de fila)

Ceros agrupados de 1 --> 3
Ceros agrupados de 2 --> 0
Ceros agrupados de 3 --> 1

De forma analoga se hace con los unos solo que no debo coger los
digitos de los extremos.

He intentado con la funcion contar.si pero no me sale

¿alguna sugerencia?

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
02/10/2009 - 00:59 | Informe spam
hola, Antonio !

Yo habia montado el siguiente codigo, suponiendo que la secuencia está en la columna A y empieza en la fila 2:



(creo que) presenta la misma "falla" de la que se "queja" OP: solo cuenta 4 unos y requiere contar 5 (?)

saludos,
hector.

__ el codigo expuesto __
Sub continuos()
Dim repes(1, 7) As Integer, _
cuenta%, _
fila%, _
n%, _
resultado$, _
anterior As Range
cuenta = -1
Set anterior = Range("A2")
resultado = " 0 1" & vbCr & vbCr
For fila = 3 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(fila, 1) = anterior Then
cuenta = (cuenta) - 1 * (anterior.Address <> "$A$2")
Else
If anterior.Address <> "$A$2" Then repes(anterior.Value, _
cuenta - 1) = repes(anterior.Value, cuenta - 1) + 1
Set anterior = Cells(fila, 1)
cuenta = 1
End If
Next fila
For n = 0 To 7
resultado = resultado & n + 1 & " Rep. = " & repes(0, n) & " " & repes(1, n) & vbCr
Next n
Set anterior = Nothing
MsgBox resultado
End Sub

Admite 8 valores continuos (repetidos), pero es facilmente modificable.
Respuesta Responder a este mensaje
#7 sailepaty
02/10/2009 - 02:19 | Informe spam
"Héctor Miguel" wrote:

(segun pruebas) esta formula tambien presenta fallas (p.e.) cuando en la secuencia se busca 0 (cero) 2 o mas veces "consecutivas"
incluso (segun los datos del ejemplo) "encuentra" secuencias con dos o tres "unos" (que NO existen) -???-
y habria que considerar un -posible- consumo adicional de recursos al utilizar n_cedas "auxiliares" para dos o mas "secuencias binarias" (???)




Sin duda que el rendimiento del archivo no sería el mejor si se emplea este
tipo de formulas para determinar varias secuencias. Sin embargo para no cesar
en el intento de hacerla funcionar, aquí dejo la modificación.

=Y(SI(FILAS($B$3:B3)=1,1,B2<>$E$1),CONTAR.SI(B3:INDICE(B3:$B$13,SI(FILAS($B$3:B3)+$E$2>FILAS($B$3:$B$13),1,$E$2)),$E$1)=$E$2,SI(FILA(B3)=FILA($B$13),1,INDICE(B3:$B$13,SI(FILAS($B$3:B3)+$E$2>FILAS($B$3:$B$13),1,$E$2+1))<>$E$1))*1


Saludos
Respuesta Responder a este mensaje
#8 Héctor Miguel
02/10/2009 - 03:11 | Informe spam
hola, !

(casi... pero) todavia no... (p.e.)
- si buscas [E1]->1 con repeticiones de [E2]->3
- y CAMBIAS la secuencia final de: 1010 a 1110
la formula devuelve 0 (cero) cuando debiera devolver 1 (uno) -???-

saludos,
hector.

__ OP __
Sin duda que el rendimiento del archivo no seria el mejor
si se emplea este tipo de formulas para determinar varias secuencias.
Sin embargo para no cesar en el intento de hacerla funcionar, aqui dejo la modificacion.

=Y(SI(FILAS($B$3:B3)=1,1,B2<>$E$1),CONTAR.SI(B3:INDICE(B3:$B$13,SI(FILAS($B$3:B3)+$E$2>FILAS($B$3:$B$13),1,$E$2)),$E$1)=$E$2,SI(FILA(B3)=FILA($B$13),1,INDICE(B3:$B$13,SI(FILAS($B$3:B3)+$E$2>FILAS($B$3:$B$13),1,$E$2+1))<>$E$1))*1



__ previos __
(segun pruebas) esta formula tambien presenta fallas (p.e.) cuando en la secuencia se busca 0 (cero) 2 o mas veces "consecutivas"
incluso (segun los datos del ejemplo) "encuentra" secuencias con dos o tres "unos" (que NO existen) -???-
y habria que considerar un -posible- consumo adicional de recursos al utilizar n_cedas "auxiliares" para dos o mas "secuencias binarias" (???)
Respuesta Responder a este mensaje
#9 sailepaty
02/10/2009 - 03:34 | Informe spam
Gracias por las pruebas, haber si ahora le pego.

=Y(SI(FILAS($B$3:B3)=1,1,B2<>$E$1),CONTAR.SI(B3:INDICE(B3:$B$14,SI(FILAS($B$3:B3)+$E$2>FILAS($B$3:$B$14),1,$E$2)),$E$1)=$E$2,SI(FILA(B3)=FILA($B$13),1,INDICE(B3:$B$14,SI(FILAS($B$3:B3)+$E$2>FILAS($B$3:$B$14),1,$E$2+1))<>$E$1))*1

Saludos Elias


"Héctor Miguel" wrote:

hola, !

(casi... pero) todavia no... (p.e.)
- si buscas [E1]->1 con repeticiones de [E2]->3
- y CAMBIAS la secuencia final de: 1010 a 1110
la formula devuelve 0 (cero) cuando debiera devolver 1 (uno) -???-

saludos,
hector.
Respuesta Responder a este mensaje
#10 Héctor Miguel
02/10/2009 - 04:10 | Informe spam
hola, Elias !

Gracias por las pruebas, haber si ahora le pego.
=Y(SI(FILAS($B$3:B3)=1,1,B2<>$E$1),CONTAR.SI(B3:INDICE(B3:$B$14,SI(FILAS($B$3:B3)+$E$2>FILAS($B$3:$B$14),1,$E$2)),$E$1)=$E$2,SI(FILA(B3)=FILA($B$13),1,INDICE(B3:$B$14,SI(FILAS($B$3:B3)+$E$2>FILAS($B$3:$B$14),1,$E$2+1))<>$E$1))*1



gracias a ti, por (atreverte a) exponer (tu nombre y) la formula :))
ahora parece funcionar como se espera (a reserva de que OP la pruebe bajo SUS condiciones "reales" ?)

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida