商品コードA*が余計に数えられる?COUNTIFの条件と一致行の確かめ方

DX・業務改善 · 実務ガイド
商品コード「A*」の明細を数えたのに、A01やABまで入って困る営業事務・集計担当へ。COUNTIFは、条件に合うセルの数を数えるExcelの関数です。条件の*を0文字以上の任意の文字列として読むため、商品コードそのものを探したつもりでも別のコードが対象に入ることがあります。この記事は、元コードを変えずに条件と一致した行を確かめる方法を説明します。
架空の12明細で、条件A*をA~*へ変える1回の比較を追います。参照期待は10行から3行へ変わり、R25-01/07/08が残ります。本文の元表・数式・一致行の比較から、余計な行が入る理由と条件の直し方を確認できます。参照結果、自社Excelの実測、会社で同じ商品とする判断は分けて扱います。
この記事でできるようになること
- *・?・~の条件を同じ元12行へ照合し、件数が変わった理由を一致行IDで説明できる。
- a*・末尾空白・別注文の同コードを勝手に修正せず、台帳責任者へ確認する事項を分けられる。
- Excelの確認用コピーで条件と一致行を比較し、自社の実測と未確認の会社判断を分けられる。
01 / DX・業務改善
商品コードA*を数えたい?営業事務が明細セルと商品種類を分ける
営業事務は、コードA*そのものを数えるのか、Aで始まる文字を選ぶのかを先に分けます。

「A*という商品を数えたら、A01まで入っていました」という場面です。COUNTIFは、条件に合うセルの数を数えるExcelの関数です。この条件の*は、別の文字に置き換わる記号として使えます。こうした記号をワイルドカードと呼びます。商品コードの元値がA*でも、条件のA*を商品名どおりの文字と解釈するとは限りません。
架空のC25には12明細行があります。R25-01とR25-07は、どちらもA*ですが別の注文の明細です。A01、AB、A?、A、a*、A~1、A2、BA*、空欄、末尾に空白があるA*も残します。営業事務は元表を変更せず、どの行が条件に入るかを確認用コピーで比べます。
本教材の参照期待では、同じ12明細の条件A*は10行、A~*は3行です。一致した元行IDを教材で読み、自社Excelの結果と別に記録します。元のPython・JavaScriptの参照記録は限定したASCII文字の教材計算で、今回の再実行やExcelアプリの再計算ではありません。経営者へ渡す数字は条件に合う明細セル数であり、商品種類数や数量合計へ読み替えません。
比較表は横に動かして全ての列を確認できます。
| 元行ID | 元コードの見せ方 | 意味・確認 |
|---|---|---|
| R25-01 | A* | 別注文の明細1 |
| R25-02 | A01 | Aの後が2文字 |
| R25-03 | AB | Aの後が1文字 |
| R25-04 | A? | ?を含むコード |
| R25-05 | A | Aの後が0文字 |
| R25-06 | BA* | Aで始まらない |
| R25-07 | A* | 別注文の明細2 |
| R25-08 | a* | 大小文字の会社方針は未確認 |
| R25-09 | A~1 | ~を含む元コード |
| R25-10 | A2 | Aの後が1文字 |
| R25-11 | 空欄 | 未登録を商品と決めない |
| R25-12 | A*␠ | ␠は末尾の半角空白を見せる記号 |
集計の依頼者へ、数えたいコードと対象の明細範囲を確認し、元表の保存先を記入してください。
02 / DX・業務改善
A~*はどこへ書く?集計担当が元コードと式の条件を分ける
集計担当は*、?、その直前の~を条件の役割として読みます。

条件の*は、文字の長さが違うものを選べます。A*ならAだけのR25-05、ABのR25-03、A01のR25-02も対象になるのが教材の期待です。Aの後に必ず*が書かれているコードだけ、という意味ではありません。文字どおりの*を指定する本稿の条件はA~*です。
条件の?は1文字に対応します。A?は、A*、AB、A?、a*、A2の各明細に合い、参照期待は6/12行です。A01はAの後が2文字なので入りません。文字どおりの?を指定するA~?ならR25-04の1/12行です。*と?を同じ「記号を含むコード」の条件にしないでください。
~はチルダという記号です。MicrosoftのCOUNTIF説明は、?や*そのものを探すとき、その直前に~を付ける方法を示しています。元コードへ~を書き足す操作ではありません。A*を保存した元セルは残し、比較する条件のほうをA~*へ変えます。
同じ範囲の条件を比較する
=COUNTIF('元12行'!$B$2:$B$13,"A*")
=COUNTIF('元12行'!$B$2:$B$13,"A~*")
=COUNTIF('元12行'!$B$2:$B$13,"A?")
=COUNTIF('元12行'!$B$2:$B$13,"A~?")集計担当は、文字そのものか文字の範囲かを条件欄に書き、A*とA?の意味を担当者へ説明してください。
03 / DX・業務改善
10行から3行へ何が外れる?営業事務が一致した元行IDを照合する
営業事務は、合計だけでなく元行IDを並べ、条件に入った理由を確認します。

A~*の参照期待はR25-01、R25-07、R25-08の3行です。元のA*条件には、この3行に加えてR25-02、R25-03、R25-04、R25-05、R25-09、R25-10、R25-12も入る期待です。条件の変更で外れる7行を名指しすると、何を数えなくしたかを説明できます。10行が3行になっただけで正しい会社集計へ採用せず、自社Excelの観察と台帳の規則を別に確認します。
「コードを置いたセルを参照すれば記号の意味は消えますか」という確認も必要です。別シート「条件確認」のB7にA*を文字で置き、そのセルをCOUNTIFの条件へ使う例を考えます。公式資料は条件にセル参照を使えると説明していますが、参照先の*を文字そのものにする指定にはなりません。この例の参照期待も10/12行です。
コードの中のどこかに文字どおりの*がある行を探すなら、本教材では*~**という別の条件を比べます。外側の*が前後の任意の文字、~*が文字そのものの星です。BA*と末尾空白のA*も入り、参照期待は5/12行です。「A*というコード」と「*を含むコード」は、数える対象が違います。
比較表は横に動かして全ての列を確認できます。
| 条件 | 参照期待 | 一致した元行の末尾番号 |
|---|---|---|
| A* | 10行 | 01/02/03/04/05/07/08/09/10/12 |
| A~* | 3行 | 01/07/08 |
| A? | 6行 | 01/03/04/07/08/10 |
| A~? | 1行 | 04 |
| *~** | 5行 | 01/06/07/08/12 |
| セルB7のA* | 10行 | 01/02/03/04/05/07/08/09/10/12 |
比較結果へ一致した元行IDと範囲外の行IDを残し、依頼者が意図したコードへ照合してください。
04 / DX・業務改善
a*と末尾空白を同じ商品にする?台帳責任者が会社の規則を確かめる
台帳責任者は、関数の一致と会社で同じ商品と扱う範囲を別に判断します。

Microsoftは、COUNTIFの文字条件は大文字小文字を区別しないと説明しています。そのため本稿のA~*の参照期待には、小文字a*のR25-08も含まれます。~で*を文字にしても、大小文字を区別する条件へ変わるわけではありません。会社がA*とa*を別商品にするなら、この3行をそのまま正式な商品集計へ採用せず、台帳責任者へ区別する規則を確認します。
R25-12の末尾空白は、担当者が見た目だけでは気づきにくい違いです。本教材はA*に空白を含めた3文字を保存し、A~*の参照期待へ入れません。空白を消す指示を先に出すと、元資料に同じ値があったか追えなくなります。元コード、会社の正規コード、空白を取り除く判断の根拠を別に残してください。
R25-01とR25-07は同じA*ですが、教材では別の注文の明細です。両行を数えた3という値は、一致した明細セル数です。商品種類数でも数量合計でもありません。重複コードだから片方を削る操作は、この条件確認には含めません。報告する数字の名前は、依頼者が求める対象へ合わせてください。
比較表は横に動かして全ての列を確認できます。
| 対象 | 確認する担当 | 次に残す根拠 |
|---|---|---|
| R25-08 a* | 商品台帳責任者 | A*と同商品か別商品かの定義 |
| R25-12 末尾空白 | 元資料の管理担当 | 正規コードと加工する場合の記録 |
| R25-01/07 同コード | 集計の依頼者 | 2明細として数える目的、商品種類数との区別 |
a*、末尾空白、同コードの別明細を確認票へ名指しし、台帳責任者と集計の依頼者へ渡してください。
この章の根拠:出典1
05 / DX・業務改善
同じ12行でA*とA~*を試す?集計担当がコピーと実Excelの結果を残す
集計担当は保存した元表を残し、同じ12行で式・一致行・実観測を照合します。

元表を変更せず、確認用のコピーで比較します。本文の元12明細を見出し付きでシート「元12行」へ置く例では、B2:B13が商品コードの範囲です。まず第2章の2つの式を、結果を表示する別々のセルへ入力し、条件A*とA~*だけを比較してください。自社の表では、シート名とコード列・開始行・終了行を実際の範囲へ合わせます。第3章の他の条件は、A*とA~*の違いを確かめてから必要なものだけ比較します。
「元12行」のE/F列へ、1セルにCOUNTIFを適用して0か1を返す式を追加します。F列のA~*条件で1になる行IDを確認し、合計が3という参照期待だけでなくR25-01/07/08の対応を見ます。違いが出た場合は、式の条件、参照した範囲、保存された元コード、再計算した環境を順に照合します。参照期待へ合うまで元コードを直す方法は取りません。
本文の件数と一致行は、架空の元12明細を使う参照例です。制作時の限定した計算記録と、自社Excelで再計算した値を同じ結果として扱いません。自社のExcelでは、使った製品・版・式・範囲と一致した行を確認してください。会社が大小文字や末尾空白をどのように扱うか未確認なら、台帳責任者へ確認するまで正式な集計への採用を保留します。
元行R25-01のコードを1セルで確認する例
「元12行」E2:=COUNTIF($B2,"A*")
「元12行」F2:=COUNTIF($B2,"A~*")
元D列の確認事項を保持し、E/F列の式を13行目までコピーして比較。確認用コピーで2つの条件に一致する行を比べ、意図した商品コードだけが対象になったか確認してください。大小文字や末尾空白の扱いが不明なら、採用する前に台帳責任者へ確認します。
06 / DX・業務改善
まとめ:A*を文字として数えるには、条件と一致行を確かめる
元コードは変えず、条件をA~*へ変えて一致行を確かめます。会社で同じ商品とする判断は別に確認します。

今回の主票は、同じ12明細のA*→A~*という1条件の比較です。参照期待10行から3行と、残るR25-01/07/08、外れる7行を対応させます。A?→A~?の6行から1行、*~**の5行、セル参照A*の10行は別の比較例であり、主票の今回結果へ混ぜません。自社Excelの一致行と台帳判断は未確認のままです。
~は、本稿では*や?を文字として探すために条件へ置きました。大小文字の区別や空白の扱い、同じコードの別明細を残すかは、会社の台帳と集計目的へ照合します。関数の一致を確認したことだけで、正式な商品数や出荷数量が決まるわけではありません。
まず、自社の確認用コピーで同じコード範囲を参照し、条件A*とA~*の結果を比べてください。A01などの余計な行が外れ、文字どおりのA*に合う明細が残るかを元セルで確かめます。小文字a*も一致するため、会社が大小文字を別商品として扱う場合は、この結果だけで正式な商品集計を確定しないでください。
元コードを変えずに条件へ~を置き、一致する明細行を確かめてください。集計の依頼者には、商品種類数や数量合計ではなく、条件に合う明細セル数であることを説明します。
仕事の流れから、顧客との接点まで。
一体で見直す、最初の一歩を。


