人工統計某工廠近幾年不同物料對應的數量和退貨金額,資料量比較大,有上千行,現在領導要求看不同的商家,按排名指定的前n個專案。
如上圖中的退貨資料所示,您需要檢視每個商家的前三名退貨金額對應的材料**是什麼?在不通過公式的情況下,您只能通過按金額降序排序來手動篩選乙個**商家,以找到該**商家**的前三個材料。
因為**商家太多,不太可能被一一篩選、複製貼上,領導有時候想看前三名,也可能想看前幾名,需求是動態的。 所以我想用公式來實現上述功能。
知識點一:動態展示前n項的設計技巧。
知識點二:過濾功能、排序功能、去重功能、保留功能的組合應用。
知識點三:文字合併符號“&”和符號,合併多列資料;
知識點四:自定義文字技巧;
您需要動態顯示前 n 個專案,您需要建立乙個新單元格,輸入數字 3,這裡為了顯示效果,將數字 3 設定為自定義格式:”"以前"#"專案"“,使單元格中的內容顯示為帶有中文提示的資料;
在過濾商之前,先刪除源資料中的商,即a列,並輸入函式:=drop(unique(a2:a10000),-1);獲取唯一商的資料。 為了方便大家了解,這裡是第一**業務的效果,第一業務的效果還可以,可以把公式填下來;
前n個專案標題:input function: =sequence(,g2),並設定為自定義格式:”"部分" # "名字"這樣,單元格的顯示效果是第1、第2、第3位。
二維資料需要顯示退貨總量降序排列,即退貨最多的**商家排名第一,排名第一的**商家需要檢視前3名退貨對應的物料程式碼和數量。 首先提出第乙個要求,然後輸入公式:
*商:choosecols(sort(hstack(drop(unique(a2:a10000),-1),sumifs(e:e,a:a,drop(unique(a2:a10000),-1))))2,-1),1).
金額:choosecols(sort(hstack(drop(unique(a2:a10000),-1),sumifs(e:e,a:a,drop(unique(a2:a10000),-1))))2,-1),2).
效果如下:
*連鎖退貨總量排名後,單個商家顯示前三名,先進入第乙個商家,錄入功能:
對應專案**:
torow(choosecols(take(sort(filter(c2:e3000,a2:a3000=i2),3,-1),g2),1))
對應專案金額:
torow(choosecols(take(sort(filter(c2:e3000,a2:a3000=i2),3,-1),g2),3))
效果如下:
在上圖中,您還需要將兩列合併為乙個單元格並自動換行,然後輸入公式:
let(a,take(sort(filter($c$2:$e$3000,$a$2:$a$3000=i2),3,-1),$g$2),torow(choosecols(a,1))&char(10)&torow(choosecols(a,3)))
並向下填寫公式,可以得到下圖:
同時,測試前 5 個返回金額,將總返回金額的數字更改為 5 個 效果如下:
上面的前n項還是需要用公式填的,所以不是“完美”,把上面的公式變成乙個動態陣列:
ifna(drop(reduce("",i2#,lambda(x,y,vstack(x,let(a,take(sort(filter(c2:e3000,a2:a3000=y),3,-1),g2),torow(choosecols(a,1))&char(10)&torow(choosecols(a,3)))1),"")
這會產生動態顯示。 效果如下:
原始檔:234動態顯示不同商家退貨金額前n名。 xlsx
我是顧哥:
從事製造業20年,在企業運營、連鎖管理、智慧型製造系統等方面具有豐富的實踐經驗。 擅長企業智慧型化和靈活的計畫運營管理,善於通過企業流程優化和標準化、企業管理、計畫運營的引入來提公升企業效率在提高企業準時交貨率、降低企業庫存、輸出智慧型製造人才等方面擁有豐富的經驗。 學習習 PMC生產計畫,關注古格計畫!