送人玫瑰,手有余香,請將文章分享給更多朋友
動手操作是熟練掌握EXCEL的最快捷途徑!
【置頂公眾號】或者【設(shè)為星標】及時接收更新不迷路
小伙伴們好,今天要和大家分享一道比較常見的,但是又有一定難度的題目。利用公式來進行分段匯總。今天這個題目的邏輯思路你掌握了之后,以后再遇到類似的題目就可以輕松解決了。
題目是這樣子的:
每一組數(shù)字都有一個或者幾個空格間隔,如何利用公式對每一組數(shù)字進行求和匯總呢?
在單元格E2中輸入公式“=IFERROR(MOD(SMALL(IFERROR(ROW($1:$21)/1%%+1/SUMIF(OFFSET(A$1,ROW($1:$21)-1,,-FREQUENCY(ROW($1:$21),(A$1:A$21="")*ROW($1:$21))),">0")^-1,""),ROW(A1)),10^4),"")”,三鍵回車并向下拖曳即可。
思路:
FREQUENCY(ROW($1:$21),(A$1:A$21="")*ROW($1:$21))部分,利用FREQUENCY函數(shù)對ROW($1:$21)在(A$1:A$21="")*ROW($1:$21)這個序列上計頻。這是一個常用的技巧。由于(A$1:A$21="")*ROW($1:$21)返回的是對應(yīng)的空值部分,因此計頻的結(jié)果的含義是每個數(shù)值部分中數(shù)字的個數(shù)。這部分的結(jié)果為{0;0;3;1;1;0;2;0;0;0;4;1;0;0;3;0;0;3;1;0;2;0}
OFFSET(A$1,ROW($1:$21)-1,,-FREQUENCY(ROW($1:$21),(A$1:A$21="")*ROW($1:$21)))部分,以單元格A1為基點進行偏移。偏移后的數(shù)據(jù)區(qū)域的高度分別對應(yīng)為-FREQUENCY(ROW($1:$21),(A$1:A$21="")*ROW($1:$21))的值,也就是向上
1/SUMIF(OFFSET(A$1,ROW($1:$21)-1,,-FREQUENCY(ROW($1:$21),(A$1:A$21="")*ROW($1:$21))),">0")^-1部分,SUMIF函數(shù)按條件“>0”來求和,求和后因為有0值影響后面的計算,因此1/SUMIF()^-1部分的操作是將所有的零值轉(zhuǎn)換為錯誤值,其它正常的數(shù)值沒有影響
完成后行號ROW($1:$21)擴大1萬倍,并和上面這一步的值相加
取最小值后再用MOD函數(shù)對10^4求余,結(jié)果就是數(shù)值區(qū)域的匯總值了
在單元格E2中輸入公式“=-SUM(-A$1:INDEX(A:A,SMALL(IF(A$1:A$20%>A$2:A$21,ROW($1:$20)),ROW(A1)),),E$1:E1)”,三鍵回車并行下拖曳即可。
思路:
A$1:A$20%>A$2:A$21部分也是一個常用的技巧,它返回每組數(shù)據(jù)中最后一個數(shù)字的行號
SMALL函數(shù)依次提取出第1、2、3..小的值,由INDEX函數(shù)返回A列中的位置。這一個它實際上是完成了以單元格A1為起點,上面各個返回數(shù)值為終點的單元格區(qū)域
轉(zhuǎn)換為負值后,和單元格區(qū)域E$1:E1求和。隨著公式向下拖曳,E$1:E1也會不斷變達,包含了前面每一步的匯總值。實際上是完成了減去前面每步匯總值的目的
求和后將負值轉(zhuǎn)換為正值即可得到正確答案
在單元格E2中輸入公式“=IFERROR(SUM(OFFSET(A$1,,,MAX(SMALL(IF((A$1:A$20>0)*(A$2:A$21=0),ROW($1:$20)),ROW(A1)))))-SUM(E$1:E1),"")”,三鍵回車并向下拖曳即可。
這個公式和上面第二個的思路大同小異,朋友們自己動手類分析一下吧。如有問題可以私信我哦!
-END-
我就知道你“在看”
聯(lián)系客服