如何運用萬金油公式

今天跟大家講下萬金油公式的運用,下面直接以例子來說明。 一、問題描述:根據給定條件查詢結果,如圖:查找類別為“牙膏”的所有商品。


如何运用万金油公式 二、問題解答:=IFERROR(INDEX($A$1:$D$32,SMALL(IF($B$1:$B$32=$G$2,ROW($1:$32),4^8),ROW(A1)),COLUMN(A1)),"")=IFERROR(INDEX(數據區域,SMALL(IF(條件判斷,滿足條件返回所在行號,否則),第n個匹配項),返回數據所在列號),"")。三、步驟解析: 第一步:IF($B$1:$B$32=$G$2,ROW($1:$32),4^8)判斷B列數據是否與所給條件一致,如果一致則返回數據所在行號,否則返回65536。見下頁圖

如何运用万金油公式 第二步:SMALL(IF(…),ROW(A1))得到第一步結果中的第1小的值,即最小值,也就是2。PS:隨著公式的下拉填充ROW(A1)會變成ROW(A2),ROW(A3)….,依次得到第2小,第3小,第n小值。此處依次得到2,7,8,65536,65536,65536,….. 第三步 :INDEX($A$1:$D$32,SMALL(…),COLUMN(A1))獲取區域$A$1:$D$32中第n行,第m列的數據。n為第二步計算結果,m為COLUMN(A1)的結果。第一個公式即F4單元格對應的n為2,m為1;H5對應n為7,m為3;I9單元格對應n為65536,m為4。PS:隨著公式的向右填充,COLUMN(A1)會依次變為COLUMN(B1), COLUMN(C1),COLUMN(D1)。對於所有n為65536的單元格都會出現錯誤,因為這已經超越了區域$A$1:$D$32的行數,最後一步用IFERROR函數將錯誤值轉換為空值。 以上這個數值公式相對比較複雜,如有更簡潔的公式,歡迎留言。


分享到:


相關文章: