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

如何用Excel VBA的CountIfs统计非“completed”的机场相关记录?

统计非"completed"状态的机场记录正确实现方法

你原来的代码仅统计状态**精确等于"Not completed"**的机场记录,但实际需求是排除所有状态为"completed"的记录(包括其他非"completed"的状态,比如空值、"In Progress"等),只需修改CountIfs的条件即可:

基础正确代码

Sheets("Create Summary").Range("B3").Value2 = _
    Excel.WorksheetFunction.CountIfs( _
        wsSourceData.[P:P], "Airports", _
        wsSourceData.[AQ:AQ], "<>completed")

核心改动是把原来的"Not completed"换成"<>completed"——<>是Excel里表示「不等于」的操作符,这样就能匹配所有AQ列不是"completed"的单元格。

性能优化建议

尽量别用整列引用([P:P]、[AQ:AQ]),因为会遍历整列拖慢运行速度,建议用实际的数据范围:

' 先找到P列最后一行有数据的行
Dim lastRow As Long
lastRow = wsSourceData.Cells(wsSourceData.Rows.Count, "P").End(xlUp).Row

Sheets("Create Summary").Range("B3").Value2 = _
    Excel.WorksheetFunction.CountIfs( _
        wsSourceData.Range("P2:P" & lastRow), "Airports", _
        wsSourceData.Range("AQ2:AQ" & lastRow), "<>completed")

特殊需求:排除空值

如果需要只统计**有状态且不是"completed"**的记录(排除AQ列空值的情况),可以再加一个条件:

Sheets("Create Summary").Range("B3").Value2 = _
    Excel.WorksheetFunction.CountIfs( _
        wsSourceData.Range("P2:P" & lastRow), "Airports", _
        wsSourceData.Range("AQ2:AQ" & lastRow), "<>completed", _
        wsSourceData.Range("AQ2:AQ" & lastRow), "<>")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:53:19