Menu

Excelで文字列が入ったセルを数える方法(特定の文字を含む判定も)

=COUNTIF(A2:A8,"*")は、A2:A8のうち文字列が入ったセルを数え、数値、日付、空のセルは飛ばします。特定の単語を含むセルを数える方法と、セルが文字を含むときに値を返す方法も学びます。

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

=COUNTIF(A2:A8,"*")は、A2:A8のうち文字列が入ったセルを数えます。アスタリスクは「任意の文字」を表すワイルドカードで、文字列にしか一致しないので、数値、日付、TRUE/FALSE、空のセルは数えられません。

文字列のセルを数える
D2
ABCD
1EntryWhatCount
2AppleText3
312Not empty6
4Numbers and dates2
5PearEmpty1
62026-01-05
7TRUE
8n/a
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

D2はApple、Pear、n/aを数えて3です。COUNTAは入力済みのセルをすべて数えて6、COUNTは2つの数値を数えます(日付は数値です)。A4に25を入力するとD3とD4が増え、D2は3のままです。代わりにPlumを入力するとD2とD3が増え、D4は2のままです。COUNTとCOUNTAの比較は専用のページにあります。

'007のように先頭にアポストロフィを付けて入力した数値は文字列なので、"*"で数えられます。1文字以上入ったセルだけを数えるには"?*"を使います。?は1文字に一致する必要があるので、空の文字列("")を返す数式は数えられません。

特定の文字を含むセルを数える

どこかに単語を含むセルを数えるには、その単語の両側にアスタリスクを付けます。アスタリスクがないと、セル全体が一致する必要があります。

単語を数える
D2
ABCD
1ProductConditionCount
2Applecontains apple5
3Pineappleexactly apple1
4Pearstarts with apple3
5apple juiceword in C61
6Plumjuice
7Green appleapple, case-sensitive3
8Apple cider
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

"*apple*"は5つの商品に一致します。"apple"だけだと、ちょうどAppleのセルにしか一致せず(COUNTIFは大文字と小文字を区別しません)、"apple*"はappleで始まる3つに一致します。D5はC6から単語を取るので、そこに好きな単語を入力できます。D7は大文字と小文字を区別します。COUNTIFと違ってFINDはappleとAppleを区別するので、数えられるのはPineapple、apple juice、Green appleだけです。--はTRUE/FALSEの結果を1と0に変え、SUMPRODUCTで足せるようにします。

セルが文字を含んでいたら値を返す

行ごとに印を付けるには、セルを1つずつ調べます。SEARCH("apple",A2)はappleが始まる位置を返し、ないときは#VALUE!を返します。ISNUMBERがそれをTRUEかFALSEに変え、IFが結果を選びます。

セルがappleを含むか
B2
ABC
1ProductContains apple?Any text?
2AppleYesText
3PearNoText
4PineappleYesText
542NoNot text
6Green appleYesText
72026-02-01NoNot text
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

どちらの列も下にコピーされています。B列はApple、Pineapple、Green appleにYesを表示します。C列はISTEXTを使っていて、別の問いに答えます。セルにそもそも文字列が入っているかです。42と日付は数値なので「Not text」です。大文字と小文字を区別したいときは、SEARCHの代わりにFINDを使います。2つの関数の詳しい説明と、大文字小文字を区別しないのがSEARCHのほうである理由は、FINDとSEARCHにあります。

=IF(COUNTIF(A2,"*apple*"),"Yes","No")は同じ判定をCOUNTIFで行います。件数1はTRUE、0はFALSEとして扱われます。

いくつかの単語のどれかを含むセルを数える

COUNTIFを2つ足すと、両方の単語を含むセルが2回数えられます。代わりに各セルを1回だけ調べます。単語ごとにSEARCHし、TRUEの結果を足して、合計が0より大きい行を数えます。

appleまたはjuice
D2
ABCD
1ProductFormulaCount
2AppleTwo COUNTIFs5
3Orange juiceEach cell once4
4Pear
5apple juice
6Plum
7Green apple
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

appleかjuiceを含む商品は4つですが、2つのCOUNTIFでは5になります。apple juiceが両方で数えられるからです。SUMPRODUCT版は4になります。

練習: 文字列のセルを数える

やってみよう: 文字列を数える
E2
ABCDE
1DeliveryWeightWhatCount
2D-112Notes
3D-29
4D-3damaged
5D-415
6D-5missing
7D-6
8D-7late
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: 配送には重さが入っているものと、メモが入っているものがあります。B2:B8のうち文字列が入ったセルを数えてください。数式はE2に書きます。

文字列のセルの件数が合わない理由

  • 文字列として保存された数値も数えられる。 別のシステムから取り込んだ列には、'125が文字列として入っていることがあります。"*"はそれを数え、COUNTは数えません。数値の列でCOUNTがCOUNTAより少なければ、一部が文字列です。文字列として保存された数値を参照してください。
  • 空に見えるだけのセル。 スペースが入ったセルは文字列なので数えられます。目に見える文字が入ったセルを数えるには=SUMPRODUCT(--(LEN(TRIM(A2:A8))>0))を使います。
  • TRUEとFALSEは文字列ではない。 "*"はそれらを飛ばし、#N/Aのようなエラー値も飛ばします。
  • COUNTIFは大文字と小文字を区別しない。 区別して数えるには、2つ目のシートのようにSUMPRODUCTの中でFINDを使います。

よくある質問

Excelで何らかの文字列が入ったセルを数えるには?

=COUNTIF(A2:A8,"*")を使います。アスタリスクは任意の文字列に一致するので、この数式は文字列のセルをすべて数え、数値、日付、TRUE/FALSE、空のセルは飛ばします。

特定の文字を含むセルを数えるには?

単語をアスタリスクで囲みます。=COUNTIF(A2:A8,"*apple*")は、どこかにappleを含むセルを大文字小文字を問わず数えます。アスタリスクがないと、"apple"はちょうどappleのセルしか数えません。

「セルに文字が含まれていたら」をExcelでどう書きますか?

IF、ISNUMBER、SEARCHを組み合わせます:=IF(ISNUMBER(SEARCH("apple",A2)),"Yes","No")。SEARCHは文字列が見つかれば位置を、見つからなければエラーを返し、ISNUMBERがそれをTRUEかFALSEに変えます。

セルに文字列が入っているかどうかを調べるには?

=ISTEXT(A2)を使います。文字列ならTRUE、数値、日付、空のセルならFALSEです。IFの中では=IF(ISTEXT(A2),"Text","Not text")と書きます。

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

Coddyでコードを学ぼう

始める