有一個做财務工作的小夥伴問我,它收到10幾張發票,然後他希望其中幾張發票金額湊成一個數字,但他表示,湊了一上午的金額還沒有湊出來,有沒有什麼好的解決辦法,在Excel裡面這個問題輕而易舉的就可以完成。
我們使用模拟案例來進行求解,如下所示:A列中有25個數字,如何找出來,哪些數字相加等于66666呢?
第1種方法,使用VBA的方法:
首先,我們在E1單元格中輸入公式:
=SUMPRODUCT(A1:A25*B1:B25),表示A列和B列相乘相加
然後我們按ATL F11,調出開發編輯器,在裡面輸入代碼
Sub 計算() Do Until [e1] = 66666 a = a 1 For i = 1 To 25 Cells(i, 2) = Application.RandBetween(0, 1) Next i Loop End Sub
運行上述的代碼,Excel會自動計算,得到一個結果,這個算法是碰運氣,所以很有可能很久都得不到結果,這個時候我們可以按ESC鍵中止程序。
第2種方法,線性規劃求解
今天着重想介紹的是這種方法,首先我們需要在設置裡面将這個功能調出來,在Excel選項中,選擇加載項,點擊轉到
然後勾選規劃求解加載項,如下所示:
然後在數據選項卡的最右邊有一個規劃求解,我們點擊規劃求解,把相應的 條件輸入,然後Excel會進行一個數據運算,最終得到結果:
其中這是個數學問題,我們設置的公式是:
A1:A25是固定的數值 0<=B1:B25<=1 B1:B25=整數 使得:=SUMPRODUCT(A1:A25*B1:B25)的結果是6666
B1:B25單元格的值就是取0或1,如果取到的是1,就是希望對應A列中需要保留的值
對于這個技巧,你學會了麼?自己動手試試吧~
往期精彩:
2個Excel表格核對,條件格式快速找出相同和不同的部分!
Excel技巧:30秒将二維表格轉換成一維表!
Excel設置合同時間到期自動提醒,還可以用來生日提醒!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!