一个数里有那些约数用c++怎么做_如何从一堆数里找出哪几个数相加等于你要的值?...
湊數在更深一步財務數據分析和核算中有著很重要的作用
你是否有遇到過收到的一筆款對應哪幾個發票金額?一張發票對應哪幾筆收款?等等其他方面需要從一堆數里湊幾個數等于你要的值。
對于數字敏感的人,一些簡單的可以從肉眼看到直接找出是哪幾個數,但是如果對于數據稍微多一點,金額沒有規律的你又怎么能輕易用肉眼找出來呢
一起學一個湊數功能吧:
規劃求解
先看看在EXCEL中哪個位置
數據-模擬分析-規劃求解
看一個例子
B列有12個數,其中B1+B3+B6+B11=16368.94
假設我們事先不知道是這幾個數相加等于16368.94,那我們怎樣從這12個數里面湊出是B1、B3、B6、B11的和是16368.94呢?
具體操作如下 :
1.在c1單元格輸入=SUMPRODUCT(B1:B12,C1:C12)
sumproduct函數用法:
SUMPRODUCT(數組1,數組2, ...),sum是求和的意思,PRODUCT是求積,最后返回的是成績之和。
看一個小例子:
其實就是=1*3+1*4+1*5+1*6+1*2+1*1=21
回到上面,返回的是0,因為C列為沒有值
2.點擊數據-模擬分析-規劃求解,彈出對話框設定相應的條件:
目標單元格是D1,下面勾選目標值在里面輸入剛才的數字16368.94,可變單元格選中剛才為空值的C1到C12,添加類型CI到C12=二進制(二進制的值就是0和1)求解方法選單純線性規劃
(選擇二進制是避免出現零點幾等不規則小數,求解方法選單純線性規劃是明確求解方向,速度和效率更快)
如下圖
保留規劃求解的解
點確定后,我們看到C列有值為0和1
其實最后我們要求的目標值就是C列為1對應左邊B列單元格值的和,剛好就是上面說的
B1、B3、B6、B11
原理就是利用數組乘積得到目標值
特別注意:規劃求解求的是最佳組合,即符合條件的一種最佳方案,如果還有其他幾個數的和也為目標值,是難以求出的,當然如果要求出所有的值可以借助EXCEL的重磅程序VBA來處理,給你看一下VBA設計的湊數工具更快更高效地解決湊數問題吧,看一下效果
比如說我們要從1到10里面找出所有相加等于15的結果
直接在目標值里面輸入15,誤差選0,組合個數選11,點擊不重復求和遞歸就可以得到所有的結果展示在右邊,如下圖
使用VBA更輕松跟快,結果更全面,后面會更新VBA相關的內容(在EXCEL里面使用VBA需要安裝VBA程序)
關注我,一點一滴帶你學Excel和財務實操知識
歡迎評論和轉發,如有工作中實際遇到的問題,可以評論區留言,一起探討
總結
以上是生活随笔為你收集整理的一个数里有那些约数用c++怎么做_如何从一堆数里找出哪几个数相加等于你要的值?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node 生成随机头像_唯一ID生成算法
- 下一篇: python进程池调用实例方法_Pyth