
Estou trabalhando em um problema do Excel há quase 24 horas. Tenho uma fórmula que quase faz o que eu quero mas não está retornando o que imagino que deveria retornar:
=INDEX(Data!D:D,SUMPRODUCT((Data!C:C=Total!A5)*(Data!A:A="Total")*(Data!B:B="Total")*(ROW(Data!D:D))))
Imagino a linha para indexar a coluna D nos Dados! planilha seja a linha real em que a correspondência ocorre, mas PARA CADA VALOR, MAS O PRIMEIRO VALOR, o valor retornado vem de 3 linhas abaixo dele.
Sim, então para a primeira célula em que aplico essa fórmula, recebo de volta o valor correto da Coluna D de Dados! Mas, para cada célula subsequente com a fórmula, estou recuperando o valor na Coluna D de Dados! 3 linhas abaixo da partida.
Tentei todas as combinações de subtração de 3 da fórmula (para retornar a linha correta), mas sem sucesso. Mesmo assim isso não explicaria porque a primeira célula em que a fórmula é aplicada retorna o valor esperado!
Toda e qualquer ajuda é muito apreciada, claro...
Responder1
Não está totalmente claro para mim se você deseja encontrar oprimeiro, segundo, etc.corresponde a Total!A5 ou se você estiver tentando encontrar a primeira correspondência para A5, então a primeira correspondência para A6, etc. Esta solução proposta é para a primeira.
Prefiro usar o método de exclusão matemática para capturar múltiplos retornos nas partidas. Se você eliminar o que não corresponde, o que resta deverá ser o conjunto de resultados correspondentes. Também estou impaciente o suficiente para achar o atraso de cálculo das referências de colunas completas SUMPRODUCT
irritante, então reduzi suas referências de intervalo para as primeiras aproximadamente 1 mil linhas.
=IFERROR(INDEX(Data!$D$2:$D$999, SMALL(INDEX(ROW($1:$998)+((Data!$C$2:$C$999<>Total!$A$5)+(Data!$A$2:$A$999<>"Total")+(Data!$B$2:$B$999<>"Total"))*1E+99,,),ROW(1:1))),"")
Este é um padrão (não-matriz) Fórmula. Preencha conforme necessário para capturar todos os retornos correspondentes. Ao transcrever isso para seus próprios propósitos, lembre-se de que esse ROW(1:998)
é oposição dentro Data!D2:D999
, não o número real da linha na planilha. ROW(1:1)
é simplesmente um contador que aumenta conforme você preenche. Às vezes, a COUNTIF
é mais apropriado e pode ser usado para capturar vários retornos correspondentes em vários valores de pesquisa.