none
VBA + Macro + Função Índice + Corresp RRS feed

  • Pergunta

  • Olá PessoAll,

    Tudo bem?

    Sou um usuário de VBA e consigo me virar e recentemente montei uma planilha que importa dados de outras planilhas e faz várias manipulações de dados. Parte escrevi e parte gravei as macros.

    Estou com um problema que não consigo achar uma solução. Vou explicar:

    Na planilha “Compilado” a partir da célula E2 eu tenho uma coluna com vários nomes em ordem alfabética. A partir desses nomes eu preciso pesquisar uma outra planilha para começar a trazer os dados.

    Na mesma planilha “Compilado” na célula J2 eu preciso trazer um percentual que está na planilha “Competências” na célula K8. De acordo com o nome da pessoa.

    Na planilha “Compilado” na célula K2 eu preciso trazer um percentual que está na planilha “Competências” na célula K2. De acordo com a nota da mesma pessoa e assim po diante.

    Eu tentei usar funções de matriz / índice / Corresp e não consegui. Lembrando que existe um loop aí para trazer as informações de 1 nome que está na planilha “Compilado” para 7 dados que estão na planilha “Competências”. Executar enquanto for verdadeiro e vai para o próximo nome.

    Vou reproduzir a estrutura da planilha para facilitar o entendimento da planilha “Compilado”.

    Coluna E

    Coluna J

    Coluna K

    Coluna L

    Coluna M

    1

    Nome Completo – E1

    % de aptidão – J1

    Colaboração – K1

    Criatividade – L1

    Execução – M1

    2

    Alvaro Rodrigues – E2

    3

    Bianca Clara – E3

    4

    Carla Cristina – E4

    Os dados que eu quero estão na planilha “Competências”.

    Coluna B

    Coluna D

    Coluna K

    1

    Nome – B1

    Competência – D1

    Nota – K1

    2

    Alvaro Rodrigues – B2

    Colaboração

    70.00

    3

    Alvaro Rodrigues – B3

    Criatividade

    40.00

    4

    Alvaro Rodrigues – B4

    Execução

    10.00

    5

    Alvaro Rodrigues – B5

    Gestão de Pessoas

    20.00

    6

    Alvaro Rodrigues – B6

    Inteligência Emocional

    30.00

    7

    Alvaro Rodrigues – B7

    Pensamento Crítico

    40.00

    8

    Alvaro Rodrigues – B8

    Média Geral

    71.00

    9

    Bianca Clara – B9

    Colaboração

    90.00

    10

    Bianca Clara – B10

    Criatividade

    90.00

    11

    Bianca Clara – B11

    Execução

    90.00

    12

    Bianca Clara – B12

    Gestão de Pessoas

    90.00

    13

    Bianca Clara – B13

    Inteligência Emocional

    90.00

    14

    Bianca Clara – B14

    Pensamento Crítico

    90.00

    15

    Bianca Clara – B15

    Média Geral

    90.00

    quinta-feira, 27 de agosto de 2020 03:51

Respostas

  • Boa tarde.

    Segue um exemplo:

    https://1drv.ms/x/s!Ai_HUq3KQ5esvmtRBZ6aO65Sjr2l?e=WqsZhq

    Veja se te atende desta forma. As únicas coisas que precisará fazer são: atualizar a conexão, atualizar a tabela dinâmica e inserir os nomes na coluna "A".

    Obs.: para 16000 linhas neste formato aí pode-se dizer que são poucos dados para trabalhar, logo deve ser bastante eficiente esta abordagem.

    Detalhes:

    • Precisei criar um nome para a coluna extra da sua conexão de dados, para que a tabela dinâmica se ajuste automaticamente quando você atualizar. Você pode suprimir esta coluna na origem dos dados se preferir ou nomear o intervalo de dados.
    • Transformei para "," decimal, mas pode trabalhar com "." se preferir.
    • Transformei sua planilha em uma tabela, assim ao inserir novas linhas as fórmulas são criadas automaticamente.

    Abraço.


    Filipe Magno

    • Marcado como Resposta Kiko SP quinta-feira, 3 de setembro de 2020 12:14
    terça-feira, 1 de setembro de 2020 16:47

Todas as Respostas

  • O mais simples e rápido é resumir os dados da Planilha "Competência" como uma Tabela Dinâmica e retirar os dados dela diretamente por fórmulas (digite "=", clique num dado da tabela e em seguida altere os parâmetros fixos da fórmula criada para os dados de sua planilha "Compilado", para variar dinamicamente). Fica muito simples com esta abordagem.

    Filipe Magno

    quinta-feira, 27 de agosto de 2020 11:56
  • https://youtu.be/k__GdinXyKA

    A melhor forma de agradecer e votar como util e / ou marcar como resposta. Anderson Diniz diniabr2011@gmail.com

    • Sugerido como Resposta AndersonFDiniz2 quinta-feira, 27 de agosto de 2020 12:40
    quinta-feira, 27 de agosto de 2020 12:40
  • https://youtu.be/TsHHG4zz8b8

    A melhor forma de agradecer e votar como util e / ou marcar como resposta. Anderson Diniz diniabr2011@gmail.com

    • Sugerido como Resposta AndersonFDiniz2 quinta-feira, 27 de agosto de 2020 13:31
    quinta-feira, 27 de agosto de 2020 13:31
  • Filipe,

    Vou realizar mais testes, pois a quantidade de dados que tenho para resumir em Tabela dinâmica é bem grande... Só precisar pensar em como programar as formulas para trazer os dados de uma tabela para outra.

    Obrigado.


    Adriano

    terça-feira, 1 de setembro de 2020 00:09
  • Filipe,

    Vou realizar mais testes, pois a quantidade de dados que tenho para resumir em Tabela dinâmica é bem grande... Só precisar pensar em como programar as formulas para trazer os dados de uma tabela para outra.

    Obrigado.


    Adriano

    Boa noite Adriano. Pelo contrário, não há trabalho para retirar os dados. É bastante simples, basta configurar uma e copiar e colar. Mas quando você diz "muitos dados", de que ordem de grandeza? Está é uma forma muito eficiente de trabalhar. Se quiser, anexe uma pequena amostras de dados no OneDrive que monto um exemplo pra você. Bastará você expandir o intervalo.



    Filipe Magno

    terça-feira, 1 de setembro de 2020 00:23
  • Filipe,

    Mais uma vez, obrigado pela ajuda.

    A planilha original tem 16000 linhas e cresce.

    Minha preocupação é deixar automática para o usuário, sem que o usuário tenha que construir fórmulas. Na planilha original eu automatizei tudo. Desde automação para importação, tratamento de dados, fórmulas, copiar dados entre as planilhas e tudo o mais. A única coisa que falta são esses dados. Dá uma olhada no exemplo que montei.

    https://htonetreinamento-my.sharepoint.com/:x:/g/personal/adriano_melo_htone_com_br/EUcPVHVKEGNIlUNYgnTbQcsB2v0YSZYyk44Ei3F0pAJFHg?e=uF6j8K


    Adriano

    terça-feira, 1 de setembro de 2020 15:18
  • Boa tarde.

    Segue um exemplo:

    https://1drv.ms/x/s!Ai_HUq3KQ5esvmtRBZ6aO65Sjr2l?e=WqsZhq

    Veja se te atende desta forma. As únicas coisas que precisará fazer são: atualizar a conexão, atualizar a tabela dinâmica e inserir os nomes na coluna "A".

    Obs.: para 16000 linhas neste formato aí pode-se dizer que são poucos dados para trabalhar, logo deve ser bastante eficiente esta abordagem.

    Detalhes:

    • Precisei criar um nome para a coluna extra da sua conexão de dados, para que a tabela dinâmica se ajuste automaticamente quando você atualizar. Você pode suprimir esta coluna na origem dos dados se preferir ou nomear o intervalo de dados.
    • Transformei para "," decimal, mas pode trabalhar com "." se preferir.
    • Transformei sua planilha em uma tabela, assim ao inserir novas linhas as fórmulas são criadas automaticamente.

    Abraço.


    Filipe Magno

    • Marcado como Resposta Kiko SP quinta-feira, 3 de setembro de 2020 12:14
    terça-feira, 1 de setembro de 2020 16:47
  • Filipe,

    Vou trabalhar nela agora a tarde e depois volto para contar como foi.

    Obrigado por enquanto.

    Abraços,


    Adriano

    quarta-feira, 2 de setembro de 2020 17:32
  • Filipe, deu tudo certo.

    Agradeço a ajuda. No final das contas a solução foi a mais fácil mesmo.

    Obrigado pelo Help


    Adriano

    quinta-feira, 3 de setembro de 2020 12:14