Menu

COUNTIFS関数の使い方: 複数条件でセルを数える

=COUNTIFS(A2:A7,"North",C2:C7,">50")は、地域がNorthで売上が50より大きい行を数えます。2つの数値や日付の間、OR条件、空白以外で数える方法を、動くシートで学びます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=COUNTIFS(A2:A7,"North",C2:C7,">50")は、A列がNorthでC列が50より大きい行を数えます。COUNTIFSは範囲と条件の組を受け取り、すべての条件を満たす行だけを数えます。

Northで50を超える注文
F2
ABCDEF
1RegionProductSalesConditionCount
2NorthApple120North, over 502
3SouthPear45North Apple2
4NorthPear80North only3
5EastApple55
6SouthApple200
7NorthApple30
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

Northの行は3つあり、そのうち2つが50より大きいので、F2は2を表示します。C7を90に変えると、最後のNorthの行も数えられます。F3は2つの文字列の条件、NorthとAppleを組み合わせています。

COUNTIFS関数の構文

=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
  • 条件はそれぞれ範囲と条件の組です。組は127個まで指定できます。
  • 条件の書き方はCOUNTIFとまったく同じです:"North"、">50"、"<>"、"*apple*"、または">"&F2のように&で演算子につないだセル。
  • すべての範囲は同じ大きさでなければなりません。範囲は行ごとに読まれます。各範囲の1つ目のセルが1行、各範囲の2つ目のセルが次の1行です。
  • 条件はANDで結ばれます。ORについては下で説明します。

COUNTIFSはExcel 2007以降のすべてのバージョンとGoogleスプレッドシートで使えます。

COUNTIFSで2つの数値の間を数える

ある幅に入る値を数えるには、同じ範囲を2回使い、1回目に下限を、2回目に上限を指定します。

売上50から150まで
F4
ABCDEF
1RegionProductSalesSettingValue
2NorthApple120Min50
3SouthPear45Max150
4NorthPear80Between3
5EastApple55
6SouthApple200
7NorthApple30
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

120、80、55が50から150の間に入るので、F4は3を表示します。F2とF3の境界を変えると、件数もそれに合わせて変わります。">="と"<="は境界を含みます。含めないときは">"と"<"を使います。

COUNTIFSで2つの日付の間を数える(期間指定)

日付も同じように扱えます。開始日と終了日はセルに入れて演算子につなげれば、引用符の中に日付を打ち込まずに済みます。

2月の注文
F4
ABCDEF
1RegionSalesDateSettingValue
2North1202026-01-05Start2026-02-01
3South452026-01-12End2026-02-28
4North802026-02-03Orders2
5East552026-02-18North orders1
6South2002026-03-02
7North302026-03-20
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

2月の注文は2件で、そのうち1件がNorthです。F5には3つの組があります。1つは地域、2つは日付の期間です。日付に時刻が付いている(2026-02-28 16:30)と、"<="&F3は最終日の0:00より後をすべて取りこぼします。その場合は"<"&F3+1を使います。

COUNTIFSでOR条件を使う

COUNTIFSにはORがありません。NorthまたはSouthで50を超える注文を数えるには、地域の条件に波かっこでリストを渡します。するとCOUNTIFSは項目ごとに件数を1つずつ返し、SUMがそれを合計します。

NorthまたはSouthで50超
F2
ABCDEF
1RegionProductSalesConditionCount
2NorthApple120North or South, over 503
3SouthPear45Same, two COUNTIFS3
4NorthPear80
5EastApple55
6SouthApple200
7NorthApple30
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

どちらの数式も3になります。50を超えるNorthの行が2つとSouthの行が1つです。リストが長くなるほど、波かっこ版のほうが短く書けます。リストは1つの条件だけに使ってください。同じ数式に2つのリストがあると、すべての組み合わせを試すのではなく項目どうしを順に組にするので、意図した結果になることはまずありません。

項目がセルに入っている(たとえばE8:E9)なら、=SUMPRODUCT(COUNTIFS(A2:A7,E8:E9,C2:C7,">50"))で波かっこなしに同じことができます。

COUNTIFSで空白以外を数える

"<>"は「空白でない」、""は「空白」という意味なので、出荷日の列を見ればまだ完了していない注文がわかります。

未出荷と出荷済みの注文
F2
ABCDEF
1RegionOrderShippedConditionCount
2NorthA-1012026-01-08North, shipped2
3SouthA-102North, not shipped1
4NorthA-1032026-02-06
5EastA-1042026-02-20
6SouthA-105
7NorthA-106
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

Northの注文のうち2件には出荷日があり、1件にはありません。C7に日付を入力すると、件数がF3からF2に移ります。空の文字列("")を返す数式は、""でも"<>"でも数えられます。回避する方法はCOUNTIFで空白以外を数えるで説明しています。

練習: 2つの条件

やってみよう: SouthのApple
F2
ABCDEF
1RegionProductSalesConditionCount
2NorthApple120South Apple
3SouthPear45
4NorthPear80
5EastApple55
6SouthApple200
7NorthApple30
8SouthApple75
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: 地域がSouthで商品がAppleの行を数えてください。数式はF2に書きます。

やってみよう: 期間内の大口注文
F4
ABCDEF
1RegionSalesDateSettingValue
2North1202026-01-05Start2026-01-01
3South1452026-01-12End2026-02-28
4North802026-02-03Count
5East1552026-02-18
6South2002026-03-02
7North302026-03-20
8West1102026-02-25
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: F2の日付からF3の日付まで(両端を含む)の注文のうち、売上が100以上のものを数えてください。数式はF4に書きます。

COUNTIFSが#VALUE!や0を返す理由

  • 範囲の大きさが違う。 =COUNTIFS(A2:A7,"North",C2:C6,">50")は#VALUE!を返します。A2:A7は6セル、C2:C6は5セルだからです。すべての範囲の始まりと終わりを同じ行にそろえてください。
  • 決して成り立たないAND。 =COUNTIFS(A2:A7,"North",A2:A7,"South")は常に0です。1つのセルが両方になることはありません。これはORなので、上の波かっこ版を使ってください。
  • 引用符の中に打ち込んだ日付。 ">=1/2/2026"はシステムの日付の順序で読まれます。日付はセルに入れて">="&F2と書いてください。
  • 演算子とセルが引用符の中にある。 ">=F2"はF2という文字列と比べます。">="&F2と書いてください。

COUNTIFSは行を数えます。同じ行について列を合計するなら、引数がほぼ同じSUMIFSを使います。COUNTIFSで表せない条件(ある列と別の列の比較、行ごとの計算)にはSUMPRODUCTを使います。

よくある質問

COUNTIFとCOUNTIFSの違いは何ですか?

COUNTIFが受け取るのは1つの範囲と1つの条件です。COUNTIFSは範囲と条件の組をいくつでも受け取り、そのすべてを満たす行を数えます:=COUNTIFS(A2:A7,"North",C2:C7,">50")。組が1つなら、COUNTIFSはCOUNTIFと同じ結果になります。

COUNTIFSで2つの日付の間を数えるには?

日付の列を2回使い、それぞれに境界を1つずつ指定します。=COUNTIFS(C2:C7,">="&F2,C2:C7,"<="&F3)は、F2からF3までの日付を両端を含めて数えます。

COUNTIFSでOR条件を使うには?

COUNTIFSは条件を必ずANDで結びます。ORにするには、1つの条件に波かっこでリストを渡して結果を合計します:=SUM(COUNTIFS(A2:A7,{"North","South"},C2:C7,">50"))。

COUNTIFSが#VALUE!を返すのはなぜですか?

範囲の大きさがそろっていないからです。COUNTIFSのすべての範囲は行数と列数が同じでなければならないので、A2:A7とC2:C6を組にはできません。

COUNTIFSで2つの数値の間を数えるには?

同じ範囲を2回使い、境界を1つずつ指定します。=COUNTIFS(C2:C7,">=50",C2:C7,"<=150")は50から150までの値を両端を含めて数えます。境界を含めないときは">"と"<"を使います。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める