電子書籍の厳選無料作品が豊富!

お世話になります。
例としてエクセルシートのA1からA7に次の通り品名コード(文字列)を入力してます。
A1  1001  たまご
A2  01001  お肉
A3  001001  豆腐
A4   1001  たまご
A5  01001  お肉
A6  01001  お肉
A7  001001  豆腐

A8には =COUNTIF(A1:A7,"=1001") の関数式を入れて品名コード№1001を表示している数を集計することとしましたが、A8に出てきた答えが7となってます。
0(ゼロ)から始まるコード番号が0を認識しないで?集計されているようですが、0も認識して集計する方法を教えてください。

A 回答 (5件)

既に課題は解決しているようですが、参考までに投稿します。



COUNTIF関数は「数字文字」のみの羅列を「数値」として処理しているようで、このようなご質問を目にすることがあります。ですから結論としては、fujillinさんの回答にあるとおり、
>コードの先頭(又は末尾)に固定のアルファベットを付けるなどしておけば、・・・・
という方法を用いればCOUNTIF関数でも正しくカウントできます。
つまり、作業列が許されるなら作業列を用いて、例えばC1セルに="A"&A1を入れてC7まで下方向へコピーしておいてから、A8セルに
=COUNTIF(C1:C7,"A1001")・・・①
のように頭にアルファベットを付けた条件でカウントすればよいことになります。

既出の回答のとおり、
=SUMPRODUCT((A1:A7="1001")*1)・・・②
という数式で解決できるのですが、COUNT系の関数を用いる方法としては、COUNTIFS関数を用いる方法もあります。1001をカウントする場合、A8セルに
=COUNTIFS(A1:A7,1001,A1:A7,"1*")・・・③
を入れて、数値としては1001、かつ、1から始まる文字列、という条件でカウントする方法です。同様に01001は
=COUNTIFS(A1:A7,1001,A1:A7,"01*")・・・④
同様に001001は
=COUNTIFS(A1:A7,1001",A1:A7,"001*")・・・⑤
とすればカウントできます。

FILTER関数が使用できるバージョンなら
=COUNTA(FILTER(A1:A7,A1:A7="1001"))・・・⑥
とする手もあります。
但し、⑥の数式は注意が必要です。検索値にA列に存在する値を使っている場合は問題ないのですが、A列に存在しない値を使用した場合、結果が0ではなく1になってしまうという問題があります。ですから、
=COUNTA(FILTER(A1:A7,A1:A7="1000"))・・・⑦
などとすると、0になって欲しいのに1になってしまいます。googleスプレッドシートなら、
=COUNTA(IFERROR(FILTER(A1:A7,A1:A7=検索値文字列)))・・・⑧
とすれば、正しくカウントできますが、⑧の数式はEXCELではエラーとなり使用できません。
    • good
    • 0
この回答へのお礼

質問寄せてから、所期の質問内容は概ねクリアーしておりましたが、当方の不手際で質問を閉じないまま保留にしておりました。
この中、このような事例を示していただきながらご教授いただき感謝いたしております。
引き続きご指導お願いします。

お礼日時:2024/07/19 06:40

No.4です。

大変失礼しました。
前回回答の⑤の数式に誤りがありました。1001の後のダブルコーテーションは不要です。
もし、1001の後にダブルコーテーションを付けるなら、前にも付けて 、"1001"のようにする必要があります。
お詫びして、訂正いたします。
    • good
    • 0
この回答へのお礼

修正事項確認致しました。

お礼日時:2024/07/19 06:40

A8=SUMPRODUCT((A1:A7="1001")*1)


として見てください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
先に(2番目)ご回答お寄せいただいた方と同じ回答でした。
この関数で目的をクリアー出来ました。

お礼日時:2024/07/11 08:12

こんにちは



「商品コード」って普通は桁数を合わせておくような気がしますが・・

A列は必ず文字列で入力されているとしてよいのなら、
 =SUMPRODUCT((A1:A7="1001")*1)
でカウントできます。
ただし、上式は数値として入力されている「1001」があっても、違うものと見做してカウントしません。

数値と文字列は見た目に紛らわしい場合があるので、コードの先頭(又は末尾)に固定のアルファベットを付けるなどしておけば、間違えの防止になると思います。
また、そのようにすることで、ご提示のCOUNTIFの式でもカウントできるようになります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
例として商品コードとして提示しておりましたが、実際は全国の県、市、郡№を活用した資料作成に取り込んでいる最中に頭に0が付いただけで地域が変るのにエクセルで関数集計している中で教えて頂きたい不具合に遭遇したところでした。
教えていただいた関数式で質問の所期の目的をクリアー出来ました。

お礼日時:2024/07/11 08:12

品名コードを 文字列(テキスト) 形式で入力しましょう


https://support.microsoft.com/ja-jp/office/58316 …
    • good
    • 0
この回答へのお礼

早々にご回答お寄せいただきありがとうございます。
エクセルに織り込んで確認してみます。

お礼日時:2024/07/10 16:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A