エクセル(excel-xls-xlsx)

1万件以上の受注データから発送済みの注文IDを「発送済み」という表示をさせるなら「COUNTIF関数」が便利です

この記事は約4分で読めます。

COUNTIF関数エクセルには便利な関数がたくさんあります。しかし、現実に即して関数を使いこなすのはなかなかたいへんですね。今回は「COUNTIF関数」が便利だったという案件がありましたのでご紹介します。
事例としては、受注済みデータが数万件あり、そのうち数千件は発送したが未発送のデータをどうやって判別すればいいかというという問題で「COUNTIF関数」を使って解決しました。

エクセルで重複している注文IDを抽出する方法

実例サンプルで手順を紹介します

受注一覧表:A

仮に、以下のような受注データがあったとします。

発送済み商品一覧表:B

上記の受注データの中から、すでに発送済みの注文IDはわかりました。

では、未発送のデータはどれ?

管理がうまくできていなくて、未発送の注文IDがわからない状況だとします。これは困りますね。これから未発送の方に発送しなければならないのに、データがたくさんありすぎて、もはや目視では管理しきれません。

その場合は、受注一覧表と、発送済みの商品一覧表の2つの表があれば、未発送の注文IDを抽出することができます。

発送済みの注文IDを抽出し表示する

発送済みの注文IDがわかっていれば、関数でチェックすることができます。
VLOOKUP関数か、COUNTIF関数を使用すれば解決できます。

今回は、COUNTIF関数を使って注文IDを抽出する方法を説明します。

発送済みと未発送を表示する

この処理をする前提として
・受注一覧表(A)をシート1にコピーしシート名を「受注一覧表」とする
・発送済み商品一覧表(B)をシート2にコピーしシート名を「発送済み一覧」とする
・シート3を「発送管理表」とし受注一覧表をコピーしたうえで「発送」という列を追加する
というエクセルを新規で作成しました。

このエクセルのシート3「発送管理表」を操作します。

「発送」という列を作成し、そのセルに関数を入れます。
具体的には、F4のセルに以下の関数が入っています。

=IF(COUNTIF(発送済み一覧B!B:B, B4) > 0, “発送済み”, “※未発送です”)

この状態でF4のセルを最下部までコピーすれば一覧表ができます。

これで「発送」という列に「発送済み」と「※未発送です」というどちらかが表示されます。

「重複しています」という表示を希望する場合

また、表示方法を変えたい場合は関数の中を少し変更すればよいです。

例えば、F4のセルを以下のようにすると

=IF(COUNTIF(発送済み一覧B!B:B, B4) > 0, “重複しています”, “-“)

すでに発送済みの注文IDが「重複しています」という表示になります。

このほうがスッキリするというならこの方法でもOKです。

基本的には「=IF(COUNTIF」という関数を使っているだけなので、カスタマイズもしやすいはずです。

なお、関数内で「発送済み一覧B!B:B」という表示ですが、「B:B」というのは「B列すべて」ということです。この設定は便利なのでおぼえておくといいですね。

COUNTIF関数に関するFAQ

以下のような間違いを起こしやすいのでご注意ください

Q: 「発送済み」と表示させるためには、どのようにCOUNTIF関数を設定すればいいですか?
A: 「発送済み」の条件を満たす項目の範囲を指定し、条件として「発送済み」というテキストを使用します。

Q: 複数の条件で「発送済み」を抽出したい場合はどうすればいいですか?
A: 複数条件での抽出にはCOUNTIFS関数を使用することが推奨されます。それぞれの条件を関数に追加していきます。

Q: COUNTIF関数が0を返すのはなぜですか?
A: 範囲指定が間違っているか、条件がデータに合致していない可能性があります。範囲と条件を再確認してください。

Q: 条件文字列をどのように指定すればいいですか?
A: 条件文字列はダブルクォーテーション(“”)で囲み、特定の文字列を含む場合はワイルドカード(*)を使用します。

Q: 大文字と小文字を区別してカウントするには?
A: COUNTIFは大文字と小文字を区別しません。区別するには、追加の関数を組み合わせる必要があります。

これらは一般的なガイドラインです。特定の状況やエラーに対する解決策は、使用しているデータや条件によって異なる場合があります。

Excel のヘルプとラーニング (microsoft.com)

にて検索すると疑問に関する回答が得られます。