Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Contar secuencia de unos y ceros con Excel

1,169 views
Skip to first unread message

xorge

unread,
Sep 24, 2009, 11:27:43 PM9/24/09
to
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?

Juan M

unread,
Sep 25, 2009, 9:19:31 AM9/25/09
to

"xorge" escribi�

�alguna sugerencia?

-----------------

Hola xorge,

Empleando dos columnas auxiliares y otra para el resultado.

Si tienes tu n�mero binario en A1, prueba a realizar esto:

En C1 escribe 0 (es el n�mero que vas a buscar)

En D1 escribe =LARGO($A$1)-FILA(1:1)
representa el n�mero de veces que se repite el n�mero buscado�

En E1 escribe =SUSTITUIR($A$1;D1;"")
En E2 escribe =SUSTITUIR($E1;REPETIR($C$1;D2);"")
representa el n�mero binario sin el n�mero de grupos que hay en el n�mero
original sin los grupos de C1

En F1 escribe =(LARGO($A$1)-LARGO($E1))/LARGO(REPETIR($C$1;D1))
En F2 escribe =(LARGO($E1)-LARGO($E2))/LARGO(REPETIR($C$1;D2))
cuenta la ocurrencia de ese grupo por diferencia de las cadenas de n�meros

Extiende estas f�rmulas hasta que en la columna D llegues a 1

Cambiando en C1 el 0 por D1 el 1, el resultado ser� la cuenta de los grupos
de unos.

Por cierto que ceros agrupados de 1 hay 4 en tu n�mero original.

Un saludo,
Juan

xorge

unread,
Sep 25, 2009, 1:37:44 PM9/25/09
to
On 25 sep, 08:19, "Juan M" <jumo...@NOSPAMhotmail.com> wrote:
> "xorge" escribió

> 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?
>
> -----------------
>
> Hola xorge,
>
> Empleando dos columnas auxiliares y otra para el resultado.
>
> Si tienes tu número binario en A1, prueba a realizar esto:
>
> En C1 escribe 0 (es el número que vas a buscar)

>
> En D1 escribe =LARGO($A$1)-FILA(1:1)
> representa el número de veces que se repite el número buscadoç

>
> En E1 escribe =SUSTITUIR($A$1;D1;"")
> En E2 escribe =SUSTITUIR($E1;REPETIR($C$1;D2);"")
> representa el número binario sin el número de grupos que hay en el número

> original sin los grupos de C1
>
> En F1 escribe =(LARGO($A$1)-LARGO($E1))/LARGO(REPETIR($C$1;D1))
> En F2 escribe =(LARGO($E1)-LARGO($E2))/LARGO(REPETIR($C$1;D2))
> cuenta la ocurrencia de ese grupo por diferencia de las cadenas de números
>
> Extiende estas fórmulas hasta que en la columna D llegues a 1
>
> Cambiando en C1 el 0 por D1 el 1, el resultado será la cuenta de los grupos
> de unos.
>
> Por cierto que ceros agrupados de 1 hay 4 en tu número original.
>
> Un saludo,
> Juan

He visto la solucion que me has planteado, pero lo asumes como si toda
la secuencia la tuviera en una celda, cuando en realidad cada 1 y 0
ocupa una celda de una columna.
Por cierto no conte el ultimo cero porque los digitos primero y ultimo
no se cuentan

saludos

H�ctor Miguel

unread,
Sep 25, 2009, 4:13:09 PM9/25/09
to
hola, !

__ este mensaje __


> He visto la solucion que me has planteado, pero lo asumes como si toda la secuencia la tuviera en una celda

> cuando en realidad cada 1 y 0 ocupa una celda de una columna.
> Por cierto no conte el ultimo cero porque los digitos primero y ultimo no se cuentan

__ consulta original __
>> ... 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) ...

OJO: esto que comentas en este mensaje NO corresponde con lo que indicaste en tu consulta original...
donde en forma (aparentemente) "clara" dices: -> "... tengo UNA COLUMNA ... (no en forma de fila) ... "

que y como tendria que hacer alguien (desde este lado del mensaje) para REcrear un modelo de trabajo "igual al tuyo" ?

saludos,
hector.


Gabriel Raigosa

unread,
Sep 25, 2009, 4:53:06 PM9/25/09
to xorge
Yo entend� esto desde el principio.


Columna
1 (no tener en cuenta)
1
0
1
0
1
0
0
0
1
0
1
0 (no tener en cuenta)


�Es asi?

Gabriel


xorge escribi�:

xorge

unread,
Sep 25, 2009, 5:18:03 PM9/25/09
to
On 25 sep, 15:53, Gabriel Raigosa <Ing.Raig...@gmail.com> wrote:
> Yo entendí esto desde el principio.

>
> Columna
>    1 (no tener en cuenta)
>    1
>    0
>    1
>    0
>    1
>    0
>    0
>    0
>    1
>    0
>    1
>    0 (no tener en cuenta)
>
> ¿Es asi?
>
> Gabriel

Si asi es, de forma vertical

Gabriel Raigosa

unread,
Sep 25, 2009, 9:51:23 PM9/25/09
to
Mientras logramos ver una posible soluci�n te cuento que este tipo de
dudas son las que ponen a pensar un poco...

Nada f�cil con funciones... no veo como...

Aun no le he intentado con VBA (macros), pero se me hace que puede ser
mas sencillo...

Comenta si te sirve una UDF, seguro que es una de esas cosas que gustan
a muchos.

Gabriel


xorge escribi�:


> On 25 sep, 15:53, Gabriel Raigosa <Ing.Raig...@gmail.com> wrote:

>> Yo entend� esto desde el principio.

H�ctor Miguel

unread,
Sep 25, 2009, 10:00:20 PM9/25/09
to
hola, chicos !

suponiendo que los 13 valores de tu ejemplo estuvieran en el rango [B2:B14] (B2 y B14 no entran en el juego) -?????-

1) escribe los identificadores del procedimiento (p.e.) en el rango [D1:D3] -> numero, veces, cuenta
2) escribe en [E1] el numero que se buscara (p.e. 0 o 1)
3) escribe en [E2] el consecutivo (veces) que debera cumplirse (p.e. 1, 2, 3...)
4) escribe en [E3] la siguiente formula: =contar.si(c2:c14,verdadero)

5) para que se pueda usar la formula en la celda [E3] deberas agregar la siguiente formula en el rango [C3:C134] iniciando en [C3]:
=sumaproducto(subtotales(9,desref(b2,fila(indirecto("1:"&e$2+2)),))*10^((1+e$2)-(fila(indirecto("1:"&e$2+2))-1)))=--((1-e$1)&repetir(e$1,e$2)&(1-e$1))

esta formula al copias/arrastras/extiedes/... hasta la celda [C13]

solo comprueba/corrije si tu separador de argumentos es diferende al de mi sistema (coma)

notaras que este prcedimiento solo permite "consultar" UNA secuencia y numero por vez
(por si necesitaras incluir todas las posibilidades, habria que utilizar una columna auxiliar y sus variables para cada caso)

saludos,
hector.

>> Yo entendi esto desde el principio.


>>
>> Columna
>> 1 (no tener en cuenta)
>> 1
>> 0
>> 1
>> 0
>> 1
>> 0
>> 0
>> 0
>> 1
>> 0
>> 1
>> 0 (no tener en cuenta)
>>
>> Es asi?
>

Gabriel Raigosa

unread,
Sep 25, 2009, 10:50:50 PM9/25/09
to
Paso a paso he seguido la consulta,

http://sites.google.com/site/misitioexcel/Excel/archivos-para-el-foro/Consulta.xlsx?attredirects=0

no me funciona bien con los unos (1)

Mientas leia la respuesta de Hector, yo tenia un modelo similar, en
distribuci�n, pero no tenia ( ni tengo idea ) de que funci�n construir
para lograr el objetivo.

No me funciona correctamente.

Gabriel


H�ctor Miguel escribi�:

H�ctor Miguel

unread,
Sep 25, 2009, 11:51:46 PM9/25/09
to
hola, Gabriel 1

> Paso a paso he seguido la consulta,
> http://sites.google.com/site/misitioexcel/Excel/archivos-para-el-foro/Consulta.xlsx?attredirects=0
> no me funciona bien con los unos (1)

> ...
> No me funciona correctamente.

habras notado que la consulta y las condicionantes planteadas tienen sus... "casos especiales" (p.e.)

- en tu archivo indicas que la cantidad de unos (con los datos del ejemplo) "debiera" ser 5
pero... ya analizaste "cuales" son los 4 (en lugar de 5) que devuelve el procedimiento ?

- observa que para poder "cumplir" con las otras condiciones, el uno (una vez) se busca "entre" dos ceros
razon por la que el primer uno en [B3] no esta siendo acumulado :-(
supongo que este seria uno -quiza/espero el unico- de los casos donde se deja "desprotegido uno... por la mayoria" ?
claro, a reserva de darle una "crecidita" a la formula o de plano buscar soluciones por vba (?)

saludos,
hector.

__ OP __


>> suponiendo que los 13 valores de tu ejemplo estuvieran en el rango [B2:B14] (B2 y B14 no entran en el juego) -?????-
>>
>> 1) escribe los identificadores del procedimiento (p.e.) en el rango [D1:D3] -> numero, veces, cuenta
>> 2) escribe en [E1] el numero que se buscara (p.e. 0 o 1)
>> 3) escribe en [E2] el consecutivo (veces) que debera cumplirse (p.e. 1, 2, 3...)
>> 4) escribe en [E3] la siguiente formula: =contar.si(c2:c14,verdadero)
>>
>> 5) para que se pueda usar la formula en la celda [E3] deberas agregar la siguiente formula en el rango [C3:C134] iniciando en [C3]:
>> =sumaproducto(subtotales(9,desref(b2,fila(indirecto("1:"&e$2+2)),))*10^((1+e$2)-(fila(indirecto("1:"&e$2+2))-1)))=--((1-e$1)&repetir(e$1,e$2)&(1-e$1))
>>
>> esta formula al copias/arrastras/extiedes/... hasta la celda [C13]
>>
>> solo comprueba/corrije si tu separador de argumentos es diferende al de mi sistema (coma)
>>
>> notaras que este prcedimiento solo permite "consultar" UNA secuencia y numero por vez

>> (por si necesitaras incluir todas las posibilidades, habria que utilizar una columna auxiliar y sus variables para cada caso)...


Gabriel Raigosa

unread,
Sep 26, 2009, 12:10:47 AM9/26/09
to
Interesante la pregunta.


Gabriel


H�ctor Miguel escribi�:

xorge

unread,
Sep 26, 2009, 12:14:35 AM9/26/09
to
On 25 sep, 22:51, "Héctor Miguel" <NOhemiordiS...@PLShotmail.com>
wrote:

> hola, Gabriel 1
>
> > Paso a paso he seguido la consulta,
> >http://sites.google.com/site/misitioexcel/Excel/archivos-para-el-foro...

Hola Hector

he probado tu metodo y hay unas cosas que no entiendo, se supone que
el contar.si cuenta todos los verdaderos, pero he visto que varios
VERDADEROS estan al costado de "1" no cuneta los "1" tambien ¿Cual es
la logica q has empleado?

H�ctor Miguel

unread,
Sep 26, 2009, 12:46:59 AM9/26/09
to
hola, !

> ... hay unas cosas que no entiendo, se supone que contar.si cuenta todos los verdaderos


> pero he visto que varios VERDADEROS estan al costado de "1" no cuneta los "1" tambien
> Cual es la logica q has empleado?

mas que saber si esta al costado de un uno o de un cero...
- al contar de los verdaderos le importa mas "como" fue que se obtuvo el verdadero
- el verdadero se cumple cuando se comprueba la condicion dentro de un "determinado" numero/grupo de celdas
- el grupo de celdas lo dicta el numero de repeticiones (celda E2) que se pide del numero MAS DOS (una antes y una despues)
observa la parte de la formula donde dice: -> fila(indirecto("1:"&e$2+2))
- esto ocasiona que el verdadero se presente al inicio de cada "grupo" de celdas (no importa que numero esta "al costado")
- la "cadena" de busqueda la forma la parte final de la formula: -> --((1-e$1)&repetir(e$1,e$2)&(1-e$1))
- (1-e$1) establece lo contrario del numero buscado en E1 (buscas 1 ?... empieza por 0 -y viceversa-)
- repetir(e$1,e$2) construye el numero buscado en E1 tantas veces/repeticiones/... como se indique en D2
- al final se repita la construccion del inicio (el contrario del numero buscado): -> (1-e$1)

+/- por ahi va "la logica" :))
saludos,
hector.

__ la formula propuesta __

Gabriel Raigosa

unread,
Sep 26, 2009, 12:53:06 AM9/26/09
to
Sigo pensando que este caso es VBA.

No funciones

Gabriel

xorge escribi�:
> On 25 sep, 22:51, "H�ctor Miguel" <NOhemiordiS...@PLShotmail.com>


> wrote:
>> hola, Gabriel 1
>>
>>> Paso a paso he seguido la consulta,
>>> http://sites.google.com/site/misitioexcel/Excel/archivos-para-el-foro...
>>> no me funciona bien con los unos (1)
>>> ...
>>> No me funciona correctamente.

>> habras notado que la consulta y las condicionantes planteadas tienen sus.... "casos especiales" (p.e.)

Gabriel Raigosa

unread,
Sep 26, 2009, 12:59:23 AM9/26/09
to
Me gustaria Invitar a KL, es de los temas que a el y por supuesto a ti,
les gusta, pero sigo insistiendo, el VBA, nos puede resolver este problema.

Gabriel


H�ctor Miguel escribi�:

H�ctor Miguel

unread,
Sep 26, 2009, 1:18:51 AM9/26/09
to
hola, Gabriel !

> Me gustaria Invitar a KL, es de los temas que a el y por supuesto a ti, les gusta

> pero sigo insistiendo, el VBA, nos puede resolver este problema...

esperemos que KL llegue a ver/visitar/... esta consulta (?), en via de mientras...

- ya tienes el escenario: "... yo tengo una columna, en Excel, llena de unos y ceros ..."
- ya tienes las restricciones: "... no debo coger los digitos de los extremos ..."
- ya tienes un ejemplo: "ver consulta inicial de OP"
(claro que terminos como "una columna... LLENA de unos y ceros..." presenta mas de dos "imponderables")

- ya tienes algunas ideas sobre la mejor posible alternativa de algoritmo ?
- bucle celda-a-celda durante "n_filas" ?... cuantas ?... y los grupos ?... ??'
- prevencion/correccion/... de (posibles) errores del usuario ?
- flexibilidad para sustituir cualquiera de las variables ?
- etc. (???)

saludos,
hector.


Gabriel Raigosa

unread,
Sep 26, 2009, 1:28:15 AM9/26/09
to
Me gustaria saber si es un tema de binarios

para determinar cuantos digitos tenemos que usar para la solucion.

Gabriel

H�ctor Miguel escribi�:

xorge

unread,
Sep 30, 2009, 9:52:11 PM9/30/09
to
On 26 sep, 01:28, Gabriel Raigosa <Ing.Raig...@gmail.com> wrote:
> Me gustaria saber si es un tema de binarios
>
> para determinar cuantos digitos tenemos que usar para la solucion.
>
> Gabriel
>
> Héctor Miguel escribió:

>
> > hola, Gabriel !
>
> >> Me gustaria Invitar a KL, es de los temas que a el y por supuesto a ti, les gusta
> >> pero sigo insistiendo, el VBA, nos puede resolver este problema...
>
> > esperemos que KL llegue a ver/visitar/... esta consulta (?), en via de mientras...
>
> > - ya tienes el escenario: "... yo tengo una columna, en Excel, llena de unos y ceros ..."
> > - ya tienes las restricciones: "... no debo coger los digitos de los extremos ..."
> > - ya tienes un ejemplo: "ver consulta inicial de OP"
> > (claro que terminos como "una columna... LLENA de unos y ceros..." presenta mas de dos "imponderables")
>
> > - ya tienes algunas ideas sobre la mejor posible alternativa de algoritmo ?
> >   - bucle celda-a-celda durante "n_filas" ?... cuantas ?... y los grupos ?... ??'
> >   - prevencion/correccion/... de (posibles) errores del usuario ?
> >   - flexibilidad para sustituir cualquiera de las variables ?
> >   - etc. (???)
>
> > saludos,
> > hector.

Saludos

Gabriel Raigosa tiene razon no funciona bien con los "unos", en la
secuencia existen 5 y solo cuenta 4, la verdad no se me ocurre nada
ojala puedan ayudarme

H�ctor Miguel

unread,
Oct 1, 2009, 12:24:37 AM10/1/09
to
hola, chicos !

> Gabriel Raigosa tiene razon no funciona bien con los "unos", en la secuencia existen 5 y solo cuenta 4

> la verdad no se me ocurre nada ojala puedan ayudarme

tampoco funciona "bien" con los ceros (depende de la "secuencia binaria" que pongas en "el rango") :-(
la "restriccion" que pones de no considerar ni el primero ni el ultimo en "el rango"...
OBLIGA a convertir en "lo contrario" del numero buscado dichos extremos (el primero y el ultimo), ademas...
se necesita hacer "avances" uno-por-uno para evitar la discriminacion de cualquiera "encontrado" (previamente)

el siguiente ejemplo de funcion personalizada NO contempla prevencion/correccion/... de (posibles) errores en su uso
(p.e. asume que "el rango" sera SIEMPRE vertical, o sea, varias celdas CONTINUAS en la misma columna)

minimo xl2000 en adelante, haz pruebas y... si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Function Continuos(Binario As Range, Num As Byte, Rep As Byte) As Byte
Dim Base As String, Cadena As String, Serie As String, n As Byte
Base = IIf(Num = 1, "0", "1")
Cadena = Base & String(Rep, CStr(Num)) & Base
With Binario
Serie = Base & _
Join(Application.Transpose(.Offset(1).Resize(.Rows.Count - 2).Value), "") & Base
End With
Continuos = 0
For n = 1 To Len(Serie) - (Rep + 1)
Continuos = Continuos - (Mid(Serie, n, Len(Cadena)) = Cadena)
Next
End Function


AnSanVal

unread,
Oct 1, 2009, 5:07:13 AM10/1/09
to

Yo habia montado el siguiente c�digo, suponiendo que la secuencia est� en la columna A y empieza en la fila 2:


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.


Saludos: Antonio.


sailepaty

unread,
Oct 1, 2009, 4:43:05 PM10/1/09
to
Hola señores,

Aunque no participo del foro me agrada revisarlo frecuentemente y este post
me llamo la atención y me parece que esta fórmula pudiera funcionar.

Rango de datos en: [B2:B4] / Digito a contar en:[E1] / Veces consecutivas
en:[E2]

Esta fórmula en C3 y copiar hasta C13.

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

Ahora en E3 para obtener el total:
=SUMA(C3:C13)

Saludos.

H�ctor Miguel

unread,
Oct 1, 2009, 6:54:04 PM10/1/09
to
hola, !

> Aunque no participo del foro me agrada revisarlo frecuentemente y este post me llamo la atencion
> y me parece que esta formula pudiera funcionar.


> Rango de datos en: [B2:B4] / Digito a contar en:[E1] / Veces consecutivas en:[E2]

> Esta formula en C3 y copiar hasta C13.


> =Y(SI(FILAS($B$3:B3)=1,1,B2<>$E$1),CONTAR.SI(B3:INDICE($B$3:$B$13,MIN(FILAS($B$3:$B$13),1+$E$2*FILAS($B$3:B3))),$E$1)=$E$2,SI(FILA(B3)=FILA($B$13),1,INDICE($B$3:$B$13,MIN(FILAS($B$3:$B$13),1+$E$2*FILAS($B$3:B3)))<>$E$1))*1
> Ahora en E3 para obtener el total: =SUMA(C3:C13)

(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" (???)

saludos,
hector.


H�ctor Miguel

unread,
Oct 1, 2009, 6:59:17 PM10/1/09
to
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 __

sailepaty

unread,
Oct 1, 2009, 8:19:01 PM10/1/09
to
"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

H�ctor Miguel

unread,
Oct 1, 2009, 9:11:20 PM10/1/09
to
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 __

sailepaty

unread,
Oct 1, 2009, 9:34:01 PM10/1/09
to
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

unread,
Oct 1, 2009, 10:10:27 PM10/1/09
to
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.


AnSanVal

unread,
Oct 2, 2009, 10:38:21 AM10/2/09
to
Hola de nuevo.

Yo habia (mal) interpretado que habia que ignorar las SECUENCIAS de los extremos y NO s�lo el primer y �ltimo valor.
:-(

De cualquier modo, debemos aceptar el veredicto del comit� de evaluaci�n ;-)


Aqu� va la modificaci�n:

Sub continuos()
Dim repes(1, 7) As Integer, _
cuenta%, _
fila%, _
n%, _
resultado$, _
anterior As Range

cuenta = 1
Set anterior = Range("A3")
resultado = "Valores : 0 1" & vbCr & vbCr
For fila = 4 To Cells(Rows.Count, "A").End(xlUp).Row


If Cells(fila, 1) = anterior Then
cuenta = (cuenta) - 1 * (anterior.Address <> "$A$2")
Else

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

Saludos desde Tenerife: Antonio.
*******************************************

"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje news:Obi6QruQ...@TK2MSFTNGP04.phx.gbl...

ORFAO

unread,
Oct 3, 2009, 4:41:04 AM10/3/09
to
On 2 oct, 10:38, "AnSanVal" <ansan...@teleline.es> wrote:
> Hola de nuevo.
>
> Yo  habia (mal) interpretado  que habia que ignorar las SECUENCIAS de los extremos y NO sólo el primer y último valor.
> :-(
>
> De cualquier modo,  debemos aceptar el veredicto del comité de evaluación  ;-)
>
>  Aquí va la modificación:
> "Héctor Miguel" <NOhemiordiS...@PLShotmail.com> escribió en el mensajenews:Obi6QruQ...@TK2MSFTNGP04.phx.gbl...
>
>
>
> > 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.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Hola
Prueben esro !
P5=Veces consecutivas
P7=Valor/Texto a buscar
T3:T23=Valores/Texto (Rango donde buscar)

en cualquie celda
=+SUMAPRODUCTO(SI(CONTAR.SI(INDIRECTO(DIRECCION(SI(+FILA($T$3:$T$23)-
FILA($T$3)-$P$5>0;FILA($T$3:$T$23)-$P$5-1;FILA($T$3));COLUMNA($T$3:$T
$23);4));$P$7);0;1)*SI(CONTAR.SI(INDIRECTO(DIRECCION(SI(+FILA($T$3:$T
$23)-FILA($T$3)-$P$5>0;FILA($T$3:$T$23);FILA($T$3));COLUMNA($T$3:$T
$23);4));$P$7);0;1)*SI(CONTAR.SI(DESREF(INDIRECTO(DIRECCION(SI(+FILA($T
$3:$T$23)-FILA($T$3)-$P$5>0;FILA($T$3:$T$23)-$P$5;FILA($T$3));COLUMNA
($T$3:$T$23);4));0;0;$P$5;1);$P$7)=$P$5;1;0))
(En Forma Matricial).
Y...Listo ,Resuelto...(Creo)

Saludos a Todos. Orfao.

H�ctor Miguel

unread,
Oct 4, 2009, 4:36:11 AM10/4/09
to
hola, moises !

buena ! (creo que vale para las intenciones de OP -hasta donde se sabe-)
habra que trabajar a partir de tu formula para tratar de optimizarla (llamadas a 32 funciones)

saludos,
hector.

__ OP __


Prueben esro !
P5=Veces consecutivas
P7=Valor/Texto a buscar
T3:T23=Valores/Texto (Rango donde buscar)

en cualquie celda
=+SUMAPRODUCTO(SI(CONTAR.SI(INDIRECTO(DIRECCION(SI(+FILA($T$3:$T$23)-FILA($T$3)-$P$5>0;FILA($T$3:$T$23)-$P$5-1;FILA($T$3));COLUMNA($T$3:$T$23);4));$P$7);0;1)*SI(CONTAR.SI(INDIRECTO(DIRECCION(SI(+FILA($T$3:$T$23)-FILA($T$3)-$P$5>0;FILA($T$3:$T$23);FILA($T$3));COLUMNA($T$3:$T$23);4));$P$7);0;1)*SI(CONTAR.SI(DESREF(INDIRECTO(DIRECCION(SI(+FILA($T$3:$T$23)-FILA($T$3)-$P$5>0;FILA($T$3:$T$23)-$P$5;FILA($T$3));COLUMNA($T$3:$T$23);4));0;0;$P$5;1);$P$7)=$P$5;1;0))

ORFAO

unread,
Oct 4, 2009, 10:54:48 AM10/4/09
to
Hola Hector !

En el otro post relacionado al tema mejore esta formula, pero... aun
faltan algunas cositas y...desde luego que espero contar con tu
ayuda.

http://groups.google.com/group/microsoft.public.es.excel/browse_thread/thread/3a33c1e715bfe237?hl=es

Saludos a Todos. Orfao.

0 new messages