Excel: Encontre um subconjunto de números que são adicionados a um determinado total?


Respostas:


25

É possível com o suplemento Solver *. As etapas a seguir funcionaram para mim no Excel 2007 e 2010.

  1. Designe uma célula para armazenar o resultado (C1 para este exemplo) - esta é a célula de destino e uma coluna que o Excel pode usar para trabalho de rascunho (B1: B100 para este exemplo)
  2. Na célula de destino, insira a fórmula "= SUMPRODUCT (A1: A100, B1: B100)" (sem aspas). Isso calculará a soma de A1 * B1 + A2 * B2 + ... etc
  3. Selecione Abrir o solucionador (guia Dados, grupo Análise)
  4. A célula de destino deve ser óbvia ($ C $ 1 para este exemplo)
  5. Para 'Igual a:', selecione 'Valor de:' e insira o valor desejado.
  6. Em 'Ao alterar células', digite "$ B $ 1: $ B $ 100" (sem aspas, e pode ser necessário inicializar esses valores para 0 você mesmo)
  7. Adicione uma restrição às células que podem ser alteradas. No menu suspenso, selecione 'bin' (Binário). Isso restringe os valores dessas células a 0 (removendo a célula A correspondente da soma) ou 1 (adicionando a célula A correspondente à soma).
  8. Clique em 'Resolver' e aguarde. Os números que fazem parte do subconjunto que você procura terão um 1 na coluna B

Exemplo


Se o solucionador estiver demorando muito, você poderá ajudá-lo removendo as linhas que obviamente não funcionam (o total é em dólares e apenas uma linha tem centavos diferentes de zero)


Bônus: o Excel pode destacar automaticamente as células que você procura, adicionando formatação condicional a essas células. Selecione todas as células que você deseja formatar e em (guia Início) >> (grupo Estilos) >> Formatação condicional >> Nova regra selecione 'Use uma fórmula para determinar quais células serão formatadas'. Na fórmula, digite '= $ B1 = 1' (sem aspas), que será avaliado como verdadeiro se a linha correspondente na coluna B for 1. Para o formato, você pode adicionar o que quiser (negrito, itálico, preenchimento verde, etc).

Outra maneira fácil de encontrar as linhas importantes é classificar a coluna B Z-> A, e todos os 1s chegarão ao topo.


* O suplemento do solucionador pode ser instalado com estas etapas

  1. Clique no botão Microsoft Office e, em seguida, clique em Opções do Excel.
  2. Clique em Suplementos e, na caixa Gerenciar, selecione Suplementos do Excel.
  3. Clique em Ir.
  4. Na caixa Suplementos disponíveis, marque a caixa de seleção Suplemento do Solver e clique em OK. (Se o Suplemento do Solver não estiver listado na caixa Suplementos disponíveis, clique em Procurar para localizar o suplemento.)
  5. Se você for solicitado que o suplemento Solver não está instalado no momento no seu computador, clique em Sim para instalá-lo.

1
No Excel 2013, você precisa desmarcar "Ignorar restrições de número inteiro" no menu de opções. Caso contrário, você obter valores não INT para 0 e 1
Omar Shahine

1
Para que isso funcione corretamente: 1. A fórmula na célula C1 deve ser sumPRODUCT (não apenas soma) 2. As células na coluna B devem ter zero entrada nelas.

Obrigado! Para mim, as etapas antigas ainda funcionam, mas eu gosto mais de sumproduct porque não depende do recurso de fórmulas de matriz.
Nate Parsons

de qualquer maneira para encontrar todas as combinações ... embora exista uma solução encontrada pelo solver .. como encontrar as outras soluções ??? minha matriz está aqui: v = [1100, 1105, 11830, 14790, 2325, 2455, 2555, 2935, 3050, 3150, 3185, 3370, 3475, 350, 3530, 3590, 3680, 3745, 885, 9624] sum = 43029 ... solution1 = [350, 1100, 2325, 2455, 2555, 2935, 3150, 3745, 9624, 14790], solution2 = [350, 885, 1100, 1105, 2325, 2455, 2555, 3530, 3590, 3680 , 9624, 11830]
ihightower

2

Há um SumMatch do suplemento do Excel de baixo custo , que destacará o subconjunto de números que somam uma soma de destino.

insira a descrição da imagem aqui


1
Olá AIsoft, boa localização. Talvez da próxima vez você possa adicionar mais algumas informações.
Nixda 30/12/12

@pnuts Cometi um erro? Eu não entendo o que você quer dizer com AUD $ 30
nixda

@pnuts Ah ok, esse é um bom argumento.
Nixda

6
Nota para mim: AUD $ 30 = 30 dólar australiano. Não é uma referência a uma célula do Excel [AUD30] com uma coluna fixa ....: D
nixda 30/12/12

1
O preço é uma desvantagem, assim como a falta de instruções claras. Qualquer coisa com mais de 1 frase + 1 foto no site do produto, na verdade.
Nate Parsons
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.