Hi,我是偏愛函數(shù)公式,愛用 Excel 圖表管理倉庫的大叔 Mr 趙~在日常工作中,我們經(jīng)常會碰到按指定的條件重復數(shù)據(jù)的問題,比如按指定數(shù)量重復標簽的個數(shù),根據(jù)箱規(guī)拆分數(shù)量等等。今天,我們就來看看在 Office365 中,它的各種神奇做法。本文重在擴展思路,大家跟著我的步伐,往下看看吧。如下圖,按 C3 單元格的打印份數(shù)重復 B3 單元格的標簽名稱,效果如 E 列:對于單個標簽,我們可以使用 Row 函數(shù)下拉擴展,從而進行判斷。=IF(ROW(A1)<=$C$3,$B$3,'') 如果你是 Office365 版本,擴展只需要一個 EXPAND 函數(shù)。EXPAND 函數(shù)的作用,是將原來的區(qū)域按指定的行數(shù)和列數(shù)進行擴充。=EXPAND(區(qū)域,擴充的總行數(shù),擴充的總列數(shù),原區(qū)域以外顯示的值) 第 1 參數(shù)是 B3 單元格,表示待擴充的區(qū)域;第 2 參數(shù)獲取 C3 單元格的數(shù)值,表示擴充的總行數(shù),是 6 行,第 3 參數(shù),省略未寫,默認擴充為 1 列;第 4 參數(shù),獲取 B3 單元格的文本,用'A'填充原區(qū)域以外的位置,從而達到重復的效果。 如果想為這組結果添加標題,可以用 VSTACK 函數(shù)拼接,這個函數(shù)的作用是把各個參數(shù)縱向堆疊在一起。=VSTACK(參數(shù) 1,參數(shù) 2,參數(shù) 3……)=VSTACK(B2,EXPAND(B3,C3,,B3)) 上面使用的新函數(shù),Expand 函數(shù)和 Vstack 函數(shù),目前 WPS 還沒更新。不過,使用 WPS 的小伙伴(更新到新版本),可以用 SEQUENCE 函數(shù),同樣能達到填充的目的:PS : 由于 WPS 目前還沒有更新動態(tài)數(shù)組,所以使用 WPS 還需要使用數(shù)組三鍵哦~ ,Excel2021 及以上版本直接回車就行。首先用 SEQUENCE 函數(shù)根據(jù) C3 單元格的數(shù)值生成一組數(shù)字序列。=SEQUENCE(行數(shù),[列數(shù)],[開始數(shù)],[增量])=SEQUENCE(C3) =SEQUENCE(6) 也就是該函數(shù)公式生成為 6 行 1 列,開始值為 1,增值為 1 的序列。然后以這組序列作為 IF 函數(shù)的判斷條件,返回 B3 單元格的內(nèi)容。PS : 非 0 的值都為真(true),所以 if 函數(shù)判斷的時候,SEQUENCE 函數(shù)生成的序列都為 true。但是在實際操作指定重復次數(shù)的時候,不會只對單個標簽進行重復,一般是多個標簽一起。如下圖,根據(jù) C 列的打印份數(shù),重復 B 列多個標簽名稱,效果如 E 列:從上圖 E 列的效果可以看出,我們需要用 VSTACK 函數(shù)對每個標簽名稱依次循環(huán)拼接。=REDUCE(初始值,遍歷的數(shù)組,LAMBDA(x,y,計算表達式))第 2 個參數(shù)是循環(huán)遍歷的區(qū)域;第 3 個參數(shù)是 LAMBDA 函數(shù)運算的表達式,它有兩個參數(shù),x 指向初始累加值,y 指向第 2 參數(shù)即被遍歷的區(qū)域。 =REDUCE(B2,B3:B5,LAMBDA(x,y,VSTACK(x,EXPAND(y,OFFSET(y,,1),,y)))) 第 1 個參數(shù)為 B2 單元格,是初始值;第 2 個參數(shù)為 B3:B5 單元格區(qū)域,需要遍歷的數(shù)據(jù);第 3 個參數(shù)是一個 LAMBDA 函數(shù),它有兩個變量 x 和 y,用來計算表達式:=VSTACK(x,EXPAND(y,OFFSET(y,,1),,y)))) x 作為累加值,指向 REDUCE 的第 1 參數(shù)為 B2,也就是「標簽名稱」。y 指向 REDUCE 的第 2 參數(shù) B3:B5 區(qū)域。LAMBDA 遍歷 B3:B5 每一個單元格,第 1 次運行表達式:=VSTACK(B2,EXPAND(B3,OFFSET(B3,,1),,B3)))) 然后將上面的結果 E2:E5 作為 LAMBDA 新的第 1 參數(shù),B4 為第 2 參數(shù),繼續(xù)第 2 次執(zhí)行 LAMDA 表達式:=VSTACK(E2:E5,EXPAND(B4,OFFSET(B4,,1),,B4)) 依次類推,直至遍歷完 B3:B5 的所有單元格,將 LAMBDA 第 1 參數(shù)不斷拼接,結果如下圖 I 列:REDUCE 函數(shù)雖然是一個比較難的函數(shù),但是,由于有了它的存在,給我們提供了更加靈活的處理方案。今天我們通過指定的次數(shù)重復數(shù)據(jù)的案例,切實感受到了 365 版新函數(shù)的神奇用法!重在擴展大家思路~本文,我們主要涉及了三個比較常用的新函數(shù)。(目前它們還沒在 WPS 中出現(xiàn)。)? EXPAND 函數(shù)可以按指定的行數(shù)和列數(shù)自動擴充區(qū)域;? VSTACK 函數(shù)將對多個區(qū)域自由垂直拼接,比如添加標題;? REDUCE 函數(shù)通過遍歷,循環(huán)調(diào)用 LAMBDA 函數(shù)表達式生成最終結果,比如對多個數(shù)據(jù)標簽完成數(shù)量的復制。Excel 里的函數(shù)有 400 多個,但我們常用的其實只有幾十個。如果本篇文章對你有幫助或有所啟發(fā),歡迎「點贊」、「評論」和「轉發(fā)」哦,你們的支持是我分享的動力~
|