麻煩有excel高手幫我解釋下sumif(B:B,B:B,A:A)具體是什麼?

我只知道它可以篩選B列中數字重複的次數,但不知道第一個B:B,第二個B:B和A:A分別代表什麼


謝謝邀請。

一、先說一下SUMIF()函數。

sumif函數語法是:

SUMIF(range,criteria,sum_range)

=SUMIF(條件區域,求和條件,求和區域)=在條件區域中,滿足求和條件,其對應的求和區域數據之和

即:第一個B:B代表的條件區域,第二個B:B代表的是求和區域,A:A代表的是求和區域;

二、一般用法

以下圖為例,求王一的成績和。

這裡改成=SUMIF(A:A,A2,B:B),會好理解一點。

當然,題主所說的用來確定B列重複的次數也可以,不過用COUNTIF()會更快捷一些。


=SUMIF(B:B,B1,A:A)往下拖和=SUMIF(B:B,B:B,A:A)往下拖的效果一樣,=SUMIF(B:B,B1,A:A)就是b列中等於b1的值在a列中對應的值的總和。你去看下sumif的各個值的含義就行了。微軟網站上就有。度娘上也有。


sumifs更實用一些



一、第三參數自動擴展

在sumif中,第三參數類型是byref,也就是只接受單元格引用,但是它有一個特性,就是無論你傳給他的是一個單元格,還是單元格區域,它只取參數左上角引用,作為參考系起點,計算與第一參數左上角引用的相對距離,然後自動擴展為和第一參數同樣大小的範圍。

解釋起來好啰嗦啊,用個實際例子來說明:

圖1 第三參數自動擴展

二、第二參數數組運算

第二參數是指定第一參數中哪些是符合要求的特徵,當它是一個單元格區域或者是常量數組的時候,得到的結果是一個內存數組。

圖2 第二參數如果是單元格區域或者常量數組生成結果為內存數組

E15和E16分別是第二參數為單元格區域和常量數組的情形,按F9查看運行結果可以看到,生成的結果是內存數組。可以進一步驗證,在整個公式外面套sum函數求和,三鍵結束,會得到結果202.

三、數組公示結果的交叉顯示

最後兩個問題是

1為什麼E15顯示0,

因為公式生成了一個兩行一列的內存數組,一個單元格只能顯示一個數字,由於第二參數是單元格區域,這個內存數組是帶有單元格區域屬性的,需要根據這個公示所在單元格的位置與第二參數的區域在行上取交集,判斷實際參數,

就本例而言,第二參數是E12:E13

因為公式寫在了E列,在行上與E12:E13無交集,所以顯示0,

如果你把公示寫在F12、G12或者Z12你會看到結果是99,

同理,寫在13行會看到結果是103

2為什麼E16顯示99

同上,公式生成了一個兩行一列的內存數組,一個單元格只能顯示一個數字,由於第二參數是常量數組,這個內存數組是沒有單元格區域屬性,無論你寫在什麼地方,它都只顯示結果的第一個,即這兒的99。


這兒需要理解函數本身的特性,以及數組運算,數組運算結果的顯示原理。

最後說明一點,

之所以不拿題主的原始例子解答,

是因為整列引用,F9顯示不出結果,不容易說明白。


第一點的補充例子:

第三點的補充例子:

同一個公示寫在不同的位置,顯示結果不一致

但是所有這些公示F9的結果是一致的


推薦閱讀:

Excel 函數「vlookup」可不可以 lookup 到近似值?函數該怎麼寫?
execl多個條件查找 求助查詢公式?
如何在sum時視一些前面幾列帶過來的#N/A為0?
excel 方程的解釋?
excel 鍵盤操作技巧?

TAG:MicrosoftExcel | Excel公式 | 計算機二級辦公軟體高級應用技術 |