2017-08-25 43 views
0
Column A   
50    
25 
50 
75 
25 
50 
50 
25 

可以說我有上面的列。我想嘗試將列A中的所有數加起來爲100,然後顯示所有符合該條件的單元格。如何在列中添加至多給定數字的兩個單元格

這甚至可以在Excel中?

我試着把每一列逐一加起來......例如:= if(a1 + a2 = 100,1,0)並填充下來,但是這顯然不適用於整個範圍。

+0

我很感興趣,看看有人有答案,因爲這是一個非常有趣的問題。我的猜測是,你將不得不用O(n!)寫一些東西 - 這意味着它會很慢 –

+0

它會像O(2^n)這樣的東西;如果您有8個值,則有256個可能性來包含/排除總和中的值。 (基本上8位)。 生成的算法可以進行一些優化,但是如果列表包含例如,則會遇到問題。 64個小值。 – Ronald

+0

你可以嘗試貪心算法或樹遍歷,但任何方法都需要vba。 –

回答

1

第一:它只能是兩個或更多數字的總和嗎?如果它可能更多,那麼你可以在這裏找到一個解決方案:https://www.extendoffice.com/documents/excel/3557-excel-find-all-combinations-that-equal-given-sum.html

否則我有一個快速和骯髒的方式來實現你所需要的。如果你在上面放置一個具有相同數字的轉置行(使用特殊粘貼),它非常容易。您創建一個表像圖中,寫這個公式中的第一個單元格:

=(100 = $A2+B$1) 

然後公式拖動到其他所有細胞(它會自行調節),你可以清楚地看到所有的款項,如果他們平等100.

enter image description here

我有一個荷蘭的Excel版本,其中 「WAAR」 是真實的, 「ONWAAR」 是假的。

+0

絕對精彩! – AfroJoe

相關問題