You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel如何统计指定区域前5个非空单元格内W/D/L的出现次数

Excel指定区域前5个非空单元格值统计公式

以下公式分别适配B3:B12、D3:D12、F3:F12三个单元格区域,统计逻辑为自动跳过空白单元格,仅提取区域内从上到下排序的前5个有效非空值做统计,不会计算第5个非空值之后的单元格内容,三个统计值(W/D/L)的公式完全独立,可单独使用。


动态数组版本公式(适用于Excel 365/2021及以上版本)

公式核心逻辑:先用FILTER函数过滤掉区域内的空白单元格,再用TAKE函数截取排序最靠前的5个非空值,最后用COUNTIF统计目标字符的出现次数。

统计"W"的出现次数

  • 针对B3:B12区域:=COUNTIF(TAKE(FILTER(B3:B12,B3:B12<>""),5),"W")
  • 针对D3:D12区域:=COUNTIF(TAKE(FILTER(D3:D12,D3:D12<>""),5),"W")
  • 针对F3:F12区域:=COUNTIF(TAKE(FILTER(F3:F12,F3:F12<>""),5),"W")

统计"D"的出现次数

  • 针对B3:B12区域:=COUNTIF(TAKE(FILTER(B3:B12,B3:B12<>""),5),"D")
  • 针对D3:D12区域:=COUNTIF(TAKE(FILTER(D3:D12,D3:D12<>""),5),"D")
  • 针对F3:F12区域:=COUNTIF(TAKE(FILTER(F3:F12,F3:F12<>""),5),"D")

统计"L"的出现次数

  • 针对B3:B12区域:=COUNTIF(TAKE(FILTER(B3:B12,B3:B12<>""),5),"L")
  • 针对D3:D12区域:=COUNTIF(TAKE(FILTER(D3:D12,D3:D12<>""),5),"L")
  • 针对F3:F12区域:=COUNTIF(TAKE(FILTER(F3:F12,F3:F12<>""),5),"L")

旧版Excel兼容公式(适用于Excel 2019及更早版本)

旧版Excel无动态数组函数,可使用SUMPRODUCT组合公式实现相同逻辑,输入完成后需按Ctrl+Shift+Enter三键组合确认数组公式生效。

以下以B3:B12区域统计"W"为例,其他场景只需替换公式中的区域范围、末尾引号内的匹配字符即可:
=SUMPRODUCT((B3:B12<>"")*(COUNTIF(OFFSET(B$3,0,0,ROW(B3:B12)-2,1),"<>")<=5)*(B3:B12="W"))


内容的提问来源于stack exchange,提问作者realest25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 20:33:40