Dividindo um número em componentes de soma [closed]

0

Existe uma maneira que eu posso fornecer um número e o excel calcularia os componentes que compõem esse número a partir de um subconjunto limitado (sem exceder o número fornecido)

por exemplo. Subconjunto: (1,25, 2,5, 5,10,20)

e dado um número (25) o excel escreveria 20 + 5 (ou 20,5)

17 - > 10 + 5 + 1,25 (combinação mais próxima que não exceda 17)

35 - > 20 + 10 + 5 = 35

36 - > 20 + 10 + 5 = 35

37 - > 20 + 10 + 5 + 1,25 = 36,25

38 - > 20 + 10 + 5 + 2,5 = 37,5

39 - > 20 + 10 + 5 + 2,5 + 1,25 = 38,75

e assim por diante

    
por Sarah22 28.03.2017 / 10:14

1 resposta

2

Este foi divertido!

Em algum lugar em sua pasta de trabalho (sugiro uma guia diferente), crie uma tabela de componentes incluindo zero da seguinte forma: Simplesmentecomececomapalavra"Componentes", adicione seus números abaixo e escolha "Inserir tabela" na faixa de opções. Certifique-se de incluir o zero e alterar o nome da tabela como realçado. Esta tabela de componentes precisará estar em ordem crescente, mas a criação da tabela significa que você obtém aquele pequeno e prático botão de classificação / filtro. : -)

Em seguida, em outro lugar da sua pasta de trabalho, crie a tabela principal. Adicioneapenasaprimeiracolunaetodososcabeçalhosdecolunae,emseguida,escolhaInserirtabelanovamente.EuediteioformatonuméricodoestiloNormalparaserGeneral;General;,paraqueosvaloresdezerofossemexibidoscomoseestivessemvazios.

Colunas:

Número-seunúmero

C1-=VLOOKUP([@Number],Components,1)

C2aC10-=VLOOKUP([@Number]-SUM(OFFSET([@C1],0,0,1,COLUMN()-COLUMN([@C1]))),Components,1)

CSum-=SUM([@[C1]:[C10]])

Dentrodeumatabela,[@ColumnName]refere-seàcélula"ColumnName" na linha atual. Portanto, na minha versão, uma fórmula de COLUMN([@C1]) é avaliada como 3, pois está na coluna C.

Assim, para a célula realçada na imagem acima, a fórmula

=VLOOKUP([@Number]-SUM(OFFSET([@C1],0,0,1,COLUMN()-COLUMN([@C1]))),Components,1)

resolve para

=VLOOKUP(**35**-SUM(OFFSET(C4,0,0,1,**6** - **3**)),Components,1)

resolve para

=VLOOKUP(35-SUM(**C4:E4**),Components,1)

resolve para

=VLOOKUP(35-**35**,Components,1)

E, portanto, o VLOOKUP procura o maior número em Componentes que é igual ao primeiro argumento (0) e retorna um resultado de 0. Isso é exibido de acordo com a formatação personalizada de Custom;Custom; , para que zero apareça em branco. / p>

(Bem, shucks. O "**" não é, obviamente, literalmente parte do que a fórmula resolve, mas é, em vez disso, minha tentativa fracassada de colocar as partes alteradas em negrito. Se alguém souber como obter o efeito Eu estava filmando, por favor conserte.)

    
por 28.03.2017 / 18:21