Recuperar linhas com data antes da data especificada no Excel

1

Pergunta original:

Digamos que eu tenha uma tabela - Table 1 - que se parece com isso:

Comopreencheriaautomaticamenteatabela-Table2-abaixo?

A segunda tabela deve mostrar apenas os valores da tabela 1, se estiverem disponíveis em 30 de junho. Por exemplo, A deve mostrar apenas um valor de 10.000 e não 5.000.

Pergunta atualizada (para facilitar a compreensão):

Basicamente, como posso colocar fórmulas nas células C16 a C27 para que elas sejam preenchidas como na imagem acima? As células C16 to C27 devem poder recuperar os valores mais recentes de A, B, C, D disponíveis na primeira tabela, como nas datas nas células E16 to E27 .

Por exemplo: O Cell C25 deve retornar 15.000, porque esse é o valor mais recente disponível em 30 de setembro. Não deve retornar 20.000 porque esse valor só estava disponível depois de 30 de setembro.

Muito obrigado a todos por toda sua ajuda!

    
por Tassie 29.09.2016 / 07:46

2 respostas

1

Existem algumas maneiras mais simples de fazer isso no Excel. No entanto, eu uso o LO Calc, e algumas fórmulas fáceis que funcionam no Excel não funcionam no Calc. Eu tive que usar um método que eu poderia verificar. Então aqui está uma solução que também funciona no Calc.

Esta solução usa uma coluna auxiliar (o que você vê na coluna F na captura de tela), que você pode ocultar se não quiser vê-la.

Minhasaídaparasetembrode2016nãocorrespondeàsua.DemoroualgunsminutosparaperceberquefoiporquenãoincluiuosdadosdesetembroCeDnoseuexemplo.Meuresultadoestácorretoparaosdados.

Fórmulas

Vamoscomeçarcomacolunaauxiliar.ATabela2ébaseadaemnomesdentrodetrimestresdocalendário.Acolunaauxiliarlhedáisso.AfórmulaemF2:

=CEILING(MONTH(E2)/3)&A2

Aprimeirapartecalculaemqualtrimestreadataestá.Onomeéconcatenadoaissousando&.

Issonoslevaàcarnedoproblema.AfórmulaemC16é:

=IFERROR(INDEX(C$2:C$12,SUMPRODUCT(MAX((F$2:F$12=F16)*ROW(F$2:F$12)))-1),"")

Como funciona

Vou explicar a fórmula por dentro, dando certo.

  • SUMPRODUCT(MAX((F$2:F$12=F16)*ROW(F$2:F$12)))

    O SUMPRODUCT identifica a linha que contém a última entrada na coluna auxiliar que corresponde ao nome e ao trimestre.

  • INDEX(C$2:C$12,last_matching_row-1)

    ÍNDICE seleciona esse valor de seus dados na coluna C usando a linha do último valor. No entanto, o local é especificado em relação ao intervalo em que ele está olhando, não a linha real no workshhet, portanto, o -1 ajusta isso.

  • =IFERROR(formula,"")

    A parte laboriosa da fórmula calcula seu resultado quando você tem dados. Se não houver dados, retornará um erro. Então a fórmula é envolvida em IFERROR, que produz uma célula vazia se não houver dados.

por 30.09.2016 / 03:32
0

Consegui alcançar os resultados desejados com a seguinte fórmula:

=SUMIFS(B1:B6,C1:C6, "<="&TEXT(K1,"dd-mm-yyy"), A1:A6,A1)

Coluna B é a coluna de valores da sua Tabela A.

Coluna C é a coluna Data da sua Tabela A.

"<=" & TEXT (K1, "dd-mm-yyy") é < = 30-Jun-2016 (provavelmente há uma maneira melhor de fazer isso).

Coluna A é a coluna Nome da sua tabela A.

A função SUMIFS leva mais de 1 critérios - portanto, estamos somando os valores na coluna B , em que as datas na coluna C são menores ou iguais à data na célula K1 , E onde os nomes na coluna A correspondem ao nome em A1 .

Sinto muito pelo pobre layout da minha resposta, eu sou novo nisso - espero que isso ajude.

EDIT: Com base nas informações atualizadas adicionadas à pergunta, minha resposta não funciona. Minha resposta soma os valores, mas a pergunta só exige o valor mais recente.

    
por 29.09.2016 / 08:44