Discussion:
Cómo selecciono la última celda con un número mayor a cero en Exce
(demasiado antiguo para responder)
JuanCarlosGP
2007-11-13 04:49:01 UTC
Permalink
Tengo una columna con una fórmula cuyo resultado puede ser "cero" o bien
cualquier número positivo... lo que necesito es que en otra hoja, traiga el
último dato positivo calculado en esa columna, por ejemplo, ahora tengo estos
datos en la columna D:

900
400
0
100
89

... cada número fue calculado por la misma fórmula, y puede seguir
calculando por 50 renglones mas... lo que necesito es que busque el último
valor (89) y lo ponga en otra celda en otra hoja...

gracias por el apoyo..

Saludos,

JCGP.
Héctor Miguel
2007-11-13 05:05:29 UTC
Permalink
hola, Juan Carlos !
Tengo una columna con una formula cuyo resultado puede ser "cero" o bien cualquier numero positivo...
lo que necesito es que en otra hoja, traiga el ultimo dato positivo calculado en esa columna
900
400
0
100
89
... cada numero fue calculado por la misma formula, y puede seguir calculando por 50 renglones mas...
lo que necesito es que busque el ultimo valor (89) y lo ponga en otra celda en otra hoja...
si suponemos que la "otra" hoja es la hoja1...

distinto de cero: -> =buscar(2,1/(hoja1!d1:d100),hoja1!d1:d100)

mayor que cero: -> =buscar(2,1/(hoja1!d1:d100>0),hoja1!d1:d100)

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

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
JuanCarlosGP
2007-11-13 05:21:01 UTC
Permalink
Hola Héctor,

Muchas gracias por tu respuesta... si me sirvió y funciona bien... encontré
otra forma también...

BUSCARV(BUSCAR(MAXA(D7:D23),D7:D23),D7:H43,5,VERDADERO)

lo que hice fue buscar el máximo valor de otra columna de referencia que va
creciendo conforme se agregan datos... este valor es una simple fecha, es
decir, busco cuándo fue la última fecha en la que se ingresó un valor y luego
le pido que me traiga el valor que corresponde a la celda que me interesa...

probé tu fórmula y también funciona.

Saludos,

JCGP.
Post by Héctor Miguel
hola, Juan Carlos !
Tengo una columna con una formula cuyo resultado puede ser "cero" o bien cualquier numero positivo...
lo que necesito es que en otra hoja, traiga el ultimo dato positivo calculado en esa columna
900
400
0
100
89
... cada numero fue calculado por la misma formula, y puede seguir calculando por 50 renglones mas...
lo que necesito es que busque el ultimo valor (89) y lo ponga en otra celda en otra hoja...
si suponemos que la "otra" hoja es la hoja1...
distinto de cero: -> =buscar(2,1/(hoja1!d1:d100),hoja1!d1:d100)
mayor que cero: -> =buscar(2,1/(hoja1!d1:d100>0),hoja1!d1:d100)
toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' :D
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
AG
2007-11-13 19:57:24 UTC
Permalink
La primera fórmula de Hector Miguel me funciona, pero no la entiendo. ¿Da
igual si el 2 lo substituyo por un 3 o por un 1.? Por qué?
=buscar(2,1/(hoja1!d1:d100),hoja1!d1:d100)

La ayuda de Excel la define como la forma "vectorial" de la función BUSCAR.
BUSCAR(valor_buscado;vector_de_comparación;vector_resultado)

En el ejemplo de la ayuda, el vector_de_comparación está ordenado de menor a
mayor. En el caso que nos ocupa, sin embargo, no hay ordenación en los
números.

Intento razonar, pero al final llego a la conclusión que no entiendo bien la
función BUSCAR:

La fórmula busca un valor 2 entre los inversos de la columna. Pero si entre
ellos hay un valor 0, 1/0 daría error? pero no es así.

Lo que hace la fórmula es que se va al último valor porque no encuentra 2
entre ninguno de los valores anteriores, sino que todos son más pequeños; en
realidad menores que 1. Pero eso se contradice, poque he puesto entre medias
un valor de 0,001, cuyo inverso serían 1000 y tampoco se para en él, sino
que da el último número igualmente.

Lo importante de estos ejemplos no es que funcionen una vez, sino que uno
pueda recordar la manera de aplicar las fórmulas en otra situación que
aparezca al trabajar con Excel.

La fórmula de BUSCARV de Juan Carlos me da 0. O sea, que no funciona.
Héctor Miguel
2007-11-14 02:33:32 UTC
Permalink
hola, (...) ?

__ 1 __
La primera formula de Hector Miguel me funciona, pero no la entiendo.
Da igual si el 2 lo substituyo por un 3 o por un 1.? Por que?
=buscar(2,1/(hoja1!d1:d100),hoja1!d1:d100)
La ayuda de Excel la define como la forma "vectorial" de la funcion BUSCAR.
BUSCAR(valor_buscado;vector_de_comparacion;vector_resultado)
En el ejemplo de la ayuda, el vector_de_comparacion esta ordenado de menor a mayor.
En el caso que nos ocupa, sin embargo, no hay ordenacion en los numeros.
La formula busca un valor 2 entre los inversos de la columna. Pero si entre ellos hay un valor 0, 1/0 daría error? pero no es asi.
1) dentro de los comportamientos "no documentados" de la funcion buscar, considera (p.e.) la posibilidad de:
trabajar con la "omision" de valores de error
nota que el error de dividir por cero SI lo encuentras en la matriz (p.e.)
selecciona en la barra de formulas la siguiente parte de la formula: -> 1/(Hoja1!D1:D100) <= y pulsa {F9}

__ 2 __
Lo que hace la formula es que se va al ultimo valor porque no encuentra 2 entre ninguno de los valores anteriores
sino que todos son mas pequenos; en realidad menores que 1. Pero eso se contradice
poque he puesto entre medias un valor de 0,001, cuyo inverso serian 1000 y tampoco se para en el sino que da el ultimo numero igualmente.
2) lo que la funcion "busca":
a) no es (precisamente) "el inverso" del contenido de las celdas en "vector_de_comparacion"
b) si el resultado de 1/0.001 (1000) NO es "el ultimo valor", la funcion seguira tratando de encontrar 2 (o su inferior mas cercano)

__ 3 __
Lo importante de estos ejemplos no es que funcionen una vez, sino que uno pueda recordar
la manera de aplicar las formulas en otra situacion que aparezca al trabajar con Excel.
3) tampoco es una "garantia" de que siempre encontrara "el ultimo valor" (prueba intercalando varios 0.001) :-(( <= OJO
una forma de "asegurarte" que obtendras siempre "el ultimo valor" ingresado en un rango (NO columna completa)...
es (p.e.) la siguiente formula "matricial": -> =indice(hoja1!d1:d10,max(si(hoja1!d1:d100>0,fila(hoja1!d1:d100))))
pero (como siempre, tenia que haber un "pero")... no debe haber resultados de error en el rango de busqueda :-((
o... (como siempre) una solucion es "alargando" la formula para omitir los errores (no necesario en buscar_vectorial)

__ 4 __
La formula de BUSCARV de Juan Carlos me da 0. O sea, que no funciona.
4) (probablemente) te hace falta conocer el contenido (real) de su "rango de operacion" ? (D7:H43,5 <= la columna 5: "H")

saludos,
hector.
Angel Garcia
2007-11-14 17:33:05 UTC
Permalink
Parece que cuando uno cree que va entendiendo todo lo que hay en Excel, salen comportamientos "no documentados", que me dejan con la boca abierta.
Post by Héctor Miguel
trabajar con la "omision" de valores de error
Ya veo que cuando hay algún error, la función BUSCAR lo ignora.
Post by Héctor Miguel
selecciona en la barra de formulas la siguiente parte de la formula: -> 1/(Hoja1!D1:D100) <= y pulsa {F9}
¡Sorprendente!: sale un cuadro con todos los resultados (cien en nuestro caso). Desconocía, y me tendré que documentar, qué es lo que hace la F9
Post by Héctor Miguel
3) tampoco es una "garantia" de que siempre encontrara "el ultimo valor" (prueba intercalando varios 0.001) :-(( <= OJO
una forma de "asegurarte" que obtendras siempre "el ultimo valor" ingresado en un rango (NO columna completa)...
es (p.e.) la siguiente formula "matricial": -> =indice(hoja1!d1:d10,max(si(hoja1!d1:d100>0,fila(hoja1!d1:d100))))
Efectivamente. Para mi sorpresa, al introducir el cuarto valor 0,001 en la columna de números ya no llega al último. ¡Tampoco por ahora lo entiendo!

Bueno. He impreso estas respuestas de Hector, y seguiré documentándome. Yo me había conformado hasta ahora creyendo que siempre la utilidad de la función BUSCAR estaba limitada a que la lista donde se buscaba tenía que estar ordenada de menor a mayor.

Si podéis indicarme una página donde hable de estas otras utilidades no documentadas... perderé menos tiempo buscándola.

Mil gracias.
Héctor Miguel
2007-11-14 21:49:31 UTC
Permalink
hola, Angel !
... indicarme una pagina donde hable de estas otras utilidades no documentadas... perdere menos tiempo buscandola.
(creo que) por su misma condicion de "no documentadas", ese tipo de caracteristicas no resulta de localizacion sencilla/facil -?-

1) tendriamos que... transcribir (como minimo) los textos de la ayuda en linea {F1} luego de consultar funcion-por-funcion
-> que es donde encuentras de primera mano cual es el uso de cada funcion y sus argumentos...
-> asi como de las posibles situaciones en las que se obtendrian errores si alguno de los argumentos es mal usado
2) luego de lo anterior, habria que hacer una busqueda (+/- exhaustiva) en los servidores de los grupos de noticias...
tratando de filtrar conversaciones donde se comenten comportamientos no documentados de algunas funciones...
3) despues, podriamos incluso echarnos un clavado a la base del conocimiento... o en la MSDN... o en ???
4) y todo lo anterior, sin considerar (aun) la posibilidad de habilidades y conocimientos de los usuarios (entre otras cosillas)

o... podrias encargarte tu mismo de hacer las investigaciones pertinentes (+/- como lo apuntado anteriormente)

o... comentar por donde empezamos a darle y... con un poquitin de paciencia y mucho tiempo de research (o sera al contrario ?)

encontrar sitios que hablen -expresamente- de lo no-documentado en las aplicaciones ???... :P
prueba inciando con los siguientes:
http://support.microsoft.com/kb/200724
http://mvps.org/dmcritchie/excel/datetime.htm#datedif
http://support.microsoft.com/default.aspx?scid=kb;es;843504
http://j-walk.com/ss/excel/eee/index.htm

saludos,
hector.
Jean-ClaudeRJ
2008-11-02 12:00:00 UTC
Permalink
Estimado Hectór:

he seguido con interes tus explicaciones sobre BUSCAR y ahorra, me pregunto
si se puesde utilizar estas propriedades de la función para encontrar la
primera celda que tenga un valor mayor a cero.

Saludos

Jean-Claude
KL
2008-11-02 13:55:23 UTC
Permalink
Hola Jean-Claude,
...me pregunto
si se puesde utilizar estas propriedades de la función para encontrar la
primera celda que tenga un valor mayor a cero.
Mientras vuelve HM, prueba la siguiente formula para el rango A1:A10 que
solo contiene valores numericos:

=INDICE(A1:A10;COINCIDIR(VERDADERO;INDICE(A1:A10>0;);))

o bien (mas corta, pero tambien mas lenta)

=INDICE(A1:A10;COINCIDIR(1;INDICE(--(A1:A10>0););))

Ahora, si el rango A1:A10 contiene texto y numeros y hay que buscar el
primer numero mayor a 0, entonces:

=INDICE(A1:A10;COINCIDIR(1;INDICE(ESNUMERO(A1:A10)*(A1:A10>0););))

Saludos,
KL
Xavier Budet Graco
2008-11-02 14:50:44 UTC
Permalink
Bienvenido de nuevo KL.
--
Saludos,

Xavier
***@MACcgac.es
Quitar MAC para contestar. Gracias.
Post by KL
Hola Jean-Claude,
...me pregunto
si se puesde utilizar estas propriedades de la función para encontrar la
primera celda que tenga un valor mayor a cero.
Mientras vuelve HM, prueba la siguiente formula para el rango A1:A10 que
=INDICE(A1:A10;COINCIDIR(VERDADERO;INDICE(A1:A10>0;);))
o bien (mas corta, pero tambien mas lenta)
=INDICE(A1:A10;COINCIDIR(1;INDICE(--(A1:A10>0););))
Ahora, si el rango A1:A10 contiene texto y numeros y hay que buscar el
=INDICE(A1:A10;COINCIDIR(1;INDICE(ESNUMERO(A1:A10)*(A1:A10>0););))
Saludos,
KL
KL
2008-11-02 15:11:54 UTC
Permalink
Post by Xavier Budet Graco
Bienvenido de nuevo KL.
Gracias, Xavier. No me he ido muy lejos - leo el foro de vez en cuando
aunque no tengo mucho tiempo para contestar. Normalmente busco consultas sin
respuesta los fines de semana, pero suelen ser pocas ya que el foro esta en
buenas manos :-)

Saludos,
KL
Jean-ClaudeRJ
2008-11-02 16:20:01 UTC
Permalink
Gracias KL
Saludos
J-Claude

Loading...