在WPS尚未引入動態數組功能的舊版本中,當數據發生變動時,應對公式無法實時同步問題可采取兩種策略。其一,預先將公式填充至一個較大范圍;其二,借助數據更新過程同步進行公式的填充操作,以實現同步效果。
上述兩種方法及數據透視表均存在一個共同問題,即無法實現公式或數據透視表的實時同步,用戶需手動填充公式或手動刷新數據透視表。為解決這一問題,我們有必要引入WPS全新推出的動態數組公式,以實現公式自動填充的實時同步功能。
今日,古老師通過引用一個案例,生動闡釋了在由傳統公式法與數據透視表轉換為動態數組后,所實現的數據更新,公式自動同步效果。下圖展示了一個項目跟進表,每天,負責人員會在此表中錄入新增項目信息。其中,序號為人工填寫,統計結果亦由手動計算得出。特別是在項目狀態發生變動時,還需在統計表中手動添加相應的狀態標題列。顯然,這樣的操作方式無法實現一鍵全自動化。
借助WPS新引入的動態數組函數功能,我們將逐步構建解決方案,旨在實現項目跟進表的一鍵統計狀態結果與自動編號功能。一鍵統計過程中,系統將按照項目負責人對各自負責項目進行匯總,包括對應項目的各類狀態數據(如備案數量、成交數量、報價數量),并依據跟進項目數量進行降序動態排序,突出顯示跟進項目最多的負責人。
自動編號
首先用編號函數配合統計函數進行自動編號,錄入以下公式:
=SEQUENCE(COUNTA(C3:C4000))
函數解釋:
COUNTA(C3:C4000)
COUNTA 函數的作用是計算指定區域內非空單元格的數量。在這個例子中,它統計從C3到C4000范圍內所有非空單元格的個數。用來代表實際存在的項目數量或者數據條目的總數,因為空白單元格不會被計入。
SEQUENCE(n)
SEQUENCE 函數在Excel中創建一個動態數組,生成一個從1開始、遞增步長為1的整數序列,序列包含 n 個元素。這里的 n 應該是一個具體的數值,代表序列中元素的總數。
此公式將 COUNTA(C3:C4000) 的結果作為 SEQUENCE 函數的參數 n。這意味著 SEQUENCE 將根據C3到C4000區域內非空單元格的實際數量,生成相應長度的整數序列。這個序列將自動適應數據的變化,即每當該范圍內新增或刪除非空單元格時,序列的長度會隨之調整,始終保持與有效數據項的數量一致。用于為項目跟進表中的項目自動編號,確保編號與實際項目數量始終保持同步。
二維條件
對項目跟進表進行統計分析的一種較為高效的方法是采用二維統計分析法。在此方法中,我們可以設定兩個關鍵維度:
垂直維度:項目負責人,用以區分不同人員負責的項目。
水平維度:項目狀態,涵蓋諸如“備案中”、“已成交”和“已丟單”等多種狀態類別。
通過構建這樣縱橫交錯的二維框架,我們能夠清晰地組織和呈現項目數據。接下來,借助于各類統計函數,即可對這些按維度劃分的數據進行深入分析,輕松得出所需的各種統計數據。這樣的統計過程不僅結構化、系統化,而且能夠有效地揭示項目進展及負責人業績等方面的內在規律與關聯,極大地提升了統計分析的效率與準確性。
為了創建動態數組區域,分別錄入以下函數:
垂直維度: =DROP(UNIQUE(C3:C4000), -1)
水平維度: =TOROW(DROP(UNIQUE(E3:E4000), -1))
公式解釋:
對于垂直維度:
使用 UNIQUE 函數對用戶列 C3:C4000 進行去重處理,得到項目負責人列表中的唯一值。預設這個大范圍(C3:C4000)是為了確保在該范圍內更新數據時,動態數組能自動擴展以適應數據變化。
鑒于預留范圍可能包含空白單元格,UNIQUE 函數處理后的數組末尾可能會出現零值。為消除這一影響,使用 DROP 函數結合其最后一個參數 -1,表示丟棄數組的最后一個元素。這樣一來,我們成功獲取了項目負責人列表的唯一值,且無冗余零值。
對于水平維度:
同樣采用 UNIQUE 函數對 E3:E4000 范圍內的項目狀態進行去重,以獲得所有唯一的項目狀態類別。
由于水平方向上的數據需要轉換為行向量以便于后續操作,這里使用 TOROW 函數將去重后的項目狀態數組轉化為單行的動態數組。
總之,通過上述函數的運用,我們分別構建了項目負責人(垂直維度)和項目狀態(水平維度)的動態數組區域,確保在數據更新時,這些數組能自動擴展并保持唯一性,為后續的二維統計分析提供了基礎。
效果如下圖所示:
統計數據
在獲取到垂直維度(項目負責人)和水平維度(項目狀態)的動態數組數據后,我們便可以利用統計函數對表1的項目跟進表進行多條件統計。統計的兩個條件分別是項目負責人和項目狀態。為此,我們輸入以下公式以得到動態統計結果:
=COUNTIFS(C3:C4000, G3#, E3:E4000, H2#)
函數釋義:
統計區域:C3:C4000,代表項目負責人列。由于預留了C3:C4000這一大范圍,當表內數據更新時,統計區域能夠自動擴展,確保統計結果的準確性和時效性。
條件1:G3#,此處引用了垂直維度動態數組的結果。該數組由公式 =DROP(UNIQUE(C3:C4000), -1) 生成,包含了項目負責人列的唯一值。在統計時,G3#表示當前統計行對應的項目負責人。
條件2:E3:E4000,指定了項目狀態列,同樣預留了足夠的范圍以實現動態擴展。
條件3:H2#,對應水平維度去重后的狀態值。該值來源于水平維度動態數組,該數組由公式 =TOROW(DROP(UNIQUE(E3:E4000), -1)) 創建,包含所有唯一的項目狀態類別。在統計時,H2#表示當前統計列對應的項目狀態。
綜上所述,通過公式 =COUNTIFS(C3:C4000, G3#, E3:E4000, H2#),我們得以基于項目負責人和項目狀態這兩個條件,對項目跟進表進行動態統計,得出每個負責人在特定項目狀態下對應的項目匯總數量。實際效果如附圖所示。
統計項目
經過上述操作,我們已經清晰地了解到每個項目負責人所對應的各個項目狀態及其數量,例如負責人1對應的項目狀態分布為:備案中4個、已成交5個等。在此基礎上,為了進一步計算每個項目負責人的總項目數,傳統方法固然可以采用SUM函數直接求和,但鑒于SUM函數無法適應動態數據環境,我們轉而采用WPS辦公軟件中的最新函數BYROW,以實現動態統計。請輸入以下公式:
=BYROW(I3#,SUM)
函數釋義:
I3#:此區域為先前使用函數 =COUNTIFS(C3:C4000, G3#, E3:E4000, H2#) 得到的統計結果,即每個項目負責人對應各項目狀態的具體數量。I3# 代表這些統計結果所在的動態數組區域。
BYROW:WPS提供的新函數,用于對指定區域內的每一行數據應用指定的計算邏輯。在這里,我們用它來遍歷 I3# 區域中的每一行(即每個項目負責人的所有狀態統計值)。
SUM:即對當前行(即某個項目負責人所有狀態的統計數量)進行求和,返回該負責人的總項目數。
綜上所述,WPS的BYROW函數結合SUM的表達式,實現了對每個項目負責人所有項目狀態數量的逐行求和,從而得到每個負責人匯總的項目總數,且該結果能夠隨數據動態變化而自動更新。
效果如下:
自動排名
通過上述公式,我們已成功實現了一鍵統計項目跟進表的各項指標。然而,尚有一個需求未能滿足,即根據每個項目負責人跟進項目的數量進行自動降序排序,來突出顯示跟進項目最多的負責人。因此,我們需要繼續設計相應的公式以達成這一目標。
該公式的實現原理相對復雜,其核心在于運用VSTACK和HSTACK函數將分散的動態數組區域整合為一個整體,隨后利用SORT函數按照項目負責人跟進項目的數量進行降序排列。以下是完整的公式: =SORT(LET(A,DROP(UNIQUE(C3:C4000),-1),B,TOROW(DROP(UNIQUE(E3:E4000),-1)),HSTACK(VSTACK("項目負責人",A),VSTACK("匯總",BYROW(COUNTIFS(C3:C4000,A,E3:E4000,B),SUM)),VSTACK(B,COUNTIFS(C3:C4000,A,E3:E4000,B)))),2,-1)
公式解析:
LET函數:用于定義多個中間變量,并在后續計算中引用它們。這里定義了兩個變量:
A: 通過 DROP(UNIQUE(C3:C4000), -1) 得到項目負責人列的唯一值(去除末尾可能存在的零值)。
B: 通過 TOROW(DROP(UNIQUE(E3:E4000), -1)) 得到項目狀態列的唯一值,并轉換為單行動態數組。
HSTACK函數:水平堆疊多個數組,形成一個新的二維數組。這里堆疊了三個部分:
VSTACK("項目負責人", A):垂直堆疊字符串"項目負責人"與項目負責人列表A,構成第一列。
VSTACK("匯總",BYROW(COUNTIFS(C3:C4000,A,E3:E4000,B),SUM)):垂直堆疊字符串"匯總"與每個項目負責人對應所有項目狀態的匯總數量(使用BYROW函數與SUM的表達式)。這構成第二列。
VSTACK(B, COUNTIFS(C3:C4000, A, E3:E4000, B)):垂直堆疊項目狀態列表B與每個項目狀態對應每個項目負責人的項目數量。這構成第三列至最后一列。
SORT函數:對上述整合后的二維數組進行排序。參數說明:
排序區域:由LET函數返回的整合后的二維數組。
排序依據列:2,即基于第二列("匯總"列)進行排序。
排序方式:-1,表示降序排列。
最終效果:通過執行上述公式,我們將得到一個一鍵統計結果,其中包含項目負責人列表、各負責人所有項目的匯總數量以及各狀態下的項目數量,并按照負責人跟進項目的總數進行了降序排列。實際效果如附圖所示。
至此,我們已成功將常規公式全面轉換為全動態數組公式,在A3:E4000的范圍內實現了數據更新時自動擴展及一鍵統計分析的功能。若后續數據量增長超出此范圍,只需相應增大指定范圍,如改為A3:E40000等形式,即可確保統計分析的有效覆蓋與自動更新。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。