Que me escoja entre 2 valores un Filtro Avanzado

06/10/2007 - 20:59 por XavierFC | Informe spam
En la Hoja "Historic" tengo una serie columnas con datos:

Columna A: Equipos de Futbol
Colunma B: Nº de Goles
Columna C: Fecha del Partido
etc...

Bien, en la Hoja "Filtre" tengo el siguiente código en una Macro:

Sheets("Historic").Columns("A:M").AdvancedFilter
Action:=xlFilterCopy, _
CriteriaRange:=Range("B6:N7"),
CopyToRange:=Range("B15:N5000"), Unique:=False


Lo que me hace es que me filtra lo que hay en la hoja "Historic" en
funcion de los rangos que yo escriba entre B6 y N7. Puedo filtrar por
el nombre de un equipo "Barcelona" o de una fecha "2002/03-03" ,por
ejemplo poniendo "*-20*" me coge los que sigan ese criterio, todo
perfecto.

El problema lo tengo con los goles, ya que si debajo de la casilla de
"Goles Casa" pongo "2" pues me coge los partidos en los que el equipo
de casa ha hecho 2 goles, o si pongo ">3" me coge los partidos en los
que ha marcado más de 3 goles, o también "<>1" pues me coge los
partidos en los que no ha marcado 1 gol.

El problema que tengo, y aquí mi pregunta es: como le pongo que quiero
me escoja los partidos en los que ha habido entre 2 y 4 goles?

Gracias y Saludos Cordiales.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
07/10/2007 - 00:39 | Informe spam
hola, Xavier !

En la Hoja "Historic" tengo una serie columnas con datos:
Columna A: Equipos de Futbol, Colunma B: Nº de Goles, Columna C: Fecha del Partido, etc...
... en la Hoja "Filtre" tengo el siguiente codigo en una Macro:

Sheets("Historic").Columns("A:M").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("B6:N7"), CopyToRange:=Range("B15:N5000"), Unique:=False

... filtra lo que hay en la hoja "Historic"... los... que yo escriba entre B6 y N7...
... con los goles... si debajo de la casilla de "Goles Casa" pongo "2"... o si pongo ">3"... o tambien "<>1" ...
El problema... es: como le pongo que quiero me escoja los partidos en los que ha habido entre 2 y 4 goles?



para utilizar en los filtros avanzados un criterio donde deban cumplirse TODAS las condiciones [dos o mas] -> "Y"

1) *borra* el titulo de la columna en el rango de criterios [hoja "filtre" celda "B6" ?]
[ya despues de filtrado se lo podras volver a poner] :))

2) utiliza la funcion de hoja de calculo =Y(...) como criterio [hoja "filtre" celda "B7" ?]
[p.e.] suponiendo que en la hoja "historic" los datos [SIN titulos] inician en la fila 2...
=y(historic!b2>1,historic!b2<5)
y OJO con el separador de argumentos, yo uso la coma :D

si cualquier duda [o informacion adcional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 XavierFC
12/10/2007 - 17:29 | Informe spam
Lo que comentas funciona Hector, como siempre perfecto en tus ayudas,

pero no hay otra forma de hacerlo? no se, me parece un poco "triste"
que Excel con las posibilidades que tiene no deje hacerlo de otra
forma, he intentado substituir la formula

=y(historic!b2>1,historic!b2<5)

por

=Y(Historic!E2>=Filtre!J2;Historic!E2<Filtre!K2)

Donde Filtre!J2 es un valor numérico y Filtres!K2 otro valor: y
tambien funciona

Pero si intento hacer lo mismo con valores no numéricos (Nombre de
Equipos de Futbol)


=Y(Historic!E2=Filtre!L2;Historic!E2=Filtre!KM)

entonces no hay manera oprque supongo que no cumple la condición, lo
estoy investigando. Creo que en:http://www.contextures.com/
xladvfilter01.html

puede haber una solucion.

Gracias.
Respuesta Responder a este mensaje
#3 Héctor Miguel
13/10/2007 - 00:39 | Informe spam
hola, Xavier !

... no hay otra forma de hacerlo?
no se, me parece un poco "triste" que Excel con las posibilidades que tiene no deje hacerlo de otra forma
he intentado substituir la formula =y(historic!b2>1,historic!b2<5)
por =Y(Historic!E2>=Filtre!J2;Historic!E2<Filtre!K2)
Donde Filtre!J2 es un valor numerico y Filtres!K2 otro valor: y tambien funciona

Pero si intento hacer lo mismo con valores no numericos (Nombre de Equipos de Futbol)
=Y(Historic!E2=Filtre!L2;Historic!E2=Filtre!KM)
entonces no hay manera oprque supongo que no cumple la condicion, lo estoy investigando.
Creo que en http://www.contextures.com/xladvfilter01.html puede haber una solucion.



(creo que) la ayuda en linea {F1} y los ejemplos que provee con relacion al uso de criterios avanzados es +/- clara -?-

1) es conveniente distinguir entre usar una combinacion de criterios "Y" (donde se deben cumplir -todas- las condiciones)
o si la necesidad requiere usar la combinacion de criterios "O" (donde se cumpla cualquiera o varias de las condiciones)
para lo cual, una combinacion de criterios "O" requiere de varias filas con los criterios para cada campo/columna/titulo

2) tambien debes considerar que no es lo mismo comparar "valores numericos" a comparar "valores de texto" (p.e.)
para el caso que planteas con los nombres de equpos: -> =Y(Historic!E2=Filtre!L2;Historic!E2=Filtre!KM)
si suponemos que Filtre!L2 contiene un nombre de equipo "dirferente" a lo que contiene Filtre!KM <= "KM" ???????
a) no es posible que Historic!E2 contenga "al mismo tiempo" los dos diferentes nombres de equipos... ( o si ???)
b) si quieres filtrar en el caso de cualquiera de los dos... cambia la funcion "Y" por la funcion "O" ;)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida