UBICAR COLUMNA ??

01/03/2009 - 19:13 por Orfao | Informe spam
Hola Foristas !
Tengo un gran problemon !!!
y... cuento con vuestra valiosa ayuda para resolverlo,
se trata de lo siguiente:
Tengo

A B C D E F G H I J K L
M N O
1 0 8 1 6 1 1 0 2
1 7
1er grupo 2do grupo 3er grupo 4to grupo 5to grupo



Teniendo estos valores (unos y ceros cada tres columnas/grupos)
Como ubico las columnas (primeras de cada grupo de tres) donde tengo el
ultimo uno (1) y el penultimo uno ??

Los datos mostrados pueden estar en otra direccion cualquiera (es dedir que
no necesariamente empieze en A1 ) ,y puedo tener hasta 30 grupos de
diferentes cantidades de columnas por grupo (en el caso del ej. son 3) y por
supersto que los unos y ceros no estan siempre en la misma posicion.

La idea es obtener la suma de los valores ubicados en una misma direccion
relativa a su grupo, pero condicionado por otro valor tambien ubicados en
otras celdas con una direccion relativa a cada grupo. y finalmente lograr
algo como:
Hasta el ultimo grupo (con valor 1)
=sumaproducto(subtotales(9,desref(a1,,({2;3;5}-1)*3)+2)) = 6+1+7
y hasta el penultimo
=sumaproducto(subtotales(9,desref(a1,,({2;3}-1)*3)+2)) = 6+1

(Formulas que me hizo llegar Herctor Miguel, !muy interesantes por cierto.)

El problema esta en definir las columnas a sumar (2;3;5) y (2;3) y por
supuesto como introducirlas en las formulas

Luego de hacer varios intentos llegue a lo siguiente:
En es ejemplo mostrado, he calculado para cada columna

C1=SUMAPRODUCTO(SUBTOTALES(9;DESREF(a1;0;(FILA(INDIRECTO("1:5"))-1)*3))*2^(FILA(INDIRECTO("1:5"))-1))
esto es igual a 22
al usar C2ÞC.A.BIN(22) , esto me genera 10110 lo que me indica en orden
inverso la posicion de las columnas a sumar, liuego
C3=largo(C2) =5 (me indica el ultimo grupo), y calculo
C4Â-10^(C3-1) 0
C5=largo(C4) y defino el penultimao grupo (3)
Y para finalizar corrijo las formulas a:
=sumaproducto(subtotales(9,desref(a1,,(indirecto("1:"&C3-1)*3)+2))
=sumaproducto(subtotales(9,desref(a1,,(indirecto("1:"&C5-1)*3)+2))

Hasta aqui todo bien...pero...la funcion DEC.A.BIN solo convierte numeros
menores que 512 y es ahi justamente donde se me tranca el serrucho.
Creo que otra opcion seria concatenar los valores de todas las columnas
pero... Como lo logro estando los valores en grupos de tres columnas como en
este ejemplo ???

Con respecto a introducir el rango en la formula he utilizado Evaluar(Xn)
donde Xn es el rango que contiene por ej: "{2;3,5,}"

No habra otra forma/metodo/ de como hacerlo ?? sin tener que recurrir a
finciones de excel 4.0 o de add-ins ??

Agradezco cualquier opinion/ayuda/sugerencia/formula/solucion.
En espera de sus sabias y oportunas ideas me despido, atte.
Me alimento del conocimiento de todos

Preguntas similare

Leer las respuestas

#1 Pepito Delaosamayor
02/03/2009 - 02:49 | Informe spam
Vos tenes un problema que ni Bill Cosby, digo Gates, podes resolver.
De todas formas estoy rezando por vos para que los espertos
aparezcan y decifren la pregunta de vos.

"Orfao" wrote:

Hola Foristas !
Tengo un gran problemon !!!
y... cuento con vuestra valiosa ayuda para resolverlo,
se trata de lo siguiente:
Tengo

A B C D E F G H I J K L
M N O
1 0 8 1 6 1 1 0 2
1 7
1er grupo 2do grupo 3er grupo 4to grupo 5to grupo



Teniendo estos valores (unos y ceros cada tres columnas/grupos)
Como ubico las columnas (primeras de cada grupo de tres) donde tengo el
ultimo uno (1) y el penultimo uno ??

Los datos mostrados pueden estar en otra direccion cualquiera (es dedir que
no necesariamente empieze en A1 ) ,y puedo tener hasta 30 grupos de
diferentes cantidades de columnas por grupo (en el caso del ej. son 3) y por
supersto que los unos y ceros no estan siempre en la misma posicion.

La idea es obtener la suma de los valores ubicados en una misma direccion
relativa a su grupo, pero condicionado por otro valor tambien ubicados en
otras celdas con una direccion relativa a cada grupo. y finalmente lograr
algo como:
Hasta el ultimo grupo (con valor 1)
=sumaproducto(subtotales(9,desref(a1,,({2;3;5}-1)*3)+2)) = 6+1+7
y hasta el penultimo
=sumaproducto(subtotales(9,desref(a1,,({2;3}-1)*3)+2)) = 6+1

(Formulas que me hizo llegar Herctor Miguel, !muy interesantes por cierto.)

El problema esta en definir las columnas a sumar (2;3;5) y (2;3) y por
supuesto como introducirlas en las formulas

Luego de hacer varios intentos llegue a lo siguiente:
En es ejemplo mostrado, he calculado para cada columna

C1=SUMAPRODUCTO(SUBTOTALES(9;DESREF(a1;0;(FILA(INDIRECTO("1:5"))-1)*3))*2^(FILA(INDIRECTO("1:5"))-1))
esto es igual a 22
al usar C2ÞC.A.BIN(22) , esto me genera 10110 lo que me indica en orden
inverso la posicion de las columnas a sumar, liuego
C3=largo(C2) =5 (me indica el ultimo grupo), y calculo
C4Â-10^(C3-1) 0
C5=largo(C4) y defino el penultimao grupo (3)
Y para finalizar corrijo las formulas a:
=sumaproducto(subtotales(9,desref(a1,,(indirecto("1:"&C3-1)*3)+2))
=sumaproducto(subtotales(9,desref(a1,,(indirecto("1:"&C5-1)*3)+2))

Hasta aqui todo bien...pero...la funcion DEC.A.BIN solo convierte numeros
menores que 512 y es ahi justamente donde se me tranca el serrucho.
Creo que otra opcion seria concatenar los valores de todas las columnas
pero... Como lo logro estando los valores en grupos de tres columnas como en
este ejemplo ???

Con respecto a introducir el rango en la formula he utilizado Evaluar(Xn)
donde Xn es el rango que contiene por ej: "{2;3,5,}"

No habra otra forma/metodo/ de como hacerlo ?? sin tener que recurrir a
finciones de excel 4.0 o de add-ins ??

Agradezco cualquier opinion/ayuda/sugerencia/formula/solucion.
En espera de sus sabias y oportunas ideas me despido, atte.
Me alimento del conocimiento de todos
Respuesta Responder a este mensaje
#2 Orfao
02/03/2009 - 04:45 | Informe spam
Hola Pepito !!

Te agradezco enormemente tus rezos y plegarias... porque ya di con la
solucion del problema, con todo y lujo de detalles. Tal vez mis formulas no
sean tan cortas, tal vez esten un poco desordenadas y seguramente habran
muchos de ustedes que puedan "pulirlas" y/o perfeccionarlas/mejorarlas, pero
lo importante es que me funciona a la perfeccion y eso es justo lo que
necesito. (by now).
y... a menos que alguien se interese en mi trabajo, del cual puedo enviar
copia para su publicacion ,debo dseguir avanzando ...
no sin antes esperar que como bien dicces, algun "Bll Gates" me envie alguna
sugerencia / ayuda / recomendacion /idea o solucion a mis problemillas..
Ahh ! a proposito he escuchado que el Sr B.G. no tiene ni el mas remoto
conocimiento de computacion/Programacion/sistemas/informatica... sino mas
bien de negocios y las formas de ganar dinero a gran escala,.. y... poor sus
iniciales no sera familia de los "BEE GEES" .( Es solo un chiste ).

Saludos.!
Me alimento del conocimiento de todos


"Pepito Delaosamayor" wrote:

Vos tenes un problema que ni Bill Cosby, digo Gates, podes resolver.
De todas formas estoy rezando por vos para que los espertos
aparezcan y decifren la pregunta de vos.

"Orfao" wrote:

> Hola Foristas !
> Tengo un gran problemon !!!
> y... cuento con vuestra valiosa ayuda para resolverlo,
> se trata de lo siguiente:
> Tengo
>
> A B C D E F G H I J K L
> M N O
> 1 0 8 1 6 1 1 0 2
> 1 7
> 1er grupo 2do grupo 3er grupo 4to grupo 5to grupo
>
>
>
> Teniendo estos valores (unos y ceros cada tres columnas/grupos)
> Como ubico las columnas (primeras de cada grupo de tres) donde tengo el
> ultimo uno (1) y el penultimo uno ??
>
> Los datos mostrados pueden estar en otra direccion cualquiera (es dedir que
> no necesariamente empieze en A1 ) ,y puedo tener hasta 30 grupos de
> diferentes cantidades de columnas por grupo (en el caso del ej. son 3) y por
> supersto que los unos y ceros no estan siempre en la misma posicion.
>
> La idea es obtener la suma de los valores ubicados en una misma direccion
> relativa a su grupo, pero condicionado por otro valor tambien ubicados en
> otras celdas con una direccion relativa a cada grupo. y finalmente lograr
> algo como:
> Hasta el ultimo grupo (con valor 1)
> =sumaproducto(subtotales(9,desref(a1,,({2;3;5}-1)*3)+2)) = 6+1+7
> y hasta el penultimo
> =sumaproducto(subtotales(9,desref(a1,,({2;3}-1)*3)+2)) = 6+1
>
> (Formulas que me hizo llegar Herctor Miguel, !muy interesantes por cierto.)
>
> El problema esta en definir las columnas a sumar (2;3;5) y (2;3) y por
> supuesto como introducirlas en las formulas
>
> Luego de hacer varios intentos llegue a lo siguiente:
> En es ejemplo mostrado, he calculado para cada columna
>
> C1=SUMAPRODUCTO(SUBTOTALES(9;DESREF(a1;0;(FILA(INDIRECTO("1:5"))-1)*3))*2^(FILA(INDIRECTO("1:5"))-1))
> esto es igual a 22
> al usar C2ÞC.A.BIN(22) , esto me genera 10110 lo que me indica en orden
> inverso la posicion de las columnas a sumar, liuego
> C3=largo(C2) =5 (me indica el ultimo grupo), y calculo
> C4Â-10^(C3-1) 0
> C5=largo(C4) y defino el penultimao grupo (3)
> Y para finalizar corrijo las formulas a:
> =sumaproducto(subtotales(9,desref(a1,,(indirecto("1:"&C3-1)*3)+2))
> =sumaproducto(subtotales(9,desref(a1,,(indirecto("1:"&C5-1)*3)+2))
>
> Hasta aqui todo bien...pero...la funcion DEC.A.BIN solo convierte numeros
> menores que 512 y es ahi justamente donde se me tranca el serrucho.
> Creo que otra opcion seria concatenar los valores de todas las columnas
> pero... Como lo logro estando los valores en grupos de tres columnas como en
> este ejemplo ???
>
> Con respecto a introducir el rango en la formula he utilizado Evaluar(Xn)
> donde Xn es el rango que contiene por ej: "{2;3,5,}"
>
> No habra otra forma/metodo/ de como hacerlo ?? sin tener que recurrir a
> finciones de excel 4.0 o de add-ins ??
>
> Agradezco cualquier opinion/ayuda/sugerencia/formula/solucion.
> En espera de sus sabias y oportunas ideas me despido, atte.
> Me alimento del conocimiento de todos
Respuesta Responder a este mensaje
#3 Héctor Miguel
02/03/2009 - 07:23 | Informe spam
hola, moises !

1) por los datos que expones, no hay forma de llegar a la suma de 22
-> C1=SUMAPRODUCTO(SUBTOTALES(9;DESREF(a1;0;(FILA(INDIRECTO("1:5"))-1)*3))*2^(FILA(INDIRECTO("1:5"))-1))
a menos que el orden de los "unos" coincida (exactamente) con lo devuelto por la funcion "dec.a.bin" -???-
(esto me descontrolo un poquitin, ademas de que tus modelos no son faciles de (re)construir) :D

2) OJO: corrigiendo los datos hasta obtener lo que indicas en esta consulta...
y si no quieres usar macro-funciones de xl-4.0 NI vba (o complementos con macros)
PERO... si te es valido definir nombres usando funciones "normales" -???-
prueba con los siguientes (OJO con el separador de argumentos y el "guion_bajo" es parte del nombre)
(solo toma nota que son "relativos" a la celda activa al momento de definirlos)
(porque no se si requieras referencias a filas y/o columnas (semi)relativas/absolutas) -?????-

a) _1Matriz =si(subtotales(9,desref(!a1,,(fila(indirecto("1:5"))-1)*3))=1,(fila(indirecto("1:5"))-1)*3)
b) _2Cuenta =contar(_1matriz)
c) _3Ultimo =si(_2cuenta,max(_1matriz))
d) _4Penultimo =si(_2cuenta>1,k.esimo.mayor(_1matriz,2))

saludos,
hector.

__ OP __
A B C D E F G H I J K L M N O
1 0 8 1 6 1 1 0 2 1 7
1er grupo 2do grupo 3er grupo 4to grupo 5to grupo

Teniendo estos valores (unos y ceros cada tres columnas/grupos)
Como ubico las columnas (primeras de cada grupo de tres) donde tengo el ultimo uno (1) y el penultimo uno ??
Los datos mostrados pueden estar en otra direccion cualquiera (es dedir que no necesariamente empieze en A1)
y puedo tener hasta 30 grupos de diferentes cantidades de columnas por grupo (en el caso del ej. son 3)
y por supersto que los unos y ceros no estan siempre en la misma posicion.

La idea es obtener la suma de los valores ubicados en una misma direccion relativa a su grupo
pero condicionado por otro valor tambien ubicados en otras celdas con una direccion relativa a cada grupo
y finalmente lograr algo como: Hasta el ultimo grupo (con valor 1)
=sumaproducto(subtotales(9,desref(a1,,({2;3;5}-1)*3)+2)) = 6+1+7
y hasta el penultimo
=sumaproducto(subtotales(9,desref(a1,,({2;3}-1)*3)+2)) = 6+1

El problema esta en definir las columnas a sumar (2;3;5) y (2;3) y por supuesto como introducirlas en las formulas

Luego de hacer varios intentos llegue a lo siguiente:
En es ejemplo mostrado, he calculado para cada columna

C1=SUMAPRODUCTO(SUBTOTALES(9;DESREF(a1;0;(FILA(INDIRECTO("1:5"))-1)*3))*2^(FILA(INDIRECTO("1:5"))-1))
esto es igual a 22
al usar C2ÞC.A.BIN(22) , esto me genera 10110 lo que me indica en orden inverso la posicion de las columnas a sumar, liuego
C3=largo(C2) =5 (me indica el ultimo grupo), y calculo
C4Â-10^(C3-1) 0
C5=largo(C4) y defino el penultimao grupo (3)
Y para finalizar corrijo las formulas a:
=sumaproducto(subtotales(9,desref(a1,,(indirecto("1:"&C3-1)*3)+2))
=sumaproducto(subtotales(9,desref(a1,,(indirecto("1:"&C5-1)*3)+2))

Hasta aqui todo bien...pero...la funcion DEC.A.BIN solo convierte numeros menores que 512
y es ahi justamente donde se me tranca el serrucho.
Creo que otra opcion seria concatenar los valores de todas las columnas pero...
Como lo logro estando los valores en grupos de tres columnas como en este ejemplo ???

Con respecto a introducir el rango en la formula he utilizado Evaluar(Xn) donde Xn es el rango que contiene por ej: "{2;3,5,}"

No habra otra forma/metodo/ de como hacerlo ?? sin tener que recurrir a finciones de excel 4.0 o de add-ins ??
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida