Adicionando valores a uma tabela automaticamente [fechado]

0

Eu tenho um grande registro mestre de itens e uma tabela que é usada para resumir essas informações. Cada trabalho tem um 'Número de cotação' e um sinalizador que determina se deve ser exibido em uma determinada tabela (os sinalizadores são 0%, 20%, 50%, 80%, 100%). O mestre contém todas as informações vinculadas ao trabalho, enquanto as tabelas de relatórios precisam filtrar as tarefas específicas que possuem um determinado sinalizador.

No momento, um administrador deve filtrar manualmente os trabalhos e copiar e colar o número de cotação na tabela correta, que indexará todos os dados necessários e assim por diante. Estamos tentando automatizar esse processo para que as tabelas sempre tenham os trabalhos corretos, especialmente porque os sinalizadores mudam no dia a dia.

Eu tentei usar várias funções na célula, como o IndexMatch (só retorna o primeiro valor como deveria), se instruções, mas não consigo descobrir uma maneira de fazer isso. Existe uma maneira de fazer isso nativamente no Excel sem o VBA, ou essa é minha melhor aposta? Eu pessoalmente preferiria fazer isso sem o VBA, já que isso facilita muito o trabalho, mas se isso realmente exigir, já descobri como fazê-lo.

Uma observação: não posso usar tabelas dinâmicas, elas não funcionam da maneira que precisamos, então, embora filtrem automaticamente os trabalhos da maneira que eu preciso, elas têm muitas deficiências para eu ser capaz de usá-los.

    
por Maxim Srour 04.07.2018 / 06:06

1 resposta

0

Sim, isso pode ser feito de forma nativa sem usar o VBA. Isso requer o uso de funções de array, no entanto.

A solução a seguir funcionará, desde que os números de cotação não contenham caracteres não numéricos.

Matrizentra(Ctrl+Desloca+Enter)aseguintefórmulaemB3ecopia-cola/fill-downnorestodacolunadatabela(nãoseesqueçaderemovero{e}):

{=SMALL(IF($G$2:$G$10=$B$1,$F$2:$F$10,FALSE),ROW()-ROW(B$2))}

Observe que, embora eu tenha usado B1 para manter o valor do sinalizador, isso poderia ser codificado de forma diferente para cada uma das tabelas de resumo.

Advertência:

Se as tabelas de resumo contiverem menos linhas que a tabela de registro principal, é possível que elas não mostrem todos os dados correspondentes (como pode ser visto na captura de tela acima.)

Para solucionar isso, uma fórmula pode ser adicionada após o final de cada uma das tabelas de resumo para detectar essa possibilidade e avisar o usuário para aumentar o número de linhas:

DigiteaseguintefórmulaemB8:

=IF(ISERROR(SUM(B3:B7)),"All OK","Add More Rows")

Para que essa solução alternativa funcione, o erro que ocorre na função SMALL() quando não houver mais citações correspondentes não pode ser suprimido.

    
por 04.07.2018 / 08:50