如下圖,是某食堂的采購記錄,需要計算篩選後的商品總價。
G1單元格輸入公式:
=SUMPRODUCT(SUBTOTAL(3,OFFSET(A1,ROW(1:9),0))*C2:C10*D2:D10)
接下來咱們簡單說說公式的計算過程:
要計算篩選後的內容,首先需要判斷單元格是不是處於顯示狀態。
先來看 OFFSET的基本用法:
=OFFSET(基點,偏移的行數,偏移的列數,[新參照的行數],[新參照的列數])
公式中的OFFSET ( A1,RO W(1:9),0 )部份 ,OFFSET函式以A1單元格為基點,向下偏移的行數是ROW(1:9)的計算結果,表示依次向下偏移1~9行,最終得到9個參照區域,每個單元格區域由一個單元格構成。
這裏涉及到 了 多維參照的知識點,小夥伴們如果犯迷糊,可以先收藏一下。
接下來使用SUBTOTAL函式對OFFSET函式得到的多個參照區域進行處理,第一參數使用3,表示使用COUNTA函式的計算規則,即依次統計A2~A9這九個單元格區域中的不為空的單元格個數。
如果單元格處於顯示狀態,則對這個單元格的統計結果為1,否則統計結果為0。
這部份公式得到類似下面的效果:
{0;0;0;0;0;1;1;1;1}
再用SUBTOTAL函式的結果乘以C列的單價和D列的數量,如果單元格處於顯示狀態,則相當於1*數量*單價,否則相當於0*數量*單價。
最後使用SUMPRODUCT函式對乘積進行求和,得到篩選後的商品總價。
好了,今天的內容就是這些吧,祝各位一天好心情。
圖文制作:祝洪忠