excel排序求和:如何統計前幾名數據合計 下篇

excel排序求和:如何統計前幾名數據合計 下篇

編按:哈嘍,大家好!在上篇文章中,我們分享瞭如何在雜亂無序的數據中,統計前幾名數據的合計。公式也在上篇教程中,提供給了大家。不過在文末,我們還留了一個問題,為什麼將原本出錯的公式“ROW(1:H2)”改為“ROW(INDIRECT("1:"&H2))”就沒問題了呢?本篇就為大家揭曉答案!

*********

上次咱們說到一個公式=SUM(LARGE(B:B,ROW(INDIRECT("1:"&H2)))),其中的ROW(INDIRECT("1:"&H2))這部分如果寫成ROW(1:H2)就會報錯:

excel排序求和:如何統計前幾名數據合計 下篇

原因也告訴大家了,就是ROW函數的參數只能使用單元格或單元格區域。

因此解決的辦法就是如何使1:H2成為一個有效的單元格區域,要想實現這個目的,就需要用到INDIRECT函數,下面我們來介紹這個函數的用法。

INDIRECT的用法其實很簡單,一句話就說完了:將表示地址的字符串作為INDIRECT函數的參數,可以直接得到該地址中的數據,表示地址的字符串必須置於引號內。

通過兩個例子來說明這句話的含義:

例一、 在公式=INDIRECT("A1")中,A1可以表示一個單元格,加引號後作為INDIRECT的參數,效果與=A1是一樣的。

excel排序求和:如何統計前幾名數據合計 下篇

例二、 在公式=SUM(INDIRECT("A1:A3"))中,INDIRECT("A1:A3")與A1:A3的意義相同,表示這個單元格區域。

excel排序求和:如何統計前幾名數據合計 下篇

以上兩個例子中,地址都是固定不變的,也許大家會覺得用了INDIRECT有點多此一舉,接下來再看一個區域不固定的例子。

使用公式=SUM(INDIRECT("A1:A"&B1))可以實現一個動態區域求和的效果:

excel排序求和:如何統計前幾名數據合計 下篇

注意到這個公式中,求和範圍是從A1開始的,但是結束位置不確定,是通過B1單元格的數字來確定的。

"A1:A"&B1顯然不能表示一個單元格區域,但是隨著B1單元格中數據的變化,"A1:A"&B1就能表示“A1:A2”,“A1:A5”等等。

如果這個例子看明白的話,文章開頭的問題就好理解了,"1:"&H2雖然不能表示一個單元格區域,但是INDIRECT("1:"&H2)卻可以表示“1:3”,“1:5”等等。(兩個數字中間加冒號可以表示第幾行到第幾行之間的單元格區域)

因此ROW(1:H2)是錯誤的,而ROW(INDIRECT("1:"&H2))就沒問題了。

到這裡,咱們上一次遺留的問題算是告一段落了。

可是細心的朋友也許會注意到,在使用INDIRECT函數的時候,參數有時候加引號,有時候沒加引號,有時候還需要&這個連接符,這其中有什麼講究嗎?

其實要用好這個函數,關鍵點的確是對引號的理解。

INDIRECT函數的參數如果不加引號,那麼參數表示的單元格中必須是一個可以表示地址的內容。

例如,A10單元格中的內容為A1,公式=INDIRECT("A10")的結果等同於=A10,即返回數據“A1”;而=INDIRECT(A10)則等同於=A1,結果是A1單元格中的數據“8”。

excel排序求和:如何統計前幾名數據合計 下篇

這個例子需要自己多思考,理解加引號和不加引號的區別,這個坎才能過去。

至於什麼時候用連接符&,也有一個判斷標準,那就是為了構造出一個合法的地址,可能會用到常量(字母、數字和符號),也可能會用到變量(主要指單元格)。

例如在本文前面提到的例子中,表示單元格區域的地址“A1:A3”就用到了常量,其中有字母A,數字1和3,以及冒號。

如果要讓這個地址的範圍能夠通過某個單元格的值來確定,就需要加入變量。

例如"A1:A"&B1,其中B1就是變量,這個單元格區域具體是什麼,那就要看B1單元格中的數字了。

還有更加複雜的情況,讓單元格區域的開始和結束位置都用變量來表示,例如"A"&B1&":A"&B2,在這個表示方法中,單元格開始位置由B1單元格中的數字來確定,結束位置由B2單元格中的數字來確定。

常量需要加引號,變量不加引號,常量和變量使用&進行連接。

因此要想用好INDIRECT函數,不僅僅需要非常牢固的基礎知識,也需要對“地址”有非常清晰的認識才行,函數本身真的不是很難。

如果大家還想了解更多關於INDIRECT函數的內容,也可以留言,後續將繼續為大家分享這個函數更多奇妙的用法。

****部落窩教育-excel排名合計公式****

更多教程:部落窩教育(www.itblw.com)

微信公眾號:exceljiaocheng


分享到:


相關文章: