Akina e Rajesh H forneceram soluções elegantes que funcionam para o exemplo da questão. No entanto, esta abordagem tem uma lacuna em que eles param muito cedo. Se você tiver um projeto grande que exceda o orçamento, seja sozinho ou com o total cumulativo, ele para com o projeto anterior em vez de ignorar o projeto não qualificado e continuar procurando outros projetos qualificados. Por exemplo:
Nocasotop,substituíumgrandeprojetopelosegundocronologicamente.Issoteriaempurradooacumuladosobreoorçamento,porissoparoucomumúnicoprojetoemvezdeadicionarosposterioresqueestariamdentrodoorçamento.
Nosegundocaso,torneioprimeiroprojetomaiorqueoorçamento.Emvezdepulareprocurarporoutrosquesequalificaram,elepáraenãoretornanada.
Minhasuposiçãoéqueoobjetivoépreencheroorçamento,dandoprioridadeaosprojetosmaisantigosprimeiro.Seumprojetoantigonãoseencaixanoorçamento,presumoquenãodevemosparardeolharparaesseponto.
Aquiestáumasoluçãosimplesquenãotemesseproblema.
Eufizváriassubstituiçõesdegrandevalorapenasparailustrarcomoafórmulafunciona.
Comoprimeiropasso,classifiqueiosdadoscronologicamente.Aprimeirafórmula(emD4):
=IF(C4>$C$1,"",C4)
Se o primeiro valor cronologicamente estiver abaixo do valor do orçamento, ele o utiliza, caso contrário, deixa um valor nulo. O restante das fórmulas é copiado do segundo valor (em D5):
=IF(SUM($D4:D$4)+C5>$C$1,"",C5)
Isso soma os valores de qualificação anteriores acima e adiciona o valor para esse projeto. Se o projeto colocar o total acima do orçamento, ele postará um valor nulo, caso contrário, adicionará o valor para o projeto. Ele faz isso para cada projeto subsequente, então você sempre obtém todos os projetos qualificados.
Observe que você pode melhorar sua estratégia. Por exemplo, suas regras param em US $ 2400 para os valores no meu exemplo. Você poderia se aproximar do orçamento adicionando outras prioridades que permitiriam selecionar projetos posteriores maiores do que os pequenos. Se a sua lista de projetos é o tempo que você descreve, provavelmente haverá muitas combinações próximas no tempo que poderiam preencher o orçamento. Ao diminuir a primeira restrição mais antiga, você pode se aproximar do orçamento. Você também pode combinar idade com outros objetivos, como tamanho do projeto; por exemplo, conclua alguns projetos grandes em comparação com muitos projetos pequenos.