Excel COUNTIF+INDIRECT函数跨表多条件统计需求
解决Excel跨表双条件统计并排除标题行的问题
单个工作表的双条件统计(以French表为例)
要统计French表中E列(流派)从第2行开始出现Jazz,且G列(字母顺序)从第2行开始出现Z的次数,用COUNTIFS公式精准限定范围,避开标题行:
=COUNTIFS(French!E2:E, "Jazz", French!G2:G, "Z")
如果想更高效(避免引用整列),可以用动态范围自动定位到最后一行数据:
=COUNTIFS(French!E2:INDEX(French!E:E, COUNTA(French!E:E)), "Jazz", French!G2:INDEX(French!G:G, COUNTA(French!G:G)), "Z")
跨表自动化双条件统计(基于Sheet_Names工作表的列表)
如果要批量统计Sheet_Names[Sheets]里所有工作表的符合条件数据,用SUMPRODUCT配合INDIRECT实现遍历,假设C28是流派条件(如Jazz),D28是字母条件(如Z):
=SUMPRODUCT(COUNTIFS(INDIRECT("'"&Sheet_Names[Sheets]&"'!E2:E"), C28, INDIRECT("'"&Sheet_Names[Sheets]&"'!G2:G"), D28))
- 公式里的
'"&Sheet_Names[Sheets]&"'是为了兼容带空格或特殊字符的工作表名,自动添加单引号; E2:E和G2:G从第2行开始,直接跳过标题行,避免误统计;SUMPRODUCT会自动把每个工作表的统计结果累加,得到总次数。
为什么之前的公式会出错?
你之前用的=COUNTIF(INDIRECT(Sheet_Names[Sheets]),C28)有两个问题:
- 没有限定具体列,会遍历整个工作表的所有单元格,自然会把标题行里的
Jazz算进去; - 只能做单条件统计,无法满足双条件的需求。
内容的提问来源于stack exchange,提问作者MandyGB
相关产品推荐
相关产品推荐

