电竞比分网-中国电竞赛事及体育赛事平台

分享

又是合并單元格惹的禍,不過有技術,就能解決問題!

 EXCEL應用之家 2021-02-24


送人玫瑰,手有余香,請將文章分享給更多朋友

動手操作是熟練掌握EXCEL的最快捷途徑!



在數(shù)據(jù)錄入時有一個原則,就是盡量不用合并單元格,避免在后續(xù)的統(tǒng)計過程中出現(xiàn)問題。今天要向大家分享的這個案例就是這樣的。



如果錄入數(shù)據(jù)是能夠像C列示例那樣錄入,那么這個題目毫無壓力。但現(xiàn)在,這樣的數(shù)據(jù)結構需要動一番腦筋了。


01

我們先來看看使用常規(guī)公式的解法。



在單元格G2中輸入公式“=SUMPRODUCT((LOOKUP(ROW($A$2:$A$16),MATCH($B$2:$B$16,$B$2:$B$16,)+1,$B$2:$B$16/FREQUENCY(LOOKUP(ROW($A$2:$A$16),MATCH($B$2:$B$16,$B$2:$B$16,)+1,ROW($A$2:$A$16)),ROW($A$2:$A$16))))*($A$2:$A$16=E2))”,向下拖曳即可。

思路:

  • MATCH($B$2:$B$16,$B$2:$B$16,)+1部分,MATCH函數(shù)返回在單元格區(qū)域$B$2:$B$16各個數(shù)據(jù)的位置信息。由于在數(shù)據(jù)區(qū)域內(nèi)有“空”單元格存在,此函數(shù)返回的是一組數(shù)字和錯誤值組成的內(nèi)存數(shù)組。加上“1”是為了讓位置顯示為真實的位置信息。其結果為{2;3;#N/A;#N/A;6;7;#N/A;9;10;11;#N/A;#N/A;14;15;#N/A}

  • LOOKUP(ROW($A$2:$A$16),MATCH($B$2:$B$16,$B$2:$B$16,)+1,ROW($A$2:$A$16))部分,利用LOOKUP函數(shù)在上述內(nèi)存數(shù)組中查找2-16這樣的一個序列,并返回第三個參數(shù)ROW($A$2:$A$16)中對應的值。其結果為{2;3;3;3;6;7;7;9;10;11;11;11;14;15;15}

  • 利用FREQUENCY函數(shù)對上述結果在ROW($A$2:$A$16)這樣一個分段區(qū)間計頻,其結果為{1;3;0;0;1;2;0;1;1;3;0;0;1;2;0;0}。大家注意看,這個內(nèi)存數(shù)組中非零的數(shù)字其實就是B列中每個數(shù)字所對應的行數(shù)

  • $B$2:$B$16/FREQUENCY(LOOKUP(ROW($A$2:$A$16),MATCH($B$2:$B$16,$B$2:$B$16,)+1,ROW($A$2:$A$16)),ROW($A$2:$A$16))部分,用數(shù)據(jù)區(qū)域$B$2:$B$16中的數(shù)值來除以上述計頻后的結果,實際上就是對合并單元格中的數(shù)值做了等分。其結果為{14;19;#DIV/0!;#DIV/0!;5;13;#DIV/0!;6;15;30;#DIV/0!;#DIV/0!;9;11;#DIV/0!;#N/A}

  • 接下來,LOOKUP(ROW($A$2:$A$16),MATCH($B$2:$B$16,$B$2:$B$16,)+1,$B$2:$B$16/FREQUENCY(LOOKUP(ROW($A$2:$A$16),MATCH($B$2:$B$16,$B$2:$B$16,)+1,ROW($A$2:$A$16)),ROW($A$2:$A$16)))部分,再次利用LOOKUP函數(shù),在MATCH($B$2:$B$16,$B$2:$B$16,)+1中({2;3;#N/A;#N/A;6;7;#N/A;9;10;11;#N/A;#N/A;14;15;#N/A})查找ROW($A$2:$A$16),并返回在上步結果中所對應的值。其結果為{14;19;19;19;5;13;13;6;15;30;30;30;9;11;11},這樣就為單元格區(qū)域$B$2:$B$16中對應的每一個單元格都賦值

  • 接下來就比較簡單了,利用SUMPRODUCT函數(shù)按條件求和即可


02

下面的方法是運用了數(shù)組的方法。這個方法書寫起來更加簡潔易懂。



在單元格H2中輸入公式“=SUM(LOOKUP(ROW($2:$16),ROW($2:$16)/(B$2:B$16<>""),B$2:B$16/FREQUENCY(LOOKUP(ROW($2:$16),ROW($2:$16)/(B$2:B$16<>"")),ROW($2:$16)))*(A$2:A$16=E2))”,三鍵回車并向下拖曳即可。

思路:

  • 本例和上例的思路是一樣的。只不過在公式書寫形式向略有不同

  • 請大家思考ROW($2:$16)/(B$2:B$16<>"")這個部分的作用

-END-

長按下方二維碼關注EXCEL應用之家

面對EXCEL操作問題時不再迷茫無助

我就知道你“在看”

戳原文,更有料!免費模板文檔!

推薦閱讀

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多