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órmulaemB3
ecopia-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.