Averiguar la referencia de celda que contiene un dato especifico

08/12/2006 - 22:33 por Miguel | Informe spam
Hola a todos, a ver si me podeis ayudar con este tema.

Necesito averiguar de alguna forma la referencia de una celda, que
pertenece a un rango, con un dato especifico. Por ejemplo, el rango
puede ser el siguiente:
A B C D E F G
1 1 2 3 4
2 5 6 7 8 9 10 11
3 12 13 14 15 16 17 18
4 19 20 21 22 23 24 25
5 26 27 28 29 30



La referencia de la celda que contiene el dato "7" es "C2". Entonces
quiero que esa referencia aparezca en la celda "AG21", puesto que en la
celda "AG20" tiene como dato a buscar el "7".
AA AB AC AD AE AF AG AH
20 1 2 3 4 5 6 7 8
21 C2
22
23
24



Muchas gracias a todos.

Miguel

Preguntas similare

Leer las respuestas

#6 KL
09/12/2006 - 03:55 | Informe spam
Hola HM,

=direccion(min(si(a1:f5=ag20,fila(a1:a5))),min(si(a1:f5=ag20,columna(a1:f1))))



Si hay mas de una celda con el valor 7, me parece que la formula dara diferentes resultados en los siguientes casos:

1) [B4]=7 y [D1]=7 (sera falso)

2) [B1]=7 y [D4]=7

Saludos,
KL
Respuesta Responder a este mensaje
#7 Ivan
09/12/2006 - 04:01 | Informe spam
hola chicos,

he probado la funcion de KL (hasta ahora estoy usando los bucles), y la
1ª vez me ha funcionado bien, pero despues me da el error '91 Variable
o bloque with no establecido', y salvo que lo haya hecho sin darme
cuenta, no he cambiado nada mas que el valor a buscar, que ademas
existe.

asi es como lo he probado:->

Function miRef(ByRef rango As Range, ByVal valor As Double) As String
miRef = rango.Find(valor, rango(1, 1), xlValues,
xlWhole).Address(0, 0)
End Function

Sub textMiRef()
Dim result As String, rng As Range
With Hoja1
Set rng = .Range("a1:a" & .[a65536].End(xlUp).Row)
End With
result = miRef(rng, 50)
Debug.Print result
Set rng = Nothing
End Sub

la verdad es que es la 1ª vez que uso Find (que creo que me vendrq muy
bien) y no tengo ni idea de cual puede ser la causa del error, pues en
la funcion el 'rango' si lo reconoce ya que al depurar rango(1,1) me da
el valor correspondiente a dicha celda(a1).

si veis algo os lo agradezco

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#8 Héctor Miguel
09/12/2006 - 04:03 | Informe spam
hola, KL !

=direccion(min(si(a1:f5=ag20,fila(a1:a5))),min(si(a1:f5=ag20,columna(a1:f1))))



Si hay mas de una celda con el valor 7, me parece que la formula dara diferentes resultados en los siguientes casos:
1) [B4]=7 y [D1]=7 (sera falso)
2) [B1]=7 y [D4]=7



es correcto... estoy 'contando' [segun el ejemplo expuesto por Miguel] que no se den estos casos :))
de lo contrario... [aun por UDF] haria falta confirmar cual de todos es el que esta buscando ;)

saludos,
hector.
Respuesta Responder a este mensaje
#9 KL
09/12/2006 - 04:12 | Informe spam
Hola Ivan,

El problema esta en el procedimiento "textMiRef" que es donde haces referencia a la hoja "Hoja1" de forma incorrecta. Probablemente
en tu libro no hay hoja cuya propiedad .CodeName (no se confunda con la propiedad .Name) equivalga a "Hoja1" o es que tu libro no
esta activo en el momento de ejecucion del codigo.

Saludos,
KL


"Ivan" wrote in message news:
hola chicos,

he probado la funcion de KL (hasta ahora estoy usando los bucles), y la
1ª vez me ha funcionado bien, pero despues me da el error '91 Variable
o bloque with no establecido', y salvo que lo haya hecho sin darme
cuenta, no he cambiado nada mas que el valor a buscar, que ademas
existe.

asi es como lo he probado:->

Function miRef(ByRef rango As Range, ByVal valor As Double) As String
miRef = rango.Find(valor, rango(1, 1), xlValues,
xlWhole).Address(0, 0)
End Function

Sub textMiRef()
Dim result As String, rng As Range
With Hoja1
Set rng = .Range("a1:a" & .[a65536].End(xlUp).Row)
End With
result = miRef(rng, 50)
Debug.Print result
Set rng = Nothing
End Sub

la verdad es que es la 1ª vez que uso Find (que creo que me vendrq muy
bien) y no tengo ni idea de cual puede ser la causa del error, pues en
la funcion el 'rango' si lo reconoce ya que al depurar rango(1,1) me da
el valor correspondiente a dicha celda(a1).

si veis algo os lo agradezco

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#10 Ivan
09/12/2006 - 04:26 | Informe spam
hola KL, gracias por tu rapida respuesta

realmente si tengo una 'Hoja1' (CodeName), pero no iba por ahí el
problema, del que acabo de descubrir la causa:->

resulta que las pruebas las he relizado sobre una columna cuyos
registros son numericos (aprox. del 1 al 10000, pero no estan todos),
pero que estan formateados de esta forma: '0000', y resulta que cuando
busco un numero de 4 digitos el resultado es correcto, pero si es por
debajo de 1000, me aparece el error.

he mirado la ayuda y menciona un argumento (de Find) sobre los
formatos, pero no especifica nada.

¿como se podria solucionar el problema?

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida