Una de las funcionalidades más populares de Excel es el Autofiltro. Con esta herramienta podemos filtrar una tabla de acuerdo criterios lógicos aplicados a los valores de una o más columnas de la tabla.
Un lector me consulta cómo se puede hacer para que el criterio aplicado aparezca en una celda por encima del encabezamiento de la columna. Por ejemplo, partiendo de esta lista
ver en las celdas correspondientes de fila 2 los criterios aplicados para filtrar la lista
Como puede verse, estamos usando una función definida por el usuario (UDF).
Esta función fue desarrollada por el guru de Excel Stephen Bullen.
Para poder usar esta función tenemos que poner este código en un módulo común del editor de Vba, preferentemente en el Personal.xlsb (Personal.xls en Excel 97-2003)
Function FilterCriteria(Rng As Range) As String
'By Stephen Bullen
Dim Filter As String
Application.Volatile True
Filter = ""
On Error GoTo Finish
With Rng.Parent.AutoFilter
If Intersect(Rng, .Range) Is Nothing Then GoTo Finish
With .Filters(Rng.Column - .Range.Column + 1)
If Not .On Then GoTo Finish
Filter = .Criteria1
Select Case .Operator
Case xlAnd
Filter = Filter & " y " & .Criteria2
Case xlOr
Filter = Filter & " o " & .Criteria2
End Select
End With
End With
Finish:
FilterCriteria = Filter
End Function
Esta función utiliza un único argumento, "Rng", que es cualquier celda de la columna sobre se aplica el Autofiltro.
Hay que tener en cuenta que esta función fue desarrollada antes de la aparición de Excel 2007. Por ejemplo, si elegimos más de dos criterios en una misma columna, por ejemplo ver las zonas Norte, Sur y Oeste, la función no podrá mostrar el criterio aplicado
Tip: en Excel 2007, al apuntar con el mouse al icono del autofiltro podemos ver una ventanilla que nos muestra los criterios aplicados (como en la imagen de arriba).
Simplemente perfecto!
ResponderBorrarMuy bueno! En algunos casos es útil, aunque no recuerde ninguno, pero nunca se sabe jaja..
ResponderBorrarHola Jorge,
ResponderBorrar¿Hay alguna forma fácil de modificar el código de la función para que limpie las celdas cuando se usa la opción Mostrar Todo? Es que en este caso no deja las celdas en blanco.
Un saludo,
Sergio
El problema aparece en Excel 2003 (no en Excel 2007). Por lo visto Excel no recalcula la hoja cuando se elige la opción "mostrar todo", aún cuando hayamos defiinido la función como volátil.
ResponderBorrarEn cuanto encuentre una solución, si la encuentro, la estaré publicando.
Por supuesto, se puede apretar F9 para forzar la recalculación.
ResponderBorrar