Repito, BIENVENIDO¡¡¡
En la propiedad Filter del Dataset que estés usando puedes colocar el filtrado que quieras sin hacer cambios de índices...
Por ejemplo:
Código Delphi
[-]
Table1.Filtered := False;
Table1.Filter = 'fecha >= ' + QuotedStr('01/01/2007') + ' and fecha <= ' + QuotedStr('12/12/2007')
+ ' and Apellido = ' + QuotedStr('Lopez');
Table1.Filtered := True;
Ahora si todos estos filtros lo pudieras hacer desde una consulta pues personalmente me parecería una mejor idea.