• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:countifの範囲的な条件の作り方)

【Excel】countif関数を使った範囲条件の作り方

このQ&Aのポイント
  • エクセルでのcountif関数を使用して、範囲条件を設定する方法について説明します。
  • 具体的な例として、特定の値の範囲に該当するセルの個数を数える方法を解説します。
  • 小数点の有無やパーセンテージ表記などが原因で、正しい値が得られない場合の対処法も紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

適当な区間ごとに数式で集計するならFREQUENCY関数が簡単です(添付画像参照)。 A列に元データ、C1:C20セルに5%、10%、15%、・・・100%とオートフルコピーしておきD1:D20セルを選択し以下の式を入力して、Ctrl+Shift+Enterで確定します。 =FREQUENCY(A:A,C1:C20) 数式を利用しないなら、ピボットテーブルを利用する方法もあります。 行フィールドに%の数字の項目を配置し、この行フィールドで右クリックから「グループ化」で最小値を0、最大値を1、区間を0.05にしてください。 ちなみに、該当データが無い項目部分も表示させたい場合は、同じく右クリックから「フィールドの設定」のレイアウトと印刷タブで「データのないアイテムを表示する」にチェックを入れてください。

devilsway
質問者

お礼

アドバイス有り難うございます。 びっくりするほど、スムーズにできました。 これは最適な関数と言えるモノだと思います。 今後、いろんな作業に応用できるような気がします。 自分だけでなく、同じ問題にぶつかった人のためにも ベストアンサーにしたと思います。 有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.5です! たびたびごめんなさい。 投稿した後で気づきました。 いっそのこと前回のD列(未満の列)も利用すればもっと判りやすい表になると思います。 もう一度画像をアップしてみます。 ↓の画像の場合前回より少し数式が変わってきます。 E3セルは =SUMPRODUCT(($A$2:$A$1000>=C3)*($A$2:$A$1000<D3)*($A$2:$A$1000<>"")) となり、100%の行までオートフィルでコピー! 表内の101%が気になればフォントの色を白にして目立たなくしておいた方が良いかもしれません。 何度も失礼しました。m(__)m

devilsway
質問者

お礼

参考にさせていただきます。 本当にていねいに有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! 一例です。 質問では整数のパーセンテイジでなく、小数点以下の表示になっていますので、 空白部が出てしまいます。 仮に5.5%の場合は 0~5% 6~10% のどちらにも入らない状態になります。 勝手に↓のような表を作ってみました。 実際はC列の薄い緑色の列だけでOKなのですが、判りやすくするためにD列の「未満」の表示もしています。 データがA列にあるとしてその各範囲の個数を出す方法です。 画像ではE3セルに =SUMPRODUCT(($A$2:$A$1000>=C3)*($A$2:$A$1000<C4)*($A$2:$A$1000<>"")) (エラー処理はしていません) という数式を入れオートフィルで下へコピーしています。 画像の最後の2行に注意をしてください。 範囲の区切りが少し変わりますので、ここは気を付けておきます。 100%を超えるものはないと思いますので、画像の23行目(100%以上の行まで)コピーでやめておきます。 C列の最終行は別に101%でなくてももっと大きな数値でも構いません。 数式の関係で100%の行は100%以上○○%未満となりますので、100%の行以降に一つデータが必要です。 とりあえず元データの1000行目まで対応できるようにしたいますが、 データ量が多すぎる場合、このSUMPRODUCT関数は配列数式ですのでPCに負担をかけてしまいます。 1000行程度なら問題ないとは思いますが・・・ 参考になれば良いのですが 他に良い方法がればごめんなさいね。m(__)m

devilsway
質問者

お礼

アドバイス有り難うございます。 画像付きで複数にわたり、回答していただいたのに、 ポイントがつけられないのが残念です。 今回使った関数SUMPRODUCTを今後、使いこなせるように なりたいです。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • hananoppo
  • ベストアンサー率46% (109/235)
回答No.4

データの区分方法に疑問を感じます。0~5%、5~10%、10~15%・・・95~100%とされてはどうでしょうか。その場合で案を提示させていただきます。 まず、データの数式を次のように変更します。 =ROUND(数式,3) また、それぞれの範囲の個数は次の数式で求めます。 =COUNTIF(範囲,"<=0.05") =COUNTIF(範囲,"<=0.1")-COUNTIF(範囲,"<=0.05") =COUNTIF(範囲,"<=0.15")-COUNTIF(範囲,"<=0.1") =COUNTIF(範囲,"<=0.2")-COUNTIF(範囲,"<=0.15") =COUNTIF(範囲,"<=0.25")-COUNTIF(範囲,"<=0.2") =COUNTIF(範囲,"<=0.3")-COUNTIF(範囲,"<=0.25") =COUNTIF(範囲,"<=0.35")-COUNTIF(範囲,"<=0.3") =COUNTIF(範囲,"<=0.4")-COUNTIF(範囲,"<=0.35") =COUNTIF(範囲,"<=0.45")-COUNTIF(範囲,"<=0.4") =COUNTIF(範囲,"<=0.5")-COUNTIF(範囲,"<=0.45") =COUNTIF(範囲,"<=0.55")-COUNTIF(範囲,"<=0.5") =COUNTIF(範囲,"<=0.6")-COUNTIF(範囲,"<=0.55") =COUNTIF(範囲,"<=0.65")-COUNTIF(範囲,"<=0.6") =COUNTIF(範囲,"<=0.7")-COUNTIF(範囲,"<=0.65") =COUNTIF(範囲,"<=0.75")-COUNTIF(範囲,"<=0.7") =COUNTIF(範囲,"<=0.8")-COUNTIF(範囲,"<=0.75") =COUNTIF(範囲,"<=0.85")-COUNTIF(範囲,"<=0.8") =COUNTIF(範囲,"<=0.9")-COUNTIF(範囲,"<=0.85") =COUNTIF(範囲,"<=0.95")-COUNTIF(範囲,"<=0.9") =COUNTIF(範囲,">0.95")

devilsway
質問者

お礼

アドバイス有り難うございます。 範囲の指摘、まさにその通りだと思います。 かつ、countifを使った処理の仕方ですから、 私の質問に的確に解答いただいていると思います。本当にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

補足情報です。 添付ファイルのC列のデータは、「~5%」のように表示されていますが、実際のデータは、C1に5%、C2に10%と入力してオートフィルし、セルの書式設定の表示形式タブでユーザー定義にして「"~"0%」としてあります。 また、オートフィルタで集計する場合は、%の数値を行フィールドだけでなくデータフィールドにも配置した場合は、データフィールドを右クリックから「(値)フィールドの設定」で集計の方法を「データの個数」にして下さい。

devilsway
質問者

お礼

細かい設定にいたるまで、アドバイスいただき有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。
  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

まさに表示桁数の問題だと思います。 表示に合わせるのであれば表示桁の1つ下のけたを四捨五入されることを考えれば 式をそれに合わせて変更してはどうでしょうか。 6から10%であれば =COUNTIF(範囲,">=0.055")-COUNTIF(範囲,">=0.105") のようにしてはどうでしょうか。

devilsway
質問者

お礼

アドバイス有り難うございます。 参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel関数(countif)

    countif関数の使い方についてお伺いします。 countif関数の検索条件として、6分の1,3分の1などはどのように設定すればいいのでしょうか。それぞれ、excel上は16.7(=16.66666・・・),33.3(=33.33333・・・)などと表記されますが、割り切れない数字なので、「16.7」「33.3」と入れても当然正しいカウントはできません。 例えば範囲をH3:H13とすると、その範囲の中にある数字が順に以下のようになった場合 H3 ・・・ 50 H4 ・・・ 33.3(=33.33333・・・) H5 ・・・ 25 H6 ・・・ 40 H7 ・・・ 16.7(=16.66666・・・) H8 ・・・ 100 H9 ・・・ 16.7(=16.66666・・・) H10・・・ 50 H11・・・ 33.3(=33.33333・・・) H12・・・ 0 H13・・・ 16.7(=16.66666・・・) この範囲での50の個数はcountif(H3:H13,50)=2となります。 では、16.7(=6分の1)や33.3(=3分の1)はどのように関数を作ればいいのでしょうか? よろしくお願いします。

  • EXCELVBAの Countifについて

    A列のA2から値が入力されている最終セルまでを一気に範囲選択して、データの個数を数えたいのですが、 上手くいきません。 ご指導をよろしくお願いします。 Range("D1") = WorksheetFunction.countif(Sheets("1").Range(Cells(2, 1), Cells(2, 1).End(xlUp)), "001")

  • エクセルのcountifについて

    はじめまして。 countifを使って以下の作業を行いたいのですが 上手くいきませんのでよろしくお願いします。   A   B 1 1149 個数を出す 2 7921    3 97    4 171    5 265 ・ ・ ・ 10000まで A列に10000までランダムに数字を入力して  COUNTIF(A1:A10000,1)で B列にA1からA10000の内1は何個か数える。 ここまでは出来るのですが このまま10000まで引っ張って行くと  COUNTIF(A2:A10001,1)  COUNTIF(A3:A10002,1)     ・     ・     ・ となってしまいます。 私としては  COUNTIF(A1:A10000,1)  COUNTIF(A1:A10000,2)  COUNTIF(A1:A10000,3)   と範囲はそのままで検索だけを1から10000まで変えたいのですが方法はあるでしょうか? 手作業でやる事も考えましたが余りにも時間がかかるので挫折しました。 解決法をご存知の方よろしくお願いします。

  • エクセルの関数countifの引数についての質問

    例えば添付の図の A10のセルに、関数のcountifを使って、 「A1~A8までの範囲の中から、50より小さい値の個数を返す」 と命令したい場合、 countifの引数の「検索条件」には どのような式を入力すれば良いのでしょうか? 素人質問で大変恐縮ですが、 ご教示宜しくお願い致します。m(_ _)m

  • 別ファイルの文字列の個数をカウントするには?

    下記のようにA列に文字列が入っているBファイルがあります。 Cファイルで上記A列の「1」を含むセルの個数を数えるために COUNTIFを使っているのですが 一度保存し開くと「#VALUE!」が表示されてしまいます。 どのようにしたらうまく行くのでしょう? ちなみに、Bファイルはいじれません。 また「1」以外の数字の個数も数える予定です。 今は【=COUNTIF(範囲,”*文字列*”)】という計算式を入れています。 A列 1 1.4(この.は小数点ではありません。) 3 2 2.3.4

  • EXCEL エクセルでデータの個数から標準偏差を求める

    書いてある値に関わらず、個数から標準偏差を、条件付けをして求めるやり方がわからずに困っています。 例えば、 002233005603 で、平均を出す時に=COUNTIF(範囲,">0")/COUNT(範囲)とした時に、この平均の求め方の標準偏差をどうやって出せばよいかが分かりません。 どなたか御教授の程宜しくお願いします。

  • エクセルでセルの値がある範囲にあれば1と表記したいです

    あるセルの値(B1)が C2からC13までの中に含まれていれば1, C14からC28に含まれていれば2 のように表記したいと考えています。 以前教えて頂いたことのある if(countif(C2:c13,B1)>0,"1","")のような式を応用しようとして ネストやANDを使ってみたのですがエラーが出て式が作れません。 アドバイス頂けますでしょうか。 宜しくお願いします。

  • EXCELの関数を教えてください

    現在の状況を説明します。 (1)=COUNTIF(BQ50:BQ60,"◎")で◎と○の個数をそれぞれ数えています。 (2)そうすると、◎や○がないセルの場合、「0」の値が入ります。 (3)上記(2)の、「0」の値を「―」ダッシュに表記したいのですが、 私がわからない所が次でございます。 すでにセルには=COUNTIF(BQ50:BQ60,"◎")の関数が入っています。 この関数に、「0」の場合は「―」ダッシュを入力するといった 関数を教えて頂けないでしょうか。 うまく説明ができなくて申し訳ございません。 よろしくお願い申し上げます。

  • すでに入力されている数字で計算をしたい

    数字が入力されている表があります D列E列F列の数字をそれぞれB列の数字で割り算をしたいと考えています 割り算の答えは同じそのセルに上書きするようにします 別のセルで計算した結果を値貼り付けでもってきていたのですが、 マクロで処理できればと考えております 2行目から数字が入力されているのですが、 最終行が決まっておりません。 答えは全て小数点第2位までで表示したいと考えています どなたかご教授いただけますでしょうか よろしくお願い致します

  • 凄い初歩的な質問かと思うんですが・・・

    電卓を作っているんですが、 小数点計算を可能にする為double型で計算しているんですが、 例えば、555555555.0 + 5.0となると、答えが5.5555556E8となります。 なぜですか? まだdouble型の値の範囲超えてないですよね? 解決方法と合わせて教えてください。 お願いします。

専門家に質問してみよう