367 自動化表格助力工廠采購:快速鎖定最佳采購成本方案(采購訂單自動化)
在工廠的復雜供應鏈管理體系中,采購環(huán)節(jié)扮演著至關(guān)重要的角色,尤其在面對多元化物料需求與多變市場環(huán)境時,其工作難度與精細化要求顯著提升。其中,針對不同物料向多家供應商詢價的過程尤為關(guān)鍵。各類物料由于屬性、規(guī)格、生產(chǎn)工藝等差異,其市場價格存在顯著區(qū)別;同時,同一物料在不同供應商之間的報價亦可能存在顯著差異,這既源于供應商成本結(jié)構(gòu)、運營策略的個體化差異,也與市場競爭狀況、供求關(guān)系等因素密切相關(guān)。
更為復雜的是,供應商報價通常并非固定不變,而是會根據(jù)采購數(shù)量進行動態(tài)調(diào)整。為適應工廠生產(chǎn)計劃的多樣性,供應商往往會設(shè)定不同數(shù)量層級的階梯價格,如針對采購數(shù)量小于100件、小于500件、大于500件等不同區(qū)間提供差異化報價。這種精細化的價格策略,旨在通過量級優(yōu)惠吸引大規(guī)模采購,同時也確保小規(guī)模訂單的利潤空間。
在完成這一系列多元化的詢價后,采購部門面臨的關(guān)鍵挑戰(zhàn)在于:如何針對工廠所需的特定物料采購量,迅速且準確地從參與報價的供應商群體中(這些供應商可能包括一家、兩家,乃至五至六家)篩選出對應采購數(shù)量下的最低報價供應商。
如下圖所示的案件中,我們收集到的供應商信息分散在不同的工作頁面上,涉及供應商1、供應商2等多家參與者。值得注意的是,盡管供應商眾多且分布零散,但每個供應商所提供的報價單均遵循工廠所規(guī)定的統(tǒng)一格式。具體而言,B列清晰標明了供應商名稱,C列記錄了對應的物料代碼,而D至F列則分別詳述了針對采購數(shù)量小于100件、小于500件以及大于500件時的相應報價。
面對上述情況,當前的需求是設(shè)計一款智能化的自動化表格,該表格應能無縫嵌入工廠的采購訂單報表系統(tǒng)中。其核心功能在于,只需一鍵操作,即可自動識別并精準匹配所采購物料在不同數(shù)量條件下的最低報價及其對應的供應商,從而極大地提升了采購決策的效率與準確性,確保工廠能夠在紛繁復雜的報價數(shù)據(jù)中迅速鎖定最具成本效益的采購方案。
效果如下圖所示:
合并數(shù)據(jù)
為了更有效地進行報價查詢,首要步驟是對分布在各個工作頁面的供應商信息進行整合,將其統(tǒng)一歸置于一個工作表中。鑒于所有供應商的報價單均遵循相同的格式——即各列標題與內(nèi)容保持一致,僅因不同供應商提供的物料報價數(shù)量類別有所差異而導致行數(shù)有所不同——我們可以利用WPS中的“VSTACK”函數(shù)輕松實現(xiàn)數(shù)據(jù)合并。
操作時,只需事先在目標合并區(qū)域預設(shè)好足夠容納所有供應商數(shù)據(jù)的行數(shù)范圍,然后在VSTACK函數(shù)的參數(shù)中正確引用各供應商數(shù)據(jù)源范圍,即可順利完成數(shù)據(jù)整合工作,為后續(xù)的報價查詢奠定堅實基礎(chǔ)。
錄入以下函數(shù):
=VSTACK(供應商01:供應商03!B2:F23)
公式含義:
此公式將供應商01、供應商02及供應商03工作表中B2至F23單元格范圍內(nèi)的所有數(shù)據(jù)垂直堆疊排列。
函數(shù)說明:
VSTACK:這是一個數(shù)組函數(shù),用于將兩個或多個數(shù)據(jù)區(qū)間按垂直方向(即列方向)合并成一個新的數(shù)組。
參數(shù)解析:
供應商01:供應商03!B2:F23:表示選取供應商01至供應商03這三個工作表中,從第2行開始至第23行結(jié)束,B至F列的全部單元格。此處使用冒號“:”作為間隔符號,用于一次性指定多個連續(xù)工作表的相同單元格范圍。若需涵蓋更多供應商,只需將首個與最后一個供應商的工作表名以同樣方式用冒號相連,如“供應商01:供應商09!B2:F23”,即可實現(xiàn)對供應商01至供應商09工作表中相應單元格范圍的數(shù)據(jù)合并。
效果如下圖所示:
篩選結(jié)果
上述操作生成的結(jié)果可被視為一個“內(nèi)存數(shù)據(jù)”集合,這一集合中的數(shù)據(jù)具有可移植性,能夠作為參數(shù)被嵌套到其他相關(guān)函數(shù)中進行進一步的計算與分析。完成數(shù)據(jù)合并后,接下來的工作便是編制采購報表單。在此過程中,我們將依據(jù)實際采購的物料信息,從已整合的供應商報價數(shù)據(jù)集中篩選出與之對應的特定供應商報價。針對每一種物料,可能查找出一家或多家供應商的報價信息
錄入以下函數(shù):
=LET(A,VSTACK(供應商01:供應商03!B2:F23),FILTER(A,CHOOSECOLS(A,2)=C3))
公式含義:
首先,通過LET函數(shù)定義了一個名為A的變量。A的值由VSTACK函數(shù)生成,該函數(shù)將工作表“供應商01”,“供應商02”,和“供應商03”的B2:F23區(qū)域內(nèi)的數(shù)據(jù)垂直堆疊在一起,從而整合了多個供應商的報價信息。
隨后,對整合后的數(shù)據(jù)集A應用FILTER函數(shù)進行篩選。篩選條件設(shè)定為:當A的第2列(即合并后的供應商物料代碼列)的值等于采購訂單中指定物料代碼單元格C3時,該行數(shù)據(jù)被視為滿足條件并被保留。
綜上所述,此公式實現(xiàn)了從多個供應商報價表格中提取出與采購訂單中物料代碼(位于C3單元格)相符的所有供應商報價記錄,便于進一步比對和處理。
效果如下圖所示:
數(shù)量判斷
由于采購數(shù)量的多少直接影響到供應商的報價,而供應商通常會依據(jù)采購數(shù)量將其報價劃分為三個標準區(qū)間:數(shù)量小于100件、介于100至500件之間以及大于500件。為此,我們需要在處理采購訂單明細時,根據(jù)其中的數(shù)量值判斷其所屬的數(shù)量段。我們用數(shù)字1、2、3分別代表這三個數(shù)量段:1對應“小于100件”,2對應“100至500件”,3對應“大于500件”。
錄入以函數(shù):
=XLOOKUP(D3,{0;100;500},{1;2;3},,-1)
公式含義:
XLOOKUP函數(shù)在此處用于查找采購訂單明細中單元格D3所記載的采購數(shù)量,將其與預先設(shè)定的邊界值數(shù)組 {0, 100, 500} 進行比較。這些邊界值定義了三個數(shù)量段的上下限。當D3中的數(shù)量落在某一區(qū)間內(nèi)時,函數(shù)返回對應區(qū)間在結(jié)果數(shù)組 {1, 2, 3} 中對應的數(shù)字,即數(shù)量段編號。
參數(shù) -1 表示進行升序查找且允許查詢值小于查找范圍內(nèi)的最小值。在這種情況下,如果采購數(shù)量小于100件,函數(shù)將返回數(shù)值1;若采購數(shù)量在100至500件之間,則返回2;若采購數(shù)量超過500件,則返回3。通過這種方式,我們可以快速確定采購訂單中每個物料的數(shù)量所屬的數(shù)量段,以便后續(xù)進行相應的價格計算或分類統(tǒng)計。
效果如下圖所示:
價位判斷
在確定了采購物料對應數(shù)量所歸屬的數(shù)量段(用數(shù)字1、2、3表示)后,我們便能據(jù)此在已篩選出的各供應商對該物料的報價數(shù)據(jù)中,精準定位到相應的報價區(qū)間。這里,我們將篩選后的結(jié)果定義為變量B,將數(shù)量段數(shù)字返回結(jié)果定義為變量C。考慮到報價數(shù)據(jù)區(qū)域前兩列分別為“供應商”與“物料代碼”,我們在后續(xù)引用時需在其索引位置基礎(chǔ)上增加2。供應商的位置在第1列,只需要在選擇列函數(shù)中繼續(xù)加上數(shù)字1即可。
基于以上邏輯,錄入以下函數(shù):
=LET(B,LET(A,VSTACK(供應商01:供應商03!B2:F23),FILTER(A,CHOOSECOLS(A,2)=C3)),C,XLOOKUP(D3,{0;100;500},{1;2;3},,-1),CHOOSECOLS(B,2 C,1))
公式含義如下:
首先,通過嵌套的LET函數(shù)定義變量:
B:內(nèi)部LET函數(shù)中,先定義變量A,其值為使用VSTACK函數(shù)將工作表“供應商01”、“供應商02”和“供應商03”的B2:F23區(qū)域數(shù)據(jù)垂直堆疊合并。接著,利用FILTER函數(shù)篩選A,篩選條件為合并后的數(shù)據(jù)集中第2列(供應商物料代碼列)與采購訂單中物料代碼單元格C3相等。最終,將篩選結(jié)果賦值給外部LET函數(shù)的變量B,即得到針對指定物料的各供應商報價數(shù)據(jù)。
C:使用XLOOKUP函數(shù)查找采購訂單明細中單元格D3所記載的采購數(shù)量,將其與邊界值數(shù)組 {0, 100, 500} 比較,以確定該數(shù)量所屬的數(shù)量段(1、2或3),并將結(jié)果賦值給變量C。
最后,調(diào)用CHOOSECOLS函數(shù),以變量B(篩選后的供應商報價數(shù)據(jù))為數(shù)據(jù)源,選擇從第(2 C)列開始的列。由于C代表數(shù)量段編號(1、2或3),加上2后即對應于報價數(shù)據(jù)中的“數(shù)量小于100件”、“100至500件”或“大于500件”報價列的索引位置。因此,此函數(shù)將返回指定物料在對應數(shù)量段下所有供應商的報價信息。其中數(shù)字1代表的是供應商列;
效果如下圖所示:
最小判斷
到這里就基本解決了不同供應商,不同數(shù)量范圍的最小價判斷了,只需要加入一個排序函數(shù),對返回的階進行升序排序,并對結(jié)果就第行即可;因為公式是需要向下填充的,所以需要注意鎖定合并供應商報價的引用范圍。錄入以下函數(shù):
=TAKE(SORT(LET(B,LET(A,VSTACK(供應商01:供應商03!$B$2:$F$23),FILTER(A,CHOOSECOLS(A,2)=C3)),C,XLOOKUP(D3,{0;100;500},{1;2;3},,-1),CHOOSECOLS(B,2 C,1))),1)
公式含義如下:
LET 函數(shù)內(nèi)嵌套使用,依次定義變量 B 和 C,其含義與之前解釋相同,此處不再贅述。
SORT 函數(shù)對由 CHOOSECOLS(B, 2 C, 1) 得到的、含有指定數(shù)量段報價及對應供應商名稱的數(shù)據(jù)進行升序排序。排序依據(jù)為報價列(即第 (2 C) 列),供應商名稱列(即第1列)隨報價列一同參與排序。
TAKE 函數(shù)接收排序后的數(shù)據(jù)作為輸入,取其第一行(索引值為1),即為指定物料在對應數(shù)量段下所有供應商報價中的最低報價及其供應商名稱。
綜上,此公式實現(xiàn)了對采購訂單明細中每個物料,根據(jù)其采購數(shù)量所屬數(shù)量段,在各供應商報價中快速找出最低報價及其供應商,并以單元格形式呈現(xiàn)。在向下填充時,公式中的合并供應商報價引用范圍已鎖定,確保了在處理不同訂單明細時引用范圍的穩(wěn)定性。
效果如下圖所示:
一鍵填充
上面已經(jīng)完成公式“填充”版本的設(shè)計,基本上能夠滿足普通用戶的設(shè)計需求了,但是對于一些完美用戶需要實現(xiàn)真正意義的一鍵填充,也就是一個公式實現(xiàn)的話,還需要把公式更改為如下:
=REDUCE({"最低報價","供應商"},C3:C7,LAMBDA(X,Y,VSTACK(X,TAKE(SORT(LET(B,LET(A,VSTACK(供應商01:供應商03!B2:F23),FILTER(A,CHOOSECOLS(A,2)=Y)),C,XLOOKUP(OFFSET(Y,,1),{0;100;500},{1;2;3},,-1),CHOOSECOLS(B,2 C,1))),1))))
由于公式復雜,僅僅供有興趣的人學習
此公式相對復雜,主要面向?qū)Υ祟惛呒壓瘮?shù)有深入興趣的學習者。下面簡要闡述其基本邏輯:
REDUCE 函數(shù):以數(shù)組 {"最低報價","供應商"} 作為初始值(起始累積器 X),對采購訂單中的物料編碼范圍 C3:C7 進行迭代(每次迭代的元素為 Y)。在每次迭代過程中,將當前累積器 X 與由 LAMBDA 函數(shù)返回的結(jié)果通過 VSTACK 函數(shù)垂直堆疊,最終得到一個包含所有物料最低報價及供應商信息的二維數(shù)組。
LAMBDA 函數(shù):定義了一個匿名函數(shù),接受兩個參數(shù):當前累積器 X 和當前物料編碼 Y。該函數(shù)返回一個包含最低報價和供應商名稱的單行數(shù)組,具體計算過程與之前的單個公式相同,只是此處將原公式中的 C3 替換為 Y,并使用 OFFSET(Y, , 1) 獲取當前物料編碼所在行的采購數(shù)量。
VSTACK 函數(shù):在 REDUCE 函數(shù)的迭代過程中,將當前累積器 X 與 LAMBDA 函數(shù)返回的結(jié)果(即單個物料的最低報價及供應商信息)進行垂直堆疊,逐步構(gòu)建包含所有物料信息的最終結(jié)果數(shù)組。
通過上述改寫,該公式實現(xiàn)了真正意義上的一鍵填充,無需手動向下復制公式即可自動查詢并匯總采購訂單中所有物料的最低報價及其供應商信息。整個計算過程充分利用了WPS的動態(tài)數(shù)組功能,提高了數(shù)據(jù)處理的效率與便捷性。
最后總結(jié):
在工廠復雜的供應鏈管理體系中,采購環(huán)節(jié)對于成本控制與生產(chǎn)計劃的順利實施至關(guān)重要。面對多元化的物料需求、多變的市場環(huán)境以及供應商報價的動態(tài)變化,尤其是階梯式價格策略,采購部門面臨著高效篩選最低報價供應商的挑戰(zhàn)。針對這一問題,我們設(shè)計了一款智能化的自動化表格,它巧妙集成于工廠采購訂單報表系統(tǒng)中,只需一鍵操作,即可自動識別并精準匹配所采購物料在不同數(shù)量條件下的最低報價及其對應的供應商。
首先,通過WPS的“VSTACK”函數(shù),我們將分散在多個工作頁面的供應商報價信息統(tǒng)一整合到一個工作表中,確保數(shù)據(jù)的集中與標準化。隨后,運用“FILTER”函數(shù)篩選出與采購訂單中物料代碼相符的供應商報價記錄。為應對供應商報價的階梯特性,我們利用“XLOOKUP”函數(shù)根據(jù)采購數(shù)量判斷其所屬數(shù)量區(qū)間,并將結(jié)果編碼為數(shù)字標識。進一步,結(jié)合“CHOOSECOLS”函數(shù),精準定位到對應數(shù)量區(qū)間的供應商報價。通過“SORT”和“TAKE”函數(shù)對篩選結(jié)果進行排序并取最低報價及其供應商,實現(xiàn)了單個物料的最優(yōu)報價查詢。
為了滿足一鍵處理所有物料的需求,我們采用“REDUCE”函數(shù),結(jié)合“LAMBDA”匿名函數(shù),構(gòu)建出一個高度集成的公式。該公式以采購訂單中的物料編碼范圍為迭代對象,通過遞歸調(diào)用內(nèi)部邏輯,自動為每個物料執(zhí)行上述查詢過程,并利用“VSTACK”函數(shù)將所有物料的最低報價及供應商信息垂直堆疊,生成一個完整的二維數(shù)組。這一設(shè)計不僅簡化了操作流程,避免了人工填充公式的繁瑣,而且充分發(fā)揮了WPS的動態(tài)數(shù)組功能,顯著提升了采購決策的效率與準確性。
總之,這款智能化的自動化表格以簡潔高效的方式解決了工廠采購環(huán)節(jié)中的復雜報價篩選難題,助力采購人員在海量數(shù)據(jù)中迅速鎖定最具成本效益的采購方案,為優(yōu)化供應鏈管理、降低成本、保障生產(chǎn)計劃的順利執(zhí)行提供了有力的技術(shù)支持。通過這一案例,我們見證了現(xiàn)代辦公軟件的強大功能與靈活性,以及合理運用高級函數(shù)解決實際業(yè)務問題的巨大潛力。