Criando uma tabela que é uma subconsulta de outra tabela

Criando uma tabela que é uma subconsulta de outra tabela

Tenho uma tabela grande de dados de funcionários e gostaria de criar tabelas em outras planilhas com conjuntos de dados filtrados do conjunto de dados principal. Tenho experiência em escrever macros VBA extensas e posso realizar o que desejo com um banco de dados e SQL em minutos, mas sinto que estou indo atrás de um formigueiro com uma bota.

Tentei fazer isso com uma tabela dinâmica, mas sou inexperiente com tabelas dinâmicas e não consegui obter resultados que me agradassem.

O grande conjunto de dados da equipe contém itens como data de início, departamento atual, conjuntos de habilidades especializadas, etc. (as coisas normais que você esperaria).

Gostaria de criar uma tabela dinâmica em outras planilhas que, por exemplo, mostrem todos os funcionários que trabalham no departamento X ou todos os funcionários que possuem habilidades especializadas em Y. Obviamente, quero que as tabelas da planilha sejam atualizadas quando os dados forem alterados ou adicionados ao conjunto de dados principal.

Estou certo ao pensar que existe uma solução simples aqui ou preciso ir atrás dela usando um banco de dados real?

Responder1

Gostaria de sugerir um método baseado na função Excel, filtra/extrai registros da tabela de origem para outra.

Tabela de origem:

insira a descrição da imagem aqui


insira a descrição da imagem aqui


Como funciona:

  • Se as células dos critérios estiverem em branco, a fórmula não retornará o registro.
  • A fórmula funciona tanto para critérios únicos quanto para critérios múltiplos.

Situação 1:

insira a descrição da imagem aqui

Situação 2:

insira a descrição da imagem aqui

  • Fórmula de matriz na célula B31:

{=IFERROR(IF(AND(ISBLANK($B$27),ISBLANK($C$27),ISBLANK($D$27),ISBLANK($E$27),ISBLANK($F$27),ISBLANK($G$27),ISBLANK($H$27))," ",INDEX($B$2:$H$21,SMALL(IF(MMULT(($B$2:$H$21=$B$27:$H$27)*1,{1;1;1;1;1;1;1})=COUNTA($B$27:$H$27),MATCH(ROW($B$2:$B$21),ROW($B$2:$B$21)),""),ROWS($A$1:A1)),COLUMNS($A$1:A1))),"")}

  • Finalize a fórmula comCtrl+Shift+Entere preencha.

  • A principal característica deste exercício é MMULTa função.
  • MMULT (Multiplicação de Matrizes), retorna o produto matricial de duas matrizes.
  • A contagem de colunas de array1 é igual à contagem de linhas de array2.
  • O resultado da matriz contém o mesmo número de linhas que a matriz1, bem como o mesmo número de colunas que a matriz2.

Ajuste as referências de células na fórmula conforme necessário.

informação relacionada