Compartilhar via

Ajuda com Excel Solver

Anônima
2024-05-17T13:32:09+00:00

Olá pessoal, boa tarde!

Preciso de uma ajuda sobre configurar critério no Excel Solver.

Contextualizando a necessidade:

Tenho uma lista de valores (há valores iguais ou não, dependendo do dia) e preciso chegar a um numero objetivo. Assisti a um tutorial no YouTube que atendeu parcialmente a minha necessidade, o Solver vai marcar com “1” ou “0” aqueles números que somados correspondem ao meu valor objetivo. Isso já me ajudou bastante.

Mas eu preciso travar o Solver para dizer para ele o seguinte: exemplo “desses 15 números, eu quero que apenas 10 sejam elegíveis”.

No exemplo abaixo (cenário que criei) o Solver encontrou meu valor objetivo com apenas 10 números (dos 15 listados). Mas há vezes em que ele acha menos números ou mais números (mesmo atendendo o valor objetivo). Eu preciso travar ele dizendo “quero que sejam X números”.

Abaixo está o cenário que criei e a configuração do Solver que fiz.

Definir objetivo: selecionado a celular em que há uma formula =somarproduto

Para: valor exato → o valor que eu quero que chege

Alterando as células variáveis: selecionando as células vazas da coluna “B”, é nessa coluna que o Solver vai colocar “1” ou “0”.

Sujeito a restrições: Dizendo para o Solver que o preenchimento será em binário “1” ou “0”.

Se não ficou muito claro a minha duvida, podem dizer e eu vou respondendo.

Conseguem me ajudar?

Muito obrigado

Microsoft 365 e Office | Excel | Para empresas | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2024-05-17T17:58:28+00:00

Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

Você pode tentar macro.

Sub AA()

TargetValue = 6172.20001

TargetCount = 10

CompareValue = 0

For A = 0 To 1

For B = 0 To 1

For C = 0 To 1

For D = 0 To 1

For E = 0 To 1

For F = 0 To 1

For G = 0 To 1

For H = 0 To 1

For I = 0 To 1

For J = 0 To 1

For K = 0 To 1

For L = 0 To 1

For M = 0 To 1

For N = 0 To 1

For O = 0 To 1

CountValue = A + B + C + D + E + F + G + H + I + J + K + L + M + N + O

SumProValue = Cells(2, 1) * A + Cells(3, 1) * B + Cells(4, 1) * C + Cells(5, 1) * D + Cells(6, 1) * E + Cells(7, 1) * F + Cells(8, 1) * G + Cells(9, 1) * H + Cells(10, 1) * I + Cells(11, 1) * J + Cells(12, 1) * K + Cells(13, 1) * L + Cells(14, 1) * M + Cells(15, 1) * N + Cells(16, 1) * O

If SumProValue > CompareValue And SumProValue < TargetValue And CountValue = TargetCount Then

CompareValue = SumProValue

Cells(2, 2) = A

Cells(3, 2) = B

Cells(4, 2) = C

Cells(5, 2) = D

Cells(6, 2) = E

Cells(7, 2) = F

Cells(8, 2) = G

Cells(9, 2) = H

Cells(10, 2) = I

Cells(11, 2) = J

Cells(12, 2) = K

Cells(13, 2) = L

Cells(14, 2) = M

Cells(15, 2) = N

Cells(16, 2) = O

End If

Next O

Next N

Next M

Next L

Next K

Next J

Next I

Next H

Next G

Next F

Next E

Next D

Next C

Next B

Next A

End Sub

Esta resposta foi útil?

1 pessoa achou esta resposta útil.
0 comentários Sem comentários

3 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2024-05-17T18:24:48+00:00

    Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

    Essa parte é o valor de destino e a contagem de destino dos números desejados.

    Esta parte é o loop para cada valor. Se tiver mais valores. Você pode adicionar mais caracteres, como P Q..... Z, AA, AB...

    Esta parte o cálculo de contagem e sumprodct.

    Esta parte é verificar se o valor está atingindo a meta.

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2024-05-17T18:13:56+00:00

    Muito obrigado pelo retorno e ajuda.

    Como faço para ajustar a macro caso eu tenha mais ou menos valores?

    O contexto é que, no trabalho eu preciso descobrir quais foram as transações que chegaram naquele valor (o valor objetivo que comentei). E há dias em que há mais transações e dias com menos transações.

    O racional da macro que me enviaste está perfeito, mas gostaria de saber como faço o ajuste (caso eu precise). Nesse exemplo que dei, foram 15 transações.

    Mas pode ser que há dias com 20 ou 9 ou 12, etc. Esse ajuste que gostaria de aprender.

    Muito obrigado

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2024-05-17T18:03:56+00:00

    Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

    Arquivo de macro enviado em mensagem privada.

    Mensagens Privadas - Comunidade Microsoft

    Aqui está o resultado macro.

    Esta resposta foi útil?

    0 comentários Sem comentários