quinta-feira, 16 de fevereiro de 2012

EXCEL 2007 - FILTRAR UMA BASE DE DADOS COM UMA FUNÇÃO UDF (How to filter a database with a UDF Function)

O utilizador comum poderá pensar que filtrar ou analisar informação de uma pequena base de dados ou de uma tabela é algo para pessoas mais experimentadas em Excel. Ora bem, nem sempre é tão complicado assim, já que o poderemos fazer com recurso a uma função UDF (User Defined Function). Há algum tempo atrás, usei o modelo em anexo para filtrar dados de pequenas tabelas. A função utilizada permite listar os itens por ordem alfabética e acrescentar automaticamente outros itens, caso a base de dados ou a tabela seja modificada.
Common users may think that filtering or analyzing information from a small database or a data table is for people more experienced in Excel. Well, it's not always so complicated, since we can make use of a UDF (User Defined Function). For quite some time ago, I have used the template attached to filter data from small tables. This UDF example allows to list the items alphabetically and automatically add other items if the
database or table is modified.


Folha1 - Tabela de dados Sheet1 - Database Table

Poder-se-á argumentar que a ferramenta Filtro Avançado executa o mesmo procedimento. De facto, é verdade, mas só se a tabela ou a base de dados de origem não for modificada, caso contrário teremos de executar essa ferramenta sempre que se proceder a uma adenda à tabela (por exemplo, acrescentar um novo item). Além disso, não ordena os itens alfabeticamente. Por outro lado, podíamos igualmente recorrer às tabelas dinâmicas, mas a ideia é apresentar uma alternativa que simplifique o processo para utilizadores menos experimentados.
It could be argued that the Advanced Filter tool performs the same procedure. In fact, it is true, but only if the original table / database is not changed, otherwise we will have to perform this tool whenever you make an addendum to the table (eg,  adding a new item). Beyond addition, it doesn't sort the items alphabetically. On the other hand, we could also use the dynamic tables, but the idea is to present an alternative that simplifies the process for users with lower experience.

Tomemos como exemplo uma oficina de reparação de automóveis em que estão listados, numa pequena base de dados, os automóveis reparados por cada mecânico, a data da reparação e o respectivo orçamento.
Take for example a garage car service where we list on a small base data every car repaired by each mechanic, the repair date and budget.