Filtros y cálculos

Hola Elsa,
Me gustaría que me ayudaras con una macro que tengo que hacer y es la siguiente:
Tengo que hacer un filtrado de una columna eso nos da un cierto numero de renglones de un mismo numero, de ahí necesito sacar un promedio de otra columna con solo esos renglones, la pregunta es como manipulo el Autofilter para poder hacerlo con todos los valores que se pueden obtener de la lista del filtro.
Gracias
Sergio

1 Respuesta

Respuesta
1
Primero te daré una solución sin macros, ya que me parece que lo podrás resolver de esta manera, con la función SUBTOTALES que realiza cálculos solo con las celdas visibles.
En la celda donde quieras obtener el promedio de las celdas filtradas escribí esta fórmula:
=SUBTOTALES(1;rango)     donde rango será toda la col de datos a promediar
Aplicá distintos filtros y observá si el resultado es el correcto.
Para aclarar un poco mi pregunta, lo que no encuentro es como se manipulan los campos Filed si no se cuantos son me parece que se puede con Ubound, tampoco le puedo poner Criteria = a algo, por que de eso precisamente depende el filtro.
Espero que este más claro.
Saludos
Hola,
Si esto me servirá para la segunda parte del programa, pero realmente lo que no se como resolver es el tema del filtrado.
Imagina que tengo 47000 renglones de información y uno de las columnas la necesito filtrar para sacar cuantos hay de cada caso ( los cuales varia en cada hoja y no son fijos) te pongo un ejemplo corto abajo
110010015 'de estos que terminan en el numero 15 hay 4
110010015
110010015
110010015
110010016 'de estos que terminan en el numero 16 hay 3
110010016
110010016
110010023 'de estos que terminan en el 23 hay 5
110010023
110010023
110010023
110010023
El problema es que cuando le doy filtrado hay aproximadamente 300 de estos numero diferentes y es lo que quisiera automatizar ya que cada hoja es diferente así que pasaría horas haciendo el filtrado + el calculo.
Lo que se me ocurre es que si tenemos la estructura del Autofilter
AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
¿Primero qué nada necesito saber que valor máximo tiene "Field" en esa columna (osea que tendré como unos 300 diferentes de esos numeritos del ejemplo) y ya conociéndolo hacer un loop para que filtre uno por uno (y haga los promedios como mencionas...) pero no se si se pueda hacer esto ya que no conozco que tipo de "Criterio" tiene y como sacar el numero máximo del campo "Filed" tal vez con "Ubound" pero no se tienes alguna idea de como se podrá resolver esto?
Saludos y muchas gracias
En realidad parece que querés filtrar solo por los valores finales, ¿es así?
El criterio podes armarlo como: *¿15 o? 23 para acotarlo en cuanto al largo...
Un ejemplo de rutina:
crit = "*15"
Selection.AutoFilter
ActiveSheet.Range("$A$1:$F$20").AutoFilter Field:=1, Criteria1:="=" & crit & "", _
Operator:=xlAnd
Con esto estoy filtrando la col A por ese criterio. Podes utilizar un array donde colocarás todos los criterios o una lista en alguna col auxiliar. No sé muy bien cómo lo estás armando.
Espero que con esto puedas continuar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas