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

contar secuencia de unos y ceros...

40 views
Skip to first unread message

ORFAO

unread,
Sep 27, 2009, 3:06:05 AM9/27/09
to
Hola Grupo ! Xorge, Hector Miguel, Gabriel Raigosa, ...

En el foro de discusiones en excel (al que no puedo acceder a
publicar nuevas preguntas "no tengo idea de como resolverlo") con
respecto a la pregunta formulada por Xorge, me he puesto a curiosear
vuestras respuestas y por mi lado tratre de resolver el problema en
cuestion llegando a lo siguiente:

En las celdas G7 hasta la G27 he colocado diversos valores y/o texto
I6=numero de veces consecutivas a buscar (valor)
j6=Texto o numero a buscar

luego coloco en
A7=+DIRECCION(FILA(G7)-$I$6-1;COLUMNA(G7);4)
B7=+DIRECCION(FILA(G7);COLUMNA(G7);4)
C7==+DIRECCION(FILA(G7)-$I$6;COLUMNA(G7);4)&":"&+DIRECCION(FILA
(G7)-1;COLUMNA(G7);4)
E7=+SI(Y(INDIRECTO(A7)<>$J$6;INDIRECTO(B7)<>$J$6;SI(SUMA(SI(INDIRECTO
(C7)=$J$6;1;0))=$I$6;1;0));1;0) ( introducido en forma matricial )
y entonces estas formulas a7,b7,c7 y e7 las copio y pego desde la fila
7 hasta la 27

Finalmente calculo en otra celda
+suma(e7:e27) lo cual me genera el resultado esperado.

Se pueden calcular cuantos celdas consecutivas contienen un mismo
valor o texto un determinado numero de veces.
"encerrrados" entre otros dos valores y/o texto diferentes.

He tratado se construir una sola formula evitando las celdas
auxiliares (sustituyendo "reemplazando" en E7 a A7,B7 Y C7) pero ...
no funciona...a pesar de ser introducido comno matriz...
Estoy muy seguro que HM y probablemente otros varios foristas podran
mejorar esta "parcial solucion" y hallaran una mejor.

Cacho

unread,
Sep 27, 2009, 8:18:01 AM9/27/09
to
Hola! ORFAO. Entiendo que el rango [G7:G27] presenta sus datos ordenados por
ejemplo así:

1
1
b
b
b
b
3
3
3
3
3
3
d
d
5
f
f
f
8
9
9

En tal caso y si tuvieses:
[I6] = 3
[J6] = 3

podrías utilizar la fórmula:
= (CONTAR.SI(G$7:G$27; $J$6) - $I$6 + 1) * (CONTAR.SI(G$7:G$27; $J$6) - $I$6
+ 1 >= 0)

cuyo valor sería "4".

Y si fuese:
[I6] = 2
[J6] = f
retornaría: "2".

Espero haberte interpretado correctamente.

Saludos, Cacho.

ORFAO

unread,
Sep 27, 2009, 1:35:56 PM9/27/09
to

Hola Cacho !
Acaso probaste con la informacion que de di inicialmente ??
el rango a buscar para (este ejemplo) es G7:G27 y puede contener tanto
valores como textos (en cualquier orden) ya sean introducidos dersde
el teclado o como resultado de alguna formula o funcion.
Se entiende ??

Saludos, ORFAO.

H�ctor Miguel

unread,
Sep 27, 2009, 6:09:04 PM9/27/09
to
hola, moises !

(hasta donde se) para intentar evitar el uso de (demsiadas) celdas/columnas/... auxiliares
- puedes usar funciones como desref(... y fila(indirecto(... (+/- como estan en la propuesta)

por otro lado, al restar el numero de veces que se busca y hacer referencia a las filas...
podrian obtenerse valores de error, si el rango NO inicia en una fila "suficiente" como para restar n_filas (???)
incluso, la propuesta que haces sigue con alguno/s del(los) inconveniente/s relacionados con buscar sobre el mumero 1 (uno)
y (hablando de "binarios" como dice OP) no creo conveniente ampliar la formula para buscar numeros Y textos (???)
ademas de que ya no se ha dado continuacion/"feed-back"/... a la consulta original, por lo que siguen otros detalles en el tintero (???)

saludos,
hector.

__ OP __
> ... con respecto a la pregunta formulada por Xorge, me he puesto a curiosear vuestras respuestas


> y por mi lado tratre de resolver el problema en cuestion llegando a lo siguiente:
> En las celdas G7 hasta la G27 he colocado diversos valores y/o texto
> I6=numero de veces consecutivas a buscar (valor)
> j6=Texto o numero a buscar
> luego coloco en
> A7=+DIRECCION(FILA(G7)-$I$6-1;COLUMNA(G7);4)
> B7=+DIRECCION(FILA(G7);COLUMNA(G7);4)

> C7==+DIRECCION(FILA(G7)-$I$6;COLUMNA(G7);4)&":"&+DIRECCION(FILA(G7)-1;COLUMNA(G7);4)
> E7=+SI(Y(INDIRECTO(A7)<>$J$6;INDIRECTO(B7)<>$J$6;SI(SUMA(SI(INDIRECTO(C7)=$J$6;1;0))=$I$6;1;0));1;0)
> (introducido en forma matricial)
> y entonces estas formulas a7,b7,c7 y e7 las copio y pego desde la fila7 hasta la 27

ORFAO

unread,
Oct 3, 2009, 4:59:20 PM10/3/09
to
Hola Hector !

Despues de varias pruebas (intentos), no porque realmente lo necesite
(por ahora) sino mas bien por curiosidad e invetrigacion, logre esta
unica formula requerida para la solucion del problema en cuestion.


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... estoy "casi" seguro que resolvera el problema a
Cacho.

*** Podriamos colocar en una celda "T1:T3" y luego referencoar la
formula al indirecto de esta celda con lo que hariamos la formula mas
completa (practica)
y...solo quedaria por probar si funciona buscando en otra hoja.

Ademas habra que hacer una pequema modificacion para evitar que al
buscar un vumero de ocurrencias < 1 no gerere error (desde luego que
as veces siempre debera ser en entero positivo).

Muy probablemente tu podras mejorar esta formula... (me gustaria
saber tus comentarios y/u observaciones respecto), y por supuesto la
de cualquier otro forista.

Saludos, Orfao.


ORFAO

unread,
Oct 3, 2009, 11:40:50 PM10/3/09
to
Hola (de nuevo) !!

He mejorado lo anterior !

Ahora podemos colocar

Rango a buscar
P9= $T$3:$T$23
y modificar cambiando la formula por esta:

=+SUMAPRODUCTO(SI($P$5<>0;CONTAR.SI(INDIRECTO(DIRECCION(SI(FILA
(INDIRECTO($P$9))-FILA($T$3)-$P$5>0;FILA(INDIRECTO($P$9))-$P$5-1;FILA
($T$3));COLUMNA(INDIRECTO($P$9));4));"<>"&$P$7);0) *CONTAR.SI(INDIRECTO
(DIRECCION(SI(FILA(INDIRECTO($P$9))-FILA($T$3)-$P$5>0;FILA(INDIRECTO($P
$9));FILA($T$3));COLUMNA(INDIRECTO($P$9));4));"<>"&$P$7)*SI(CONTAR.SI
(INDIRECTO(DIRECCION(SI( +FILA(INDIRECTO($P$9))-FILA($T$3)-$P
$5>0;FILA(INDIRECTO($P$9))-$P$5; FILA($T$3));COLUMNA(T25))
&":"&DIRECCION(SI(FILA(INDIRECTO($P$9))-FILA($T$3)-$P$5>0;FILA
(INDIRECTO($P$9))-1;FILA($T$3));COLUMNA(INDIRECTO($P$9))));$P$7)=$P
$5;1;0))

Esta formula es algo mas flexible y evita el error si se bunscan 0
(cero) veces.

y...solo sigue faltando comprobar si funciona buscando en otra hoja.
y... en caso de buscar texto diferenciar mayusculas de minusculas ..
Esta ultima parte se me ha hecho algo (Bastante) dificil.

con respecto a esto ultimo he intentado lo siguiente:

en k13
+FILA()-FILA($T$3)-$P$5>0;FILA()-1; FILA($T$3));COLUMNA(T3)));$P$7)=$P
$5;1;0) * --IGUAL(INDIRECTO(DIRECCION(SI(+FILA()-FILA($T$3)-$P$5>0;FILA
()-1;FILA($T$3));COLUMNA(T3);4));$P$7)
luego la copio hasta k27
esto me genera un uno si los valores/Texto del intervalo
correspondiente son iguales al buscado.
Hasta aqui.. Todo bien !

Entonces, en k28 trato de sumar en forma matricial (agrupando lo
anterir)

algo como esto:
=+SUMAPRODUCTO(SI(CONTAR.SI( INDIRECTO(DIRECCION(SI( +FILA
(INDIRECTO($P$9))-FILA($T$3)-$P$5>0;FILA(INDIRECTO($P$9))-$P$5; FILA
($T$3));COLUMNA(T25))&":"&DIRECCION(SI( +FILA(INDIRECTO($P$9))-FILA
($T$3)-$P$5>0;FILA(INDIRECTO($P$9))-1; FILA($T$3));COLUMNA(INDIRECTO
($P$9))));$P$7)=$P$5;1;0) * --IGUAL(INDIRECTO(DIRECCION(SI(+FILA
(INDIRECTO($P$9))-FILA($T$3)-$P$5>0;FILA(INDIRECTO($P$9))-1;FILA($T
$3));COLUMNA(INDIRECTO($P$9));4));$P$7))


Pero si le agrego contar.si, suma, subtorales(9...) , o sumaproducto
(ya aplicado) , para lograr el resultado de la matriz ... No
Funciona !

la idea es obtener este resultado y sustituiro por el ultimo producto
de la formula definitiva.

Help Me !!!!


Saludos, Orfao.


ORFAO

unread,
Oct 3, 2009, 11:48:36 PM10/3/09
to
Hola (de nuevo)  !!

Disculpen el Error !

En lo anterior...
Donde dice:

> +FILA()-FILA($T$3)-$P$5>0;FILA()-1;  FILA($T$3));COLUMNA(T3)));$P$7)=$P
> $5;1;0) * --IGUAL(INDIRECTO(DIRECCION(SI(+FILA()-FILA($T$3)-$P$5>0;FILA
> ()-1;FILA($T$3));COLUMNA(T3);4));$P$7)

Debe decir:

=+SI(CONTAR.SI( INDIRECTO(DIRECCION(SI( +FILA()-FILA($T$3)-$P
$5>0;FILA()-$P$5; FILA($T$3));COLUMNA(T17))&":"&DIRECCION(SI
( +FILA()-FILA($T$3)-$P$5>0;FILA()-1; FILA($T$3));COLUMNA(T17)));
$P$7)=$P$5;1;0) * --IGUAL(INDIRECTO(DIRECCION(SI(+FILA()-FILA($T$3)-$P
$5>0;FILA()-1;FILA($T$3));COLUMNA(T17);4));$P$7)


Saludos, Orfao.

0 new messages