EDIT: SOLUÇÃO ABAIXO
Um exemplo facilitará o entendimento. A ideia é muito simples, pelo menos parece.
Com a aplicação de valores de pesquisa dinâmica, quero corresponder os valores de uma coluna aos valores de outra e listar os resultados individuais. Se devido ao intervalo dinâmico do espaço do valor de pesquisa ser limitado, posso 'somar' a saída em uma célula no caso de várias correspondências.
Também é possível adicionar a quantidade desejada de linhas para acomodar possíveis correspondências adicionais, mas ainda não consegui descobrir uma fórmula para realizar isso.
Todas as colunas, dados e, portanto, os valores de pesquisa são dinâmicos.
Áreas problemáticas destacadas:
Asseguintesfórmulasquetenhoagora(arrastarparabaixoàscélulasabaixo):
ColunaE
{=IF(F7=0,"",IFERROR(INDEX($B:$B,MATCH($F7,$C:$C,0),),0))}
Coluna F
{=IFERROR(INDEX($C$1:$C$26,SMALL(IF($C$1:$C$26>0,ROW($C$1:$C$26)),ROW(2:2))),0)}
Coluna G
{=IFERROR(IF(E7<>E6,IF(E7<>E8,SUMIF($B$7:$B$26,E7,$D$7:$D$26),IF(COUNTIFS($B$7:$B$26,E7,$D$7:$D$26,">0")>2,SUMIF($B$7:$B$26,E7,$D$7:$D$26),INDEX($D$7:$D$26,MATCH(0,IF($E7=$B$7:$B$26,COUNTIF($J$8:$J9,$D$7:$D$26),""),0)))),IF(COUNTIFS($B$7:$B$26,AQ7,$D$7:$D$26,">0")>2,SUMIF($B$7:$B$26,AQ7,$D$7:$D$26),INDEX($D$7:$D$26,MATCH(0,IF($AQ7=$B$7:$B$26,COUNTIF($AU$5:$AU7,$D$7:$D$26),""),0)))),"")}
EDITAR: SOLUÇÃO ACEITÁVEL ENCONTRADA
Então eu consegui realizar o que eu queria de uma maneira bastante fácil com colunas adicionais de 'ajudante'. Decidi aceitar que a coluna de orçamento mostrará apenas a SOMA de todas as entradas de orçamento em um determinado dia. Em seguida, para adicionar uma linha vazia para criar espaço para uma data na qual havia uma entrada de orçamento, mas na qual nenhuma compra foi feita ('recebimento'), sem afetar o intervalo dinâmico da coluna de data e de recebimento, Eu usei a seguinte configuração com referência à captura de tela de exemplo:
Condição: uma entrada de recibo nunca compartilha a mesma linha que uma entrada de orçamento
1) A coluna auxiliar # 1 substitui cada entrada de orçamento na coluna D por um valor único que pode ser usado para pesquisa.
2) Coluna auxiliar # 2 cada célula exibe seu número de linha.
3) A coluna auxiliar # 3 copia as datas exatas correspondentes para todos os valores de recebimento da coluna C em seus respectivos números de linha.
4) A coluna auxiliar # 4 faz o mesmo que acima, com a diferença de que todos os espaços em branco são substituídos pelas datas nas quais as entradas de orçamento foram feitas.
5) A coluna de ajuda # 5 combina a coluna de ajuda # 3 e # 4 adicionando apenas datas de orçamento exclusivas nos espaços em branco que são não presente na coluna # 3
6) DESEJO DESEJADO para a coluna Data (coluna I) é formada pela remoção de todos os espaços em branco da coluna auxiliar # 5
7) DESEJO DESEJADO para a coluna Recebimento (coluna J) é formado seguindo o mesmo procedimento com colunas auxiliares para adicionar a linha extra desejada. Isso é obtido adicionando outra coluna auxiliar # 6 substituindo a data que é adicionada em uma linha com uma célula em branco na coluna auxiliar # 4 com um valor zero. Desta forma, é feita uma distinção entre a célula "valor zero" adicionada e as outras células em branco. Ao remover todas as células em branco na coluna de saída desejada J, o valor zero criará a linha extra desejada sem perturbar as entradas de recebimento e as datas correspondentes.
8) DESEJO DESEJADO para a coluna Orçamento (coluna K), agora simplesmente mostra a soma de todas as entradas de orçamento em uma data específica, adicionando esse valor na primeira linha de cada nova instância de uma data correspondente na coluna I.
Veja todas as fórmulas abaixo:
Todas as fórmulas abaixo são colocadas na primeira linha de cada coluna respectiva que pode ser copiada. Para este exemplo, uso a coluna AA para a coluna auxiliar nº 1, AB para nº 2 e assim por diante:
Coluna auxiliar # 1 - AA
=if(d7>0,AB7,"")
Coluna auxiliar # 2 - AB
=ROW()
Coluna auxiliar # 3 - AC
=IF(OR(ISBLANK(C7),C7=0),"",INDEX($B:$B,MATCH($C7,$C:$C,0),))
Coluna auxiliar # 4 - AD
=IF(ISBLANK(AA7),"",INDEX($B:$B,MATCH($AA7,$AA:$AA,0),))
Coluna auxiliar # 5 - AE
=IF(AC7="",IF(COUNTIF($AC:$AC,AA7)=0,AA7,""),AC7)
Coluna auxiliar # 6 - AF
=IF(C7="",IF(COUNTIF($AC:$AC,AA7)=0,0,""),C7)
COLUNA DE SAÍDA DESEJADA I
{=IFERROR(INDEX($AE$1:$AE$100,SMALL(IF($AE$1:$AE$100<>"",ROW($AE$1:$AE$100)),ROW(1:1))),0)}
COLUNA DE SAÍDA DESEJADA J
{=IFERROR(INDEX($AF$1:$AF$100,SMALL(IF($AF$1:$AF$100<>"",ROW($AF$1:$AF$100)),ROW(1:1))),0)}
COLUNA DE SAÍDA K DESEJADA
=IFERROR(IF(I9<>I8,SUMIF($B$7:$B$100,I9,$D$7:$D$100),""),"")
Não tenho certeza se isso, adicionando 6 (!) colunas auxiliares adicionais, é a maneira mais eficiente, mas faz o trabalho. Seria ótimo ter uma fórmula de array combinando tudo isso, mas não sei se isso seria possível. Quaisquer sugestões de trabalho para melhores alternativas são bem-vindas.
Tags microsoft-excel