Você pode fazer isso com tabelas, bem como o Powerpivot e o Data Explorer. O mais fácil e meu método preferido atualmente é criar uma consulta parametrizada no Excel. Para fazer isso, use o Assistente de consulta e, no final, inclua restrições para cada parâmetro que você deseja transmitir. Feito isso, você pode editar as propriedades de conexão e atribuir o parâmetro a ser retornado como um valor estático, caixa de diálogo ou uma célula de planilha.
- Selecione sua fonte de dados usando o MS Query - isso é necessário para poder passar os parâmetros de volta ao SQL;
Data>Other Sources>Microsoft Query
. - Escolha
Data Source
, selecione sua fonte de dados SQL aqui. Em geral, deixarei todas essas opções em branco até chegar à janelaFinish
e, em seguida, selecionareiView data or edit query in MS Query.
- Observação: normalmente, pre-processo as informações desejadas do SQL em uma única exibição à qual posso me conectar, mas geralmente você pode passar qualquer instrução de seleção. Eu não tentei chamar um Stored Procedure, então não tenho certeza de como isso funcionaria.
- Na janela do MS Query, clique no campo
Show/Hide Criteria button
e escolha um critério. Isso será o que chama seus parâmetros para passar de volta ao SQL.- Exemplo: Se você tiver um campo de data e selecioná-lo no campo Critérios, adicione um Valor entre [início] e [fim]. Isso criará um parâmetro e o MS Query solicitará que você preencha os dois valores e retorne imediatamente o conjunto de dados apropriado. Se você verificar a instrução SQL que ela criou, ela terá uma cláusula WHERE (datasource.date Between? E?).
- Selecione Arquivo > Retornar dados para o Excel e, em seguida, Escolher tabela.
- Para que a tabela retire seu parâmetro de consulta automaticamente, selecione uma célula em sua tabela, vá para Dados > Propriedades > Propriedades de conexão > Definição > Parâmetros.
- Para cada parâmetro, você pode escolher para ele
- Solicitar que você forneça um valor; ou
- Use um valor específico; ou
- Obtenha um valor de uma célula da planilha, com a opção de atualizar automaticamente os dados da tabela sempre que o valor da célula mudar.
- Como opção adicional, você pode usar a Validação de dados na célula escolhida para o seu parâmetro, permitindo limitar os possíveis valores a serem escolhidos. Você pode até ter as células de validação provenientes de uma tabela que é alimentada a partir de valores do banco de dados, garantindo que apenas os valores mantidos no banco de dados possam ser selecionados.
- Defina seu valor de parâmetro para cada parâmetro e clique em OK em todas as caixas de diálogo.
- Finalmente, para minimizar o tamanho do arquivo, na guia Propriedades de conexão > Uso, você pode selecionar Atualizar dados ao abrir o arquivo e Remover dados do intervalo externo antes de salvar a pasta de trabalho. Isso despejará os dados conectados quando o arquivo não estiver sendo usado ativamente, minimizando o tamanho do arquivo.
Com frequência, criamos uma tabela dinâmica com base em uma tabela alimentada a partir de uma consulta parametrizada para retornar valores para intervalos de datas específicos atualizados automaticamente (por exemplo, seis meses anteriores).
EDIT: Para retornar vários valores para uso em uma cláusula SQL IN, você só precisa modificar a janela Critérios na caixa MS Query. Por exemplo, se você tiver um nome de campo País, selecione-o no campo Critério e, em Valor, insira IN ([Primeiro], [Segundo], [Terceiro]). Escolha Retornar Dados para o Excel e o MS Query pedirá para inserir valores manualmente. Quando voltar ao Excel, você poderá modificar os parâmetros novamente e apontá-los para três células em sua planilha, cada uma das quais pode ser restringida pela Validação de dados. Embora provavelmente exista um limite para quantos parâmetros você pode passar dessa maneira, o Excel lida com três, portanto, mais alguns provavelmente não estão fora de questão.