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

如何在Excel中实现Google Sheets指定COUNTIF+FLATTEN+FILTER公式效果?

在Excel中替代Google Sheets的COUNTIF+FLATTEN+FILTER组合公式

原Google Sheets公式的核心逻辑是:先筛选出B列匹配J2值的行对应的C3:G22区域,将该二维区域扁平化后,统计其中等于I4的单元格数量。以下是针对不同Excel版本的替代方案:

方案1:Excel 365/2021及以上版本(推荐)

Excel 365/2021支持TOCOL和FILTER函数,直接替换FLATTEN为TOCOL即可,公式如下:

=COUNTIF(TOCOL(FILTER($C$3:$G$22,$B$3:$B$22=$J$2)),I4)

若你之前使用TOCOL无效,大概率是Excel版本不支持(仅365/2021及以上版本才有该函数)。

方案2:兼容旧版Excel(无FILTER/TOCOL)

对于不支持动态数组函数的旧版Excel,使用SUMPRODUCT直接实现双重条件计数,效果完全一致:

=SUMPRODUCT(--($B$3:$B$22=$J$2),--($C$3:$G$22=I4))
  • --($B$3:$B$22=$J$2):将B列匹配J2的布尔值转为1/0
  • --($C$3:$G$22=I4):将C3:G22中匹配I4的布尔值转为1/0
  • SUMPRODUCT会计算两个数组对应位置乘积的总和,即同时满足两个条件的单元格总数

方案3:有FILTER但无TOCOL的版本

若你的Excel支持FILTER但没有TOCOL,可以用INDEX+SEQUENCE组合实现扁平化:

=COUNTIF(INDEX(FILTER($C$3:$G$22,$B$3:$B$22=$J$2),SEQUENCE(ROWS(FILTER($C$3:$G$22,$B$3:$B$22=$J$2))*COLUMNS($C$3:$G$22)),ROUNDUP(SEQUENCE(ROWS(FILTER($C$3:$G$22,$B$3:$B$22=$J$2))*COLUMNS($C$3:$G$22))/ROWS(FILTER($C$3:$G$22,$B$3:$B$22=$J$2)),0)),I4)

该公式通过生成序列逐个提取筛选后区域的单元格,将二维数组转为一维数组后再计数,仅作为备选方案(不如前两种简洁)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:05:13