Tenho essa tabela de dados contendo a quantidade de devoluções por dia (Ret Volume) e a quantidade de devoluções que foram processadas por dia (Volume Cleared) .
O que procuro é a data exibida à direita, exibindo em que dias as devoluções foram processadas.
Por exemplo, no dia 1 de agosto recebemos 472 devoluções, das quais 462 foram processadas, deixando 10 ainda em espera.
No dia seguinte recebemos 380 devoluções e processamos 370 delas. As 10 primeiras processadas teriam sido do dia anterior, portanto todas as devoluções do 1º foram processadas até o 2º.
Minha primeira tentativa de fórmula está abaixo (a transposição só está lá para que eu possa verificar os valores retornados para cada dia sem um erro #SPILL): =TRANSPOSE(LAMBDA(ReturnedVolume,ClearedVolume,BYROW(ClearedVolume,LAMBDA(ClearedToday,SUM(ReturnedVolume)-SUM(ClearedVolume)>ClearedToday)))($F$3:$F3,$H$3:$H3))
Isso sempre retorna FALSE, acho que porque para 2 de agosto está calculando 852-832= 20>370 = FALSE .
Começo a pensar que não consigo ver a floresta por causa das árvores agora.
O backlog no final de qualquer dia específico é a diferença entre o Volume Retornado (RV) cumulativo e o Volume Compensado (CV) cumulativo. O backlog no final de um dia é o backlog para o início do dia seguinte. A discussão abaixo considera pendências no início do dia.
Observe que um backlog nunca pode ser negativo, pois é impossível compensar em um dia qualquer coisa além do backlog daquele dia (início do dia) e seu RV.
Com um regime FIFO (primeiro a entrar, primeiro a sair), qualquer pendência de início de dia diferente de zero sempre conterá alguns itens do dia anterior e poderá conter itens de dias anteriores.
Se no início de hoje o backlog for diferente de zero e não for maior que o RV de ontem, então o item mais antigo do backlog não poderá ser mais antigo que ontem. Se fosse, então o FIFO implicaria que todo o RV de ontem teria que estar atrás dele na fila de pendências no início de hoje, levando à contradição de que o atraso teria que ser maior do que o RV de ontem. Como esse item mais antigo não pode ser de hoje (porque está na fila de pendências no início de hoje), segue-se que ele deve ser de ontem.
Argumentos semelhantes podem ser usados para comparar o tamanho da lista de pendências do início do dia de hoje com a contagem regressiva de RV cumulativa a partir de (mas não incluindo) hoje.
Se o tamanho da lista de pendências no início de hoje for (digamos) b e hoje for o dia número d , então o item mais antigo da lista de pendências originou-se no dia d - k se o RV total entre os dias d - 1 e d - k for maior que ou igual a b enquanto aquele entre d -1 e d - k -1 é menor que b .
A seguinte expressão fornece a solução necessária
A fórmula, que deve ser aplicada na terceira linha da planilha e copiada para baixo, pressupõe:
d
que aLET
linha 1 da planilha contém os cabeçalhos e as datas, RVs e CVs estão nas linhas 2 em dianteA
, RVs emB
e CVs emC
Observe que , se estiver agrupado em a
LAMBDA
como no OP, existem 3 intervalos na fórmulaA$2:A3
e . O primeiro deles possui uma célula/linha adicional em comparação com os outros dois.B$2:B2
C$2:C2
Na imagem abaixo, os backlogs são mostrados para fins ilustrativos, mas os valores mostrados na planilha não são utilizados na fórmula.
A fórmula de derramamento (veja meu comentário à minha resposta anterior) é
Esta fórmula é inserida no segundo dia. (Para o primeiro dia, presume-se que o sistema começa vazio, sem atrasos no início do dia 1.)
Observe que dentro
LAMBDA
dosMAP
retornosLAMBDA
efetivos para qualquer dia d a data fornecida porINDEX(PD, d - n)
. AnIF
aninhado com theINDEX
determina se o backlog no início do dia d é zero e, em caso afirmativo, n é definido como zero. Seria possível reverter a ordemINDEX
eIF
retornar apenas zero (em vez de uma data) em dias sem atrasos - o mesmo se aplica à versão sem derramamento da fórmula na resposta anterior.