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