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

Ultima celda no-vacía

132 views
Skip to first unread message

Esteban Dido

unread,
Aug 3, 2007, 6:12:03 PM8/3/07
to
Hola, de un conjunto de celdas de una misma fila pero no consecutivas, ¿cómo
se puede saber (sin macros) cuál es la última que no está vacía?
Gracias por su ayuda

--

Héctor Miguel

unread,
Aug 4, 2007, 2:31:52 AM8/4/07
to
hola, Esteban !

> ... de un conjunto de celdas de una misma fila pero no consecutivas
> como se puede saber (sin macros) cual es la ultima que no esta vacia?

OJO: no puedes usarla en la misma columna que estas *consultando*

1) si la columna contiene valores numericos...
op1: =si(contar(a:a)>0,coincidir(9e307,a:a))
op2: =elegir(1+(contar(a:a)>0),,coincidir(9e307,a:a))

2) si la columna contiene valores de texto...
op1: =si(contar.si(a:a,"*")>0,coincidir(repetir("z",255),a:a))
op2: =elegir(1+(contar.si(a:a,"*")>0),,coincidir(repetir("z",255),a:a))

3) si puede contener ambos tipos de *valores* [numero y texto]...
op1: =max(si(contar(a:a)>0,coincidir(9307,a:a)),si(contar.si(a:a,"*")>0,coincidir(repetir("z",255),a:a)))
op2: =max(elegir(1+(contar(a:a)>0),,coincidir(9e307,a:a)),elegir(1+(contar.si(a:a,"*")>0),,coincidir(repetir("z",255),a:a)))

4) si quieres conocer la siguiente fila *libre*...
solo sumas 1 al principio o al final de cualquiera de las formulas anteriores ;)

toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' D

saludos,
hector.


Esteban Dido

unread,
Aug 4, 2007, 2:04:47 PM8/4/07
to
Gracias Héctor por tu respuesta.

Pero las celdas que debo analizar están el una 'fila' no en una 'columna' y
no son 'consecutivas'.
Mira el asunto es este:
En una hoja se llevan los pagos de las cuotas de los socios. Algunos están
al día, otros se atrasan dos meses y despues pagan, otros se atrasan 4 o 5
meses y luego pagan todo. Algunos cuando deben varias coutas hacen un abono
a la deuda, etc. Lo que se desea es registrar en una columna el último pago
de cada socio y la fecha de ese pago.
Lo hoja tiene los 12 meses del año y las columnas de cada mes son 10. Es
decir, Enero va de la columna A a la columna J. Febrero va de la K a la T,
Marzo va de la columna U a la columna AD ..., etc.
En las filas desde la 4 están los socios.
El valor pagado y la fecha de pago de cada mes están en las columnas H é I
en Enero, en las columnas R y S en Febrero, en las columnas AB y AC en
Marzo, ... etc (en las columnas octava y novena de cada mes)
Gracias por tu ayuda y la de cualquier otro forista que intervenga.


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:uYzxnEm1...@TK2MSFTNGP05.phx.gbl...

Héctor Miguel

unread,
Aug 4, 2007, 7:14:16 PM8/4/07
to
hola, Esteban !

> ... las celdas que debo analizar están el una 'fila' no en una 'columna' y no son 'consecutivas'. ...

tienes razon, me perdi buscando las propuestas [aunque seguiras sin poder usarlas en la misma fila que consultas]
solo cambia las referencias a letra de columnas por referencias al numero de fila [p.e.]
de: -> =si(contar(a:a)>0,coincidir(9e307,a:a))
a. -> =si(contar(1:1)>0,coincidir(9e307,1:1))
-> [o la version para buscar datos cuando son textos]
lo que te devuelve el numero de columna con el ultimo dato asentado para esa fila ;)

> En una hoja se llevan los pagos de las cuotas de los socios. Algunos estan al dia, otros se atrasan dos meses y despues pagan


> otros se atrasan 4 o 5 meses y luego pagan todo. Algunos cuando deben varias coutas hacen un abono a la deuda, etc.

> Lo que se desea es registrar en una columna el ultimo pago de cada socio y la fecha de ese pago.
> Lo hoja tiene los 12 meses del a#o y las columnas de cada mes son 10.


> Es decir, Enero va de la columna A a la columna J. Febrero va de la K a la T, Marzo va de la columna U a la columna AD ..., etc.

> En las filas desde la 4 estan los socios. El valor pagado y la fecha de pago de cada mes estan
> en las columnas H e I en Enero, en las columnas R y S en Febrero en las columnas AB y AC en Marzo, ... etc.
> (en las columnas octava y novena de cada mes)...

toma en cuenta que las formulas propuestas [con sus modificaciones] te devolverian la columna con el dato de la fecha
por lo que deberas restar 1 a la columna obtenida para devolver la columna que contiene el monto pagado
y dependiendo de en que columna deseas poner los datos con el ultimo pago registrado [seguramente]
podrias usar las formulas en su misma fila si delimitas el area NO a la fila completa, sino al rango de columnas necesario [misma fila]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ las consultas anteriores __

Esteban Dido

unread,
Aug 4, 2007, 7:47:20 PM8/4/07
to
Hola Héctor

Ya había hecho el cambio de las filas a columnas como indicas pero ni modo.
No funciona porque las celdas a analizar no son 'consecutivas/contiguas' y
la para la función COINCIDIR la 'matriz_buscada' debe ser un rango de celdas
contiguas.

ED

"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:OuJlw0u1...@TK2MSFTNGP06.phx.gbl...

Héctor Miguel

unread,
Aug 4, 2007, 7:56:25 PM8/4/07
to
hola, Esteban !

> Ya habia hecho el cambio de las filas a columnas como indicas pero ni modo.


> No funciona porque las celdas a analizar no son 'consecutivas/contiguas'

> y la para la funcion COINCIDIR la 'matriz_buscada' debe ser un rango de celdas contiguas...

si ya tienes *localizado* el numero de columna con el ultimo dato ingresado...
-> [pregunta]: para que necesitas a la funcion coincidir ???

podrias exponer la/s formula/s que estas utlizando ? [u su/s objetivo/s] :))

saludos,
hector.


Esteban Dido

unread,
Aug 4, 2007, 8:38:38 PM8/4/07
to
Hola Héctor,

NO es efectivo que tenga localizada la última columna con datos ingresados
de entre aquellas que necesito analizar.
Lo que tu fórmula me entrega es la última columna con datos de entre 'todas
las columnas' pero lo que necesito es la última columna con datos de las
columnas H, R, AB, ..., DN para obtener la última [DE ESAS 12 COLUMNAS] que
tiene datos.
(Mejor incluso si en lugar de obtener la última columna obtenemos el valor
de la última celda)
Todas ellas tienen valores numéricos.
La columna que sigue a aquella que me entregue la fórmula que busco será la
que contiene la fecha.
Respecto a 'necesitar' la función COINCIDIR, lo mencioné porque esa función
es parte de tu fórmula.

Gracias
ED


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:eU6oTMv1...@TK2MSFTNGP05.phx.gbl...

Héctor Miguel

unread,
Aug 4, 2007, 10:49:45 PM8/4/07
to
hola, Esteban !

> NO es efectivo que tenga localizada la ultima columna con datos ingresados de entre aquellas que necesito analizar.
> Lo que tu formula me entrega es la ultima columna con datos de entre 'todaslas columnas'
> pero lo que necesito es la ultima columna con datos de las columnas H, R, AB, ..., DN
> para obtener la ultima [DE ESAS 12 COLUMNAS] que tiene datos.
> (Mejor incluso si en lugar de obtener la ultima columna obtenemos el valor de la ultima celda)
> Todas ellas tienen valores numericos.
> La columna que sigue a aquella que me entregue la formula que busco sera la que contiene la fecha.
> Respecto a 'necesitar' la funcion COINCIDIR, lo mencione porque esa funcion es parte de tu formula.

la siguiente formula si puedes usarla en la misma fila donde buscas la ultima columna con algun dato ingresado...
-> siempre y cuando, la uses fuera de las columnas H, R, AB, ..., DN
solo que es de entrada matricial [ya sabes, al introducirla o editarla se confirma por ctrl+shift+enter]
y te devuelve el numero mayor de columna [cada 10 a partir de la 8, 18, 28, ..., 128] con datos ingresados
-> te sugiero utilizarla en una celda *auxiliar* para [tratar de] agilizar los tiempos de re/calculo de tu modelo <= OJO

=max(columna(h2:dn2)*(h2:dn2<>"")*(residuo(columna(h2:dn2)+2,10)=0))

con respecto de la funcion coincidir... [sinceramente] no recuerdo la formula [propuesta por mi ?] que refieres estar usando -?-
por eso comentaba que "una vez obtenido el numero de columna..." [para que necesitas la funcion coincidir ?] ;)

Esteban Dido

unread,
Aug 5, 2007, 4:30:35 PM8/5/07
to
Muchas gracias, Héctor.
Eso era. Perfecto.
No entiendo lo que hace la fórmula, no sé si es posible alguna explicación
[sólo para aprender algo más de los que saben mucho]
Lamento haberte dado tanta lata.
Respecto a 'COINCIDIR', esta fue tu primera propuesta:

1) si la columna contiene valores numericos...
op1: =si(contar(a:a)>0,coincidir(9e307,a:a))

op2: =elegir( ... etc.

Una cosa más, si me lo permites (creo que también voy a necesitarlo), ¿cómo
se puede obtener el valor contenido en esa última celda?

Saludos
Esteban

"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:eG8tKtw1...@TK2MSFTNGP05.phx.gbl...

Esteban Dido

unread,
Aug 5, 2007, 4:54:51 PM8/5/07
to
Muchas gracias, Héctor.
Eso era. Perfecto.
No entiendo lo que hace la fórmula, no sé si es posible alguna explicación
[sólo para aprender algo más de los que saben mucho]
Lamento haberte dado tanta lata.
Respecto a 'COINCIDIR', esta fue tu primera propuesta:

1) si la columna contiene valores numericos...


op1: =si(contar(a:a)>0,coincidir(9e307,a:a))

op2: =elegir( ... etc.

Una cosa más, si me lo permites (creo que también voy a necesitarlo), ¿cómo
se puede obtener el valor contenido en esa última celda?

Saludos
Esteban


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:eG8tKtw1...@TK2MSFTNGP05.phx.gbl...

Héctor Miguel

unread,
Aug 5, 2007, 5:39:09 PM8/5/07
to
hola, Esteban !

__ 1 __
> Eso era... No entiendo lo que hace la formula... si es posible alguna explicacion
__ 2 __


> Lamento haberte dado tanta lata. Respecto a 'COINCIDIR', esta fue tu primera propuesta:
> 1) si la columna contiene valores numericos...
> op1: =si(contar(a:a)>0,coincidir(9e307,a:a))
> op2: =elegir( ... etc.

__ 3 __
> ... (creo que tambien voy a necesitarlo), como se puede obtener el valor contenido en esa ultima celda?

1) la formula *condiciona* la busqueda de la ultima celda-columna [misma fila] siempre y cuando se trate de:
a) que este dentro de las columnas del rango especificado: [H:DN] -> columna(h2:dn2)
b) que dichas celdas no esten vacias: -> *(h2:dn2<>"")
c) que se trate de las columnas 8, 18, 28, ... 128: [H, R, AB, ..., DN] -> *(residuo(columna(h2:dn2)+2,10)=0)
d) y todo lo anterior dentro de la funcion: -> =max(...)

2) oops... creo que *me vi mal*, busque en respuestas anteriores a esteban [no se me ocurrio de esta misma consulta] :D

3) prueba con cualquiera de las siguientes [entre otras posibilidades]...
OJO: todas siguen siendo de entrada matricial y se asume que iniciamos en la fila 2 :-((

=indice(2:2,max(columna(h2:dn2)*(h2:dn2<>"")*(residuo(columna(h2:dn2)+2,10)=0)))
=desref(a2,,max(columna(h2:dn2)*(h2:dn2<>"")*(residuo(columna(h2:dn2)+2,10)=0))-1)
=indice(indirecto(fila()&":"&fila()),max(columna(h2:dn2)*(h2:dn2<>"")*(residuo(columna(h2:dn2)+2,10)=0)))
=celda("contenido",indirecto(direccion(fila(),max(columna(h2:dn2)*(h2:dn2<>"")*(residuo(columna(h2:dn2)+2,10)=0)))))

si cualquier duda... comentas ?
saludos,
hector.


Esteban Dido

unread,
Aug 5, 2007, 6:13:05 PM8/5/07
to
Gracias, ¡Maestro!

Hasta la próxima ...

Saludos
Esteban


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:OuUhPk61...@TK2MSFTNGP02.phx.gbl...

Tinteño sonriente :-)

unread,
Oct 27, 2007, 10:06:01 AM10/27/07
to
Te interesa una macro... tendras un mejor control... y mas rapido...?

Esteban Dido

unread,
Oct 27, 2007, 11:56:45 AM10/27/07
to
¿Por qué no?. Veámosla...

"Tinteño sonriente :-)" <Tinteos...@discussions.microsoft.com> escribió
en el mensaje news:DE09D5B6-2CB0-4ADE...@microsoft.com...

Tinteño sonriente :-)

unread,
Oct 27, 2007, 12:18:01 PM10/27/07
to
Un saludo desde... Peru

Gracias... si votaste... por Machupicchu...

puedes enviarme tu archivo...?
te propondre la macro en la misma hoja... y en este foro...

vil...@hotmail.com

Esteban Dido

unread,
Oct 27, 2007, 7:48:39 PM10/27/07
to
No.


"Tinteño sonriente :-)" <Tinteos...@discussions.microsoft.com> escribió

en el mensaje news:5CF369C3-8DC4-4049...@microsoft.com...

0 new messages