excelperfect 引言:本文的練習整理自chandoo.org,。多一些練習,,想想自己會怎么解決這個問題,看看別人又是怎樣解決的,,這樣能夠快速提高Excel公式編寫水平,。 本次的練習是:編寫一個公式,用于顯示數(shù)據(jù)(Data)列中與當前選定查找項目匹配的項目(Item)列的第n個最大的唯一值,。 示例數(shù)據(jù)如下圖1所示,。 圖1 其中,將單元格區(qū)域A2:A13命名為“i”,,將單元格區(qū)域B2:B13命名為“d”,,將單元格D2命名為“n”,將單元格E2命名為“l”,。 單元格D2,、E2中的數(shù)據(jù)可以輸入,公式根據(jù)其數(shù)據(jù)返回相應的結果,。根據(jù)不同的輸入數(shù)據(jù),,公式的結果應該如下圖2所示。 圖2 規(guī)則: 1.公式中不能使用整列引用,。 2.不能使用中間公式,。 3.不能使用VBA。 4.無論數(shù)據(jù)放置在工作表中的任何地方,,公式都能正常運行,。 5.除了規(guī)定的名稱“i”“d”“n”“l”外,不能有其它硬編碼引用,。 請寫下你的公式,。 解決方案 公式1:數(shù)組公式。 =LARGE(IFERROR(IF(MATCH(l&d,i&d,)=(ROW(d)-(MIN(ROW(d)-1))),d,),),n) 公式2:數(shù)組公式,。 =LARGE(IFERROR(MATCH(l&d,i&d,)=(ROW(i)-MIN(ROW(i)-1)),)*d,n) 公式3:數(shù)組公式,。 =LARGE(IFERROR((FREQUENCY(IF(i=l,d),d)>0)*d,),n) 或者: =LARGE(IFERROR((FREQUENCY((i=l)*d,(i=l)*d)>0)*(i=l)*d,0),n) 或者: =LARGE(IF(FREQUENCY(IF(i=l,d),d),d),n) 或者: =LARGE(IF(FREQUENCY((i=l)*d,d),d),n) 公式4:數(shù)組公式,。 =AGGREGATE(14,6,(FREQUENCY(IF(i=l,d),d)>0)*d,n) 或者: =AGGREGATE(14,6,(MATCH(l&d,i&d,)=ROW(i)-MIN(ROW(i))+1)*d,n) 公式5:數(shù)組公式。 =LARGE((MATCH(l&d,i&d,)=ROW(i)-MIN(ROW(i)-1))*(i=l)*d,n) …… 上面列出的大多數(shù)公式都沒有進行詳細的解析,,有興趣的朋友可以參照前面文章給出的方法逐個研究,。 歡迎在下面留言,完善本文內容,,讓更多的人學到更完美的知識,。 歡迎到知識星球:完美Excel社群,進行技術交流和提問,,獲取更多電子資料,,并通過社群加入專門的微信討論群,更方便交流,。 |
|
來自: hercules028 > 《excel》