Cómo determinar la ocurrencia de un número en las celdas selecci on

11/11/2005 - 03:10 por Victor Flores | Informe spam
Tengo una fila de la A1 hasta la K1, con varios valores numéricos, necesito
seleccionar 4 o 5 celdas de entre este rango y poder determinar cuales de
estas celdas contienen un "x" número (p.e. el número 5).

Se como hacerle para que me diga si todo el rango de A1 a K1 contienen "x"
número, pero yo quiero poder seleccionar algunas (no todas) celdas y poder
determinar si dentro de las celdas seleccionadas contiene dicho número. Y
cuantas veces esta ese número dentro de las celdas seleccionadas.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/11/2005 - 06:50 | Informe spam
hola, Victor !

... de la A1 hasta la K1... varios valores numericos... seleccionar 4 o 5 celdas de entre este rango y
... determinar cuales de estas celdas contienen un "x" numero (p.e. el numero 5).
Se como hacerle para que me diga si todo el rango de A1 a K1 contienen "x" numero
pero yo quiero... seleccionar algunas... celdas y... determinar si dentro de las... seleccionadas contiene dicho numero.
Y cuantas veces esta ese numero dentro de las celdas seleccionadas.



para poder 'trabajar' con SOLO unas celdas ->seleccionadas<- [creo que] vas a necesitar el apoyo de macros -?-
o... [una posible alternativa es] una especie de 'referencia indirecta', definiendo un nombre que 'apunte' a esa 'seleccion' ;)

suponiendo que en la celda 'M1' esta 'el numero' que requieres encontrar [p.e. el 5... o 31... o "x"]
y que en la celda 'N1' 'construyes' la referencia a SOLO unas celdas ->concatenando<- sus 'direcciones' [p.e]...
a) si quisieras referenciar al rango 'F1:H1' escribes en 'N1' -> f1&g1&h1
b) si quisieras referenciar al rango 'A1,C1:E1,K1' escribes en 'N1' -> a1&c1&d1&e1&k1

1) define un nombre con -menu- insertar / nombre / definir...
nombre: [p.e. X.Rango]
se refiere a: la formula -> =evaluar(!$n$1)

2) en la celda donde necesites 'contar' las veces que aparece 'el numero' [en M1] usa la sigiente formula...
=sumaproducto(largo(x.rango)-largo(sustituir(x.rango,m1,""))+0*hoy())

3) si 'el numero' que se busca es 'compuesto' [p.e. 33] y alguna 'terminacion' de celda lo 'construye' con el inicio de la siguiente...
-> p.e. si A1 es 123 y... C1 ->INICIA<- con '3' la formula estaria 'mintiendo' [no se si soy 'claro' en este caso] :))
-> para 'corregir' esta 'aberracion'... se necesita ->separar<- la concatenacion de las direcciones... [p.e.]
en lugar de 'construirla' con: -> a1&c1&d1&e1&k1 tendria que ser +/- asi: -> a1&"."&c1&"."&d1&"."&e1&"."&k1

parece 'todo un rollo' :-(( [pero te aseguro que es bastante 'sencillo y practico'] :D
si cualquier duda, o informacion adicional, o prefieres el uso de macros... comentas ?
saludos,
hector.

p.d. solo toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' :D
y las otras formas/formulas para contar las coincidencias 'directas' pudieran ser...
=sumaproducto(largo(a1:k1)-largo(sustituir(a1:k1,m1,""))) <= para todas las coincidencias en el rango completo
=sumaproducto(largo(a1&d1&f1)-largo(sustituir(a1&d1&f1,m1,""))) <= para las coincidencias en un rango 'seleccionado' ;)
Respuesta Responder a este mensaje
#2 Victor Flores
12/11/2005 - 02:23 | Informe spam
Héctor, gracias, por tu ayuda, lo que me indicas me quedó claro (creo,
jejejeje), sin embargo, creo que si va a ser necesario una macro, por que lo
que intento hacer con esto es que al seleccionar con el ratón o mouse o
apuntador, varias celdas (p.e, A1, C1, K1), me diga cuantas veces está dentro
de esas celdas un "x" número, pero posteriormente seleccionar otras celdas
diferentes y también me diga si hay ese "x" número en esas otras celdas,
(p.e, B1, C1, D1, K1). Creo que esto se tendría que hacer con una macro y con
un botón de comando, para que cada vez que yo seleccione celdas diferentes
revisar el resultado...

"Héctor Miguel" escribió:

hola, Victor !

> ... de la A1 hasta la K1... varios valores numericos... seleccionar 4 o 5 celdas de entre este rango y
> ... determinar cuales de estas celdas contienen un "x" numero (p.e. el numero 5).
> Se como hacerle para que me diga si todo el rango de A1 a K1 contienen "x" numero
> pero yo quiero... seleccionar algunas... celdas y... determinar si dentro de las... seleccionadas contiene dicho numero.
> Y cuantas veces esta ese numero dentro de las celdas seleccionadas.

para poder 'trabajar' con SOLO unas celdas ->seleccionadas<- [creo que] vas a necesitar el apoyo de macros -?-
o... [una posible alternativa es] una especie de 'referencia indirecta', definiendo un nombre que 'apunte' a esa 'seleccion' ;)

suponiendo que en la celda 'M1' esta 'el numero' que requieres encontrar [p.e. el 5... o 31... o "x"]
y que en la celda 'N1' 'construyes' la referencia a SOLO unas celdas ->concatenando<- sus 'direcciones' [p.e]...
a) si quisieras referenciar al rango 'F1:H1' escribes en 'N1' -> f1&g1&h1
b) si quisieras referenciar al rango 'A1,C1:E1,K1' escribes en 'N1' -> a1&c1&d1&e1&k1

1) define un nombre con -menu- insertar / nombre / definir...
nombre: [p.e. X.Rango]
se refiere a: la formula -> =evaluar(!$n$1)

2) en la celda donde necesites 'contar' las veces que aparece 'el numero' [en M1] usa la sigiente formula...
=sumaproducto(largo(x.rango)-largo(sustituir(x.rango,m1,""))+0*hoy())

3) si 'el numero' que se busca es 'compuesto' [p.e. 33] y alguna 'terminacion' de celda lo 'construye' con el inicio de la siguiente...
-> p.e. si A1 es 123 y... C1 ->INICIA<- con '3' la formula estaria 'mintiendo' [no se si soy 'claro' en este caso] :))
-> para 'corregir' esta 'aberracion'... se necesita ->separar<- la concatenacion de las direcciones... [p.e.]
en lugar de 'construirla' con: -> a1&c1&d1&e1&k1 tendria que ser +/- asi: -> a1&"."&c1&"."&d1&"."&e1&"."&k1

parece 'todo un rollo' :-(( [pero te aseguro que es bastante 'sencillo y practico'] :D
si cualquier duda, o informacion adicional, o prefieres el uso de macros... comentas ?
saludos,
hector.

p.d. solo toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' :D
y las otras formas/formulas para contar las coincidencias 'directas' pudieran ser...
=sumaproducto(largo(a1:k1)-largo(sustituir(a1:k1,m1,""))) <= para todas las coincidencias en el rango completo
=sumaproducto(largo(a1&d1&f1)-largo(sustituir(a1&d1&f1,m1,""))) <= para las coincidencias en un rango 'seleccionado' ;)



Respuesta Responder a este mensaje
#3 Héctor Miguel
12/11/2005 - 07:26 | Informe spam
hola, Victor !

... creo que si va a ser necesario una macro
... que al seleccionar... varias celdas (p.e, A1, C1, K1)
... diga cuantas veces esta dentro de esas celdas un "x" numero
... seleccionar otras celdas... y tambien me diga si hay ese "x" numero en esas otras celdas [...]



suponiendo que el "x numero" se toma de la celda 'M1'...
y que el mensaje 'quisieras' que saltara al hacer un click-derecho sobre cualquier celda del rango ->seleccionado<-...
prueba con el codigo [a manera de ejemplo] al final de este mensaje ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
en el modulo de codigo de 'esa' hoja ==Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("a1:k1")) Is Nothing Then Exit Sub
Dim Seleccion As Range, Celda As Range, Total As Integer, Veces As Byte, _
Titulo As String, Msj As String, Base
Base = Range("m1"): Set Seleccion = Intersect(Target, Range("a1:k1"))
Titulo = "En la seleccion actual: " & Seleccion.Address(0, 0) & vbCr & _
"el numero " & Base & " se encuentra "
For Each Celda In Seleccion
If InStr(Celda, Range("m1")) > 0 Then
Veces = (Len(Celda) - Len(Application.Substitute(Base, Celda, ""))) / Len(Base)
Total = Total + Veces: If Msj <> "" Then Msj = Msj & vbCr
Msj = Msj & "en la celda " & Celda.Address(0, 0) & " esta en " & Veces & " ocasion(es)."
End If: Next: MsgBox Titulo & Total & " veces:" & vbCr & Msj
Set Seleccion = Nothing: Cancel = True
End Sub
Respuesta Responder a este mensaje
#4 Victor Flores
14/11/2005 - 20:54 | Informe spam
Hector, muchas gracias, eso era exactamente lo que yo buscaba, ahora solo me
resta hacerle algunas modificaciones... Muchas gracias...

"Héctor Miguel" escribió:

hola, Victor !

> ... creo que si va a ser necesario una macro
> ... que al seleccionar... varias celdas (p.e, A1, C1, K1)
> ... diga cuantas veces esta dentro de esas celdas un "x" numero
> ... seleccionar otras celdas... y tambien me diga si hay ese "x" numero en esas otras celdas [...]

suponiendo que el "x numero" se toma de la celda 'M1'...
y que el mensaje 'quisieras' que saltara al hacer un click-derecho sobre cualquier celda del rango ->seleccionado<-...
prueba con el codigo [a manera de ejemplo] al final de este mensaje ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
en el modulo de codigo de 'esa' hoja ==> Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("a1:k1")) Is Nothing Then Exit Sub
Dim Seleccion As Range, Celda As Range, Total As Integer, Veces As Byte, _
Titulo As String, Msj As String, Base
Base = Range("m1"): Set Seleccion = Intersect(Target, Range("a1:k1"))
Titulo = "En la seleccion actual: " & Seleccion.Address(0, 0) & vbCr & _
"el numero " & Base & " se encuentra "
For Each Celda In Seleccion
If InStr(Celda, Range("m1")) > 0 Then
Veces = (Len(Celda) - Len(Application.Substitute(Base, Celda, ""))) / Len(Base)
Total = Total + Veces: If Msj <> "" Then Msj = Msj & vbCr
Msj = Msj & "en la celda " & Celda.Address(0, 0) & " esta en " & Veces & " ocasion(es)."
End If: Next: MsgBox Titulo & Total & " veces:" & vbCr & Msj
Set Seleccion = Nothing: Cancel = True
End Sub



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida