實(shí)現(xiàn)動(dòng)態(tài)裝箱計(jì)算! wps中ddb+text函數(shù)公式的使用技巧

粉絲求助SOS:如何實(shí)現(xiàn)動(dòng)態(tài)[裝箱]計(jì)算?將不同型號(hào)的產(chǎn)品按50個(gè)一箱進(jìn)行分裝。
如下圖所示:
- A列是型號(hào):A、B、C、D
- B列是數(shù)量:39、72、117、21
裝箱要求是:
每個(gè)型號(hào)50個(gè)裝一箱,不能混裝。多出50個(gè)的部分需要裝在下一箱中,以此類推。最終結(jié)果顯示在在D1:E8區(qū)域。
下面顯示了每個(gè)箱子的明細(xì):
- A型號(hào):1箱39個(gè)
- B型號(hào):1箱50個(gè)和1箱22個(gè)
- C型號(hào):2箱各50個(gè)和1箱17個(gè)
- D型號(hào):1箱21個(gè)
這個(gè)問題差點(diǎn)讓我崩潰:ddb+text函數(shù)組合,雙劍合璧,實(shí)現(xiàn)動(dòng)態(tài)[裝箱]計(jì)算。
第一步:生成可能箱子序列
可以這樣寫公式:
=COLUMN(A:D)
COLUMN(A:D) 返回列號(hào)數(shù)組 {1,2,3,4}(A列=1, D列=4)
繼續(xù)完善公式:
=COLUMN(A:D)*50
乘以50后得到:{50,100,150,200}。這代表可能的累積裝箱點(diǎn)(每50個(gè)一箱),最多4箱(200個(gè)),覆蓋了最大數(shù)量117的需求。
第二步:巧用DDB函數(shù)計(jì)算各箱數(shù)量
我們繼續(xù)完善公式:
=DDB(COLUMN(A:D)*50,B2:B5,1,1)
這里使用了DDB折舊函數(shù),但被巧妙轉(zhuǎn)化為了裝箱計(jì)算。計(jì)算每個(gè)型號(hào)在每箱的“剩余量”。
DDB參數(shù)解析:
- cost: {50,100,150,200}(每個(gè)可能箱子的累積值)
- salvage: B2:B5,即 {39;72;117;21}(每個(gè)型號(hào)的總數(shù)量)
- life: 1(表示資產(chǎn)壽命只有1期)
- period: 1(計(jì)算第1期的折舊)
- factor: 省略(默認(rèn)為2)
DDB函數(shù)在life=1時(shí)的運(yùn)算原理:
當(dāng)life=1時(shí),DDB直接返回 cost - salvage(如果cost > salvage),否則返回0(因?yàn)檎叟f不能為負(fù))。
實(shí)際計(jì)算過程舉例:
型號(hào)A(salvage=39):
- cost=50:DDB=50-39=11
- cost=100:DDB=100-39=61
型號(hào)B(salvage=72):
- cost=50:50<72,DDB=0
- cost=100:100-72=28
繼續(xù)完善公式:
=50-DDB(COLUMN(A:D)*50,B2:B5,1,1)
這部分計(jì)算每個(gè)箱子的實(shí)際數(shù)量。
運(yùn)算過程舉例:
- 型號(hào)A,cost=50:50 - 11 = 39(第一個(gè)箱子數(shù)量)
- 型號(hào)A,cost=100:50 - 61 = -11(無效,后續(xù)會(huì)處理)
- 型號(hào)B,cost=50:50 - 0 = 50(第一個(gè)滿箱)
- 型號(hào)B,cost=100:50 - 28 = 22(第二個(gè)箱子剩余)
繼續(xù)完善公式:
=0&50-DDB(COLUMN(A:D)*50,B2:B5,1,1)
用文本連接符 & 處理:
例如:50-DDB=39→0&39="039"(文本)
負(fù)數(shù)如:-11→0&-11="0-11"(文本,后續(xù)會(huì)轉(zhuǎn)換為錯(cuò)誤值)
繼續(xù)完善公式:
=--(0&50-DDB(COLUMN(A:D)*50,B2:B5,1,1))
- --:作用是將文本轉(zhuǎn)為數(shù)字
- "039"→39(有效)
- "0-11"→錯(cuò)誤值(#VALUE!,因?yàn)椴皇呛戏〝?shù)字)
目的:
確保數(shù)字以三位形式出現(xiàn)(如39→039),但實(shí)際轉(zhuǎn)換后仍是數(shù)字39。負(fù)數(shù)產(chǎn)生的錯(cuò)誤將會(huì)在后續(xù)步驟中被過濾。
第三步:文本處理:構(gòu)建"型號(hào);;數(shù)量"字符串,確保數(shù)字格式。
我們輸入公式:
="\"&A2:A5&";;"&--(0&50-DDB(COLUMN(A:D)*50,B2:B5,1,1))
- 構(gòu)建型號(hào)字符串:"\"&A2:A5&";;"
"\"表示雙引號(hào)字符,Excel中轉(zhuǎn)義寫法。
- 例如型號(hào)A:"\"&"A"&";;" → "A;;"(字符串內(nèi)容為雙引號(hào)+A+兩個(gè)分號(hào))。
- 與數(shù)量連接:"A;;" & 39 → "A;;39"(表示型號(hào)A和數(shù)量39的組合)。
分隔符 ;; 用于后續(xù)TEXT函數(shù)拆分?jǐn)?shù)據(jù)。
第四步:降維過濾
我們外面嵌套TOCOL函數(shù):
=TOCOL("\"&A2:A5&";;"&--(0&50-DDB(COLUMN(A:D)*50,B2:B5,1,1)),3)
使用TOCOL轉(zhuǎn)換和過濾,TOCOL將數(shù)組矩陣轉(zhuǎn)為單列,忽略無效項(xiàng)。將上述生成的4行×4列矩陣轉(zhuǎn)換為單列,并忽略空值和錯(cuò)誤(第2參數(shù)設(shè)置為3)。
轉(zhuǎn)換過程:
- 有效值(如A;;39、B;;50)保留。
- 錯(cuò)誤值(如負(fù)數(shù)轉(zhuǎn)換結(jié)果)被跳過。
結(jié)果按行掃描:先處理型號(hào)A所有箱子,再B、C、D。
第五步:拆分輸出
最外面嵌套TEXT函數(shù):
=TEXT({1,0},TOCOL("\"&A2:A5&";;"&--(0&50-DDB(COLUMN(A:D)*50,B2:B5,1,1)),3))
用 TEXT 分割型號(hào)和數(shù)量,TEXT按分隔符;;分割為兩列。
{1,0}表示提取第1部分(型號(hào))和第0部分(數(shù)量)。
比如 "A;;39":
- {1}提取 ;; 前的部分 → "A"
- {0}提取 ;; 后的部分 → "39"
最終輸出兩列:D列為型號(hào),E列為數(shù)量。
TEXT({1,0}, ...) 固定結(jié)構(gòu):
不是真正的文本格式化函數(shù),而是被用來按分隔符拆分字符串的巧妙技巧。就像用剪刀沿著縫線剪開布料,;; 是縫線,{1,0} 是指揮剪刀裁剪的位置指令。
推薦閱讀:lookup加座啥意思? wps中l(wèi)ookup+sumifs搞定有合并單元格的多條件求和
相關(guān)文章
分享一個(gè)超神奇的公式! wps表格中對(duì)混合內(nèi)容中的分?jǐn)?shù)求和的技巧
wps表格中有很多內(nèi)容,想要單獨(dú)對(duì)分?jǐn)?shù)數(shù)據(jù)進(jìn)行求和,方法很多,今天我們用“=”+regexp+evaluate+sum這個(gè)公式對(duì)混合內(nèi)容的分?jǐn)?shù)求和,詳細(xì)如下2025-07-22無需配置點(diǎn)擊即用! WPS免費(fèi)接入DeepSeek上傳表格一鍵生成PPT等功能全都
WPS已接入DeepSeek,無需配置,無需等待,點(diǎn)擊即用,和“服務(wù)器繁忙”說再見,下面我們就來看看詳細(xì)教程2025-07-22根據(jù)簡(jiǎn)稱查詢?nèi)Q太香了! wps中regexp+vlookup公式使用技巧
wps表格中數(shù)據(jù)需要做一個(gè)對(duì)稱,想要實(shí)現(xiàn)將數(shù)據(jù)中的簡(jiǎn)稱和全稱對(duì)應(yīng)起來,該怎么操作呢?下面我們就來看看詳細(xì)教程2025-07-22wps怎么帶括號(hào)求和? regexp+sum這個(gè)厲害的求和公式請(qǐng)收藏
最近一直在研究REGEXP函數(shù),發(fā)現(xiàn)比想象中的更強(qiáng)大,過去一大堆案例都可以通過這個(gè)數(shù)解決,比如今天這個(gè)案例,需求很簡(jiǎn)單,需要將括號(hào)內(nèi)的數(shù)字進(jìn)行求和運(yùn)算,我們?cè)撊绾螌?shí)現(xiàn)2025-07-22lookup加座啥意思? wps中l(wèi)ookup+sumifs搞定有合并單元格的多條件求和
在Excel表格中,如何根據(jù)合并單元格來進(jìn)行數(shù)據(jù)的查詢?想要實(shí)現(xiàn)這樣的操作,最簡(jiǎn)單的方法就是利用LOOKUP函數(shù)2025-07-22從此以后寫公式又有一種新路子! wps中用Let函數(shù)玩變量的技巧
wps中Let函數(shù)給計(jì)算結(jié)果分配名稱,就像編程里的變量一樣,它讓你的公式更清晰,減少冗余,下面我們就來看看用Let函數(shù)玩變量的技巧2025-07-22提取任意行列數(shù)據(jù)太好用了! wps中chooserows與choosecols函數(shù)使用技巧
CHOOSECOLS CHOOSEROWS這兩個(gè)函數(shù)屬于同一類函數(shù),函數(shù)的目標(biāo)很明確,就是返回一組數(shù)據(jù)中,指定的行或列,類似OFFSET中返回指定區(qū)域,下面我們就來看看使用技巧2025-07-15wps星期排序怎么弄? WPS利用AI編寫代碼對(duì)行內(nèi)星期正向排序的技巧
電腦使用表格時(shí),發(fā)現(xiàn)單元格的日期順序是錯(cuò)的,想要按照周幾進(jìn)行排序,那么表格怎么根據(jù)星期幾排序日期,為此本篇介紹以下方法2025-07-12wps如何生成隨機(jī)順序? WPS利用AI編寫代碼對(duì)行內(nèi)隨機(jī)排列的技巧
wps中的數(shù)據(jù)系那個(gè)喲隨機(jī)排列,該怎么對(duì)數(shù)據(jù)進(jìn)行隨機(jī)排序呢?雖然方法很多,今天我們使用ai對(duì)數(shù)據(jù)進(jìn)行隨機(jī)排序2025-07-12wps如何跳過空行填充連續(xù)序列號(hào)? wps Excel跳過空行填充序號(hào)的技巧
當(dāng)序號(hào)填充遇到空行時(shí),你能跨過去嗎?我們給表格填充序號(hào)時(shí)通常使用序列填充,但當(dāng)表格中有空行時(shí)該怎樣填充呢?下面我們就來看看詳細(xì)教程2025-07-09