在財務工做過程當中,很大時候須要使用到湊數的需求,花了兩三天時間認真研究了一下,本人水平也只能作代碼搬運工,在用戶體驗上做了一下完善。完成了Excel版的湊數功能。html
原文在簡書上發表,再同步到Excel催化劑微信公衆號或其餘平臺上,文章後續有修改和更新將在簡書上操做, 其餘平臺不做同步修改更新,所以建議閱讀其餘出處的文章時,儘量跳轉回簡書平臺上查看。算法
有財務的朋友分享了一需求,開發票的過程當中,須要一張發票發多個商品明細,有可能累計了許多的款項一次性給予開具發票,而同時發票又有面額最大的限制要求。數據庫
企業的每個月可開發票數量也有限,故很須要有一個湊數的功能,幫助其從衆多記錄中抽取出部分記錄,而後彙總求和獲得接近或相等於發票最大開票面額。數組
其餘的湊數場景略感受仍是有,一會兒沒想得太清晰,有相關的應用場景歡迎反饋補充,供後來人更多瞭解和使用。安全
湊數的問題,涉及到規劃求解類的知識,本人在數學方面造詣太淺,翻看ExcelHome論壇得知香川羣子大神是這方面的專家,也無私公開了源代碼,具體連接可查看:
http://club.excelhome.net/thread-1359141-1-1.html服務器
同時順藤摸瓜,按着這個揹包算法,在師傅水晶雞翼的指導下,得知Google的OR-Tools工具包裏有一樣的算法實現。抱着對Google科學家們的敬仰,學習了一點皮毛,也放到插件裏使用了。微信
本篇的功能,仍然採用自定義函數的方式實現,自定義函數較功能區按鈕優越的地方,在前面29波中已有闡述,再也不重複。網絡
因湊數計算量大,而使用函數嚮導的方向輸入的話,每輸入一個參數都運算一遍,還有可能卡機報錯等,建議使用手動輸入的方式,輸入兩個參數。函數
手動輸入時,可利用名稱功能,輸入更方便,輸入某個參數時,若已經定義好名稱,可按F3快捷鍵調出粘貼名稱來選擇。同時函數的可讀性也獲得增強。工具
請務必輸入區域時,不要全選整列數據,自定義函數沒做整列的較驗處理,整列選擇意味着運算量是幾萬倍的增長,已經用到這些功能的表哥表姐們,也很必須學習好規範的Excel操做,減小沒必要要的麻煩和性能損耗
一樣的引用的數據源,請務必保證是數字格式,最多4位小數點精度, 正數,中間沒有空數據和字符等,否則函數計算會報錯!
計算的結果存放在記錄表的某一列中,用的是數組公式的方式返回多個值,故若須要修改刪除,請使用功能區的數組函數相關的刪除、數值化、選擇等快捷操做。
若使用OR-TOOLS函數,在B列上能夠看到更多的信息,如組名,組的大小,組的實際記錄和和指望和的差別(0爲無差別)
EH版香川羣子大神的代碼,在分組的大小較大時,性能仍然保持優異,而用OR-TOOLS實現的函數,就有很大的性能瓶頸。
例如某300條記錄,總和是1000,我要分一個900的組,不知道爲什麼OR-TOOLS的函數很慢,甚至最後報超時錯誤(OR-TOOLS因大小太大了,作了個網絡版部署,網絡訪問過久會超時,同時也須要有鏈接外網的能力)。
EH版的函數,因原代碼沒有太多的封裝,部分細節不太會改寫,故無法作成像OR-TOOLS的分組形式,其實其餘額外信息,大可用透視表彙總一下組名,很快獲得,也非必須的信息。
建議使用EH版的湊數函數,OR-TOOLS版可能後續其餘應用場景再開發其餘的函數。
Excel的原生功能並不是萬能,雖然自帶了規劃求解功能,但貌似比較雞肋的功能,常常報找不到結果,藉助代碼的力量,結合網絡世界中一些現成的輪子,Excel的使用也能玩出很高的、很出乎意料、超越常規的事情來。
湊數功能就是其中一例,用人工的方法去作,那不是通常的累人,可能到某幾年以後才能算出來的結果。大膽地去想吧,腦洞大開一下,許多的不可能將成爲可能。
一文帶你全面認識Excel催化劑系列功能
安裝過程詳解及安裝失敗解決方法
第1波-工做表導航
第2波-數字格式設置
第3波-與PowerbiDesktop互通互聯
第4波-一大波自定義函數高級應用,從新定義Excel函數的學習和使用方法
第5波-使用DAX查詢從PowerbiDeskTop中獲取數據源
第6波-導出PowerbiDesktop模型數據字典
第7波-智能選區功能
第8波-快速可視化數據
第9波-數據透視表自動設置
第10波-快速排列工做表圖形對象
第11波-快速批量插入圖片
第12波-快速生成、讀取、導出條形碼二維碼
第13波-一鍵生成自由報表
第14波-一鍵生成零售購物籃分析
第15波-接入AI人工智能NLP天然語言處理
第16波-N多使用場景的多維錶轉一維表
第17波-批量文件更名、下載、文件夾建立等
第18波-在Excel上也能玩上詞雲圖
第19波-Excel與Sqlserver零門檻交互-查詢篇
第20波-Excel與Sqlserver零門檻交互-數據上傳篇
第21波-Excel與Sqlserver零門檻交互-執行SQL
第22波-Excel文件類型、密碼批量修改,補齊Power短板
第23波-非同通常地批量拆分工做表
第24波-批量發送郵件並指點不一樣附件不一樣變量
第25波-小白適用的文本處理功能
第26波-正確的Excel密碼管理之道
第27波-Excel工做表設置快捷操做
第28波-工做薄瘦身,安全地減小非必要冗餘
第29波-追加中國特點的中文相關自定義函數
第30波-工做錶快捷操做(批量建立、命名、排序、工做表目錄)
Excel催化劑先是一微信公衆號的名稱,後來順其名稱,正式推出了Excel插件,插件將持續性地更新,更新的週期視本人的時間而定爭取一週可以上線一個大功能模塊。Excel催化劑插件承諾我的用戶永久性無償使用!
Excel催化劑插件使用最新的佈署技術,實現一次安裝,往後全部更新自動更新完成,無需重複關注更新動態,手動下載安裝包從新安裝,只需一次安裝便可隨時保持最新版本!
Excel催化劑插件下載連接:https://pan.baidu.com/s/1gC6joqGY_SIg_yONga9PaQ
因插件使用VSTO開發技術完成,插件的安裝須要電腦知足相關的環境配置才能運行,且需可鏈接外網的方式實現自動更新機制,若下載安裝過程當中有任何疑問或須要離線版安裝等,儘可能不單獨私聊詢問,加QQ羣可高效解決(羣內已聚集了VSTO開發、Powerbi技術、Sqlserver商業智能等方面的國內頂尖大牛人物,進羣的好處不用多說了)
取名催化劑,因Excel自己的強大,並不是全部人可以立馬享受到,大部分人仍是在被Excel軟件所虐的階段,就是頭腦裏很清晰想達到的效果,並且高手們也已經實現出來,就是本身怎麼弄都弄不出來,或者更糟的是還不知道Excel可以作什麼而停留在不斷地重複、機械、手工地在作着數據,耗費着無數的青春年華歲月。因此催生了是否能夠做爲一種媒介,讓廣大的Excel用戶們能夠瞬間點燃Excel的爆點,無需苦苦地掙扎地沒日沒夜的技巧學習、高級複雜函數的燒腦,最終走向了從入門到放棄的道路。
最後Excel功能強大,其實還需樹立一個觀點,不是全部事情都要交給Excel去完成,也不是全部事情Excel都是十分勝任的,外面的世界仍然是一個廣闊的世界,Excel只是其中一枚耀眼的明星,還有其餘更多一樣精彩強大的技術、工具等。*Excel催化劑也將借力這些其餘技術,讓Excel可以發揮更強大的爆發!
姓名:李偉堅,從事數據分析工做多年(BI方向),一名一樣在路上的學習者。
服務過行業:零售特別是鞋服類的零售行業,電商(淘寶、天貓、京東、惟品會)
技術路線從一名普通用戶,經過Excel軟件的學習,今後走向數據世界,非科班IT專業人士。
歷經重重難關,終於在數據的道路上達到技術平原期,學習衆多的知識再也不太吃力,同時也造成了本身的一套數據解決方案(數據採集、數據加工清洗、數據多維建模、數據報表展現等)。
擅長技術領域:Excel等Office家族軟件、VBA&VSTO的二次開發、Sqlserver數據庫技術、Sqlserver的商業智能BI技術、Powerbi技術、雲服務器佈署技術等等。
2018年開始職業生涯做了重大調整,從原來的正職工做,轉爲自由職業者,暫無固定收入,暫對前面道路不太明朗,苦從新回到正職工做,對Excel催化劑的運營和開發一定受到很大的影響(正職工做時間內不可能維護也不可能隨便把工做時間內的成果公佈於外,工做外的時間也十分有限,因已而立之年,家庭責任重大)。
和廣大擁護者一同期盼:Excel催化劑一直能運行下去,我所惠及的羣體們可以給予支持(多留言鼓勵下、轉發下朋友圈推薦、小額打賞下和最重點的能夠和所在公司及同行推薦推薦,讓個人技術能夠在貴司發揮價值,實現共贏(初步設想能夠數據顧問的方式或一些小型項目開發的方式合做)。)