• ベストアンサー
  • すぐに回答を!

エクセルの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まで変えたいのですが方法はあるでしょうか? 手作業でやる事も考えましたが余りにも時間がかかるので挫折しました。 解決法をご存知の方よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数1606
  • ありがとう数7

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

  • ベストアンサー
  • 回答No.5

こんにちは~ 既に回答が出ているように $A$1:$A$10000 と、絶対参照にすれば、下にコピーしても範囲は変わりません。 No.4の方の回答のように 10000の前にだけ $を付けてもダメです。 A$1:A$10000 ならいいですが・・。 $は、数式を入力するときに、A1 と入れて F4キー、A10000 と入れて F4キーを押せば、自動的に $A$1:$A$10000 になります。 ただし、A:A として A列全体を指定したほうがカンタンだと思いますよ。 =COUNTIF(A:A,1) とすれば、A列全体の中で、1がいくつあるか数えてくれます。 検索条件ですが、上の式を下にコピーしてもなにも変わりません。まったく同じ数式がコピーされるだけです。 こういう場合は、B1に =COUNTIF(A:A,ROW(A1)) と入れます。 これを下にコピーすれば =COUNTIF(A:A,ROW(A2)) =COUNTIF(A:A,ROW(A3))   ・   ・ のようになります。 ROW関数は指定したセルの行番号を返しますから、ROW(A1)は1、ROW(A2)は2 と同じことです。行番号を見れば、どの数字の個数かはわかりますから、わざわざ他の列に 1~10000と入力する必要はないと思います。 説明が長くなりましたが、要はB1に =COUNTIF(A:A,ROW(A1)) または =COUNTIF($A$1:$A$10000,ROW(A1)) と入れて、B10000までコピーしてください。 コピーは 10000行まで引っ張ってもかまいませんが、B1に数式を入れたあと、B1を選択して、セルの右下にあるフィルハンドル(小さな■)をダブルクリックするだけで一気に B10000まで数式がコピーされると思います。A列の途中に空白セルがなく連続でデータが入っていれば、ですが・・。 フィルハンドルがわからなければ参考URLを見てください。

参考URL:
http://arena.nikkeibp.co.jp/tec/excel/20040308/107604/

共感・感謝の気持ちを伝えよう!

質問者からのお礼

今回はとても詳しく分かり易い説明をありがとうございます。 皆さん本当にすごいです! 私のエクセル活用なんて初歩の初歩のままレベルが停まっていますので知らない事ばかりで1日でなんかかなりレベルアップした様な気までしてしまいます。

関連するQ&A

  • エクセルcountif である数字を含むセルを数える

    エクセルの基本的な質問で失礼します。 現在、以下のようなエクセルを作っています。 ちょっと分かりにくくて恐縮ですが… 元データであるシート「2」のA列にカンマ区切りで入力されている複数の数字を、 シート「1」で1つの数字ごとに横列に並べて、該当しているものには○を出すとしたいのです。 ただ、シート「1」のA1で 『=IF(COUNTIF('2'!A1,1)=1,"○","")』とすると、 セルが「1」のみの時しか○が表示されず、「1を含む場合」は○が出ません。 『=IF(COUNTIF('2'!A1,"*1*")=1,"○","")』ともしたのですが、 そうすると「1」のみの時にも○が表示されなくなってしまいました。 この場合、どういう式にするのが適切でしょうか? 恐れ入りますが、ご教示のほどよろしくお願い申し上げます。 ------------------------------------- シート「1」 ------------------------------------- A1「シート2のA1で1を含んでいる場合には○」  B1「シート2のA1で2を含んでいる場合には○」   C1「シート2のA1で3を含んでいる場合には○」 以下同様… ------------------------------------- シート「2」 ------------------------------------- A1「1,2,3,4」 A2「3,5」 A3「2」

  • EXCEL関数の”COUNTIF”について教えてください

    セルA1~A10に1~10の数字を入力して、8以上の数字の個数を数えるには【=COUNTIF(A1:A10,">=8")】という関数を使えば、3個と出てきますよね。 例えば3以上~8以下の個数は何個かという式は出来るのでしょうか? 困ってます。教えてください。

  • Excel 複数条件+”かつ”

    標題の通りです。 例えば、A1~A100に1~10までの数字が、B1~B100に11~20までの数字が、個数に関係なくランダムに入っているとします。 (1)A列の中で3以上7以下の個数を求めるには、COUNTIFで(7以下の個数)-(3以下の個数)で求めればいいですよね。(SUMPRODUCTを使う方法もあるみたいですが) (2)A=4 かつ B=15の個数を求めるにはSUMPRODUCTを使用すれば求まりますよね。 ここまでは、ネットで調べて理解しました。 ここからが本題です。 (1)と(2)を合体させて、A列の中で3以上7以下 かつ B列の中で11以上13以下の個数を求めるのにどうすればいいのかが分かりません。 A   B 1   12  4   11  4   17  5   13  6   20  3   14  答え:2個 てな具合で個数を求めたいのですが、色々と式を作ってみてもエラーになったりすべての値が0になったりで上手く行きません。 よろしくお願いします

その他の回答 (5)

  • 回答No.6
  • mshr1962
  • ベストアンサー率39% (7416/18946)

他の方も回答していますが 絶対座標を使う方法 =COUNTIF($A$1:$A$10000,ROW(A1)) ROW(A1)は1になります。コピー時にA2,A3...と変わればそのまま2,3..になります。 名前を使う方法 A1:A10000を選択して「挿入」「名前」「定義」で"データ"とつけます。 =COUNTIF(データ,ROW(A1))

共感・感謝の気持ちを伝えよう!

質問者からのお礼

今回は回答ありがとうございます。 目からウロコの連続です。 短時間の内に答えて下さった全ての皆様に感謝しております。 また分からない事がありましたらよろしくお願いします。

  • 回答No.4
  • murabon
  • ベストアンサー率23% (42/180)

10000の前に「$」マークをいれ、COUNTIF(A1:A$10000,1)とすればできます。 Excel本では「相対参照」/「絶対参照」といった仰々しい名前がついていますが、要するに参照先に「$」をいれ、固定してしまうことができるということです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

本当に今回はすごいタメになりました。 知らない事ばかりでお恥ずかしい限りです。 短時間の内にあっという間に解決出来てしまい感謝の連続です。

  • 回答No.3
  • imogasi
  • ベストアンサー率27% (4558/16318)

複写しても式の行や列をあらわす部分のの表現が変わらないようにするには それぞれに$をつけます。 (1)$なしA1(行列に応じて変化) (2)列固定$A1 (3)行列とも固定$A$1 の3つを場合に応じて使い分けます。 (1)上辺を固定(COUNTIFなどで第1行目から現在行までなど)     $A1:A1のように (2)固定したセル範囲(本質問の場合) (3)表をあらわす(VLOOKUP、D関数などのCriteria)(2)と同じですが、よく誤りやすいので に使います。 連続正整数はRow()などを使います。 1列使ってもよいなら、ご存知のオートフィルで連続数が作れます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

詳しい説明ありがとうございます。 頭の悪い私でもよく理解できた気がします。 早速ノートにメモしてこれからも役立てます。

  • 回答No.2

まずアドレスですが、A$1:A$10000 と入力すれば、ドラッグしても式の内容が変わりません。「絶対アドレス」ですね。 次に、ドラッグしてC列のセルに、1から10000まで入れます。 で、セルB1の式を =countif(a$1:a$10000,c1) とすれば、ドラッグしても期待通りになるはずです。 しかしそんなやりかたより、ピボットテーブル使ったほうが早いですよ。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

今回は回答ありがとうございます。 $を使うとこんな風になるんだと初めて知りました。 知らなかった事ばかりで目からウロコです。

  • 回答No.1

A1:A10000は先に$A$1:$A$10000にしてからドラッグ。 条件1,2,3,4…の代わりにrow(A1)にすればいいんじゃないですか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

この度は回答ありがとうございます。 rowと言うのは使った事がありませんでしたが素晴らしい物ですね! ずっと疑問だった事があっさりと解決しました。 ありがとうございます。

関連するQ&A

  • 【エクセル】ランダムで重複しない整数を出したい。

    Windows 7、エクセル2007です。 ランダムで重複しない整数を任意の範囲から一部のみ入力するにはどうしたら良いでしょうか? 1.任意の範囲「1~50」とか「1~100」とか「15~300」とかから、20個だけとか40個だけとか。 2.ランダムなので「2,6,3,4,8,1・・・」とかのn、n+1、n+2ではないランダムな整数。 3.重複しないこと。 上記1~3を満たしたやり方ってありますか? 出てこない数があっても良いんです。 例えば、1~10までの範囲でランダムに3個だけセルに入力したいとき。 A1に7、A2に4、A3に9というふうに。 それが1~300の範囲で50個の数字をランダムに重複しないように入力する。 A1に15、A2に163、A3に92、・・・A50に43。 残りの250個の数字は入力されないという感じです。 乱数だと重複します。 ランク(順位)と組み合わせると、連続(n、n+1、n+2)になってしまいます。 列はどこでも良いんですが、行は連続したいです。 A1~A50とか、A1~A300とか。 関数の組み合わせでできないでしょうか? また、マクロは分からないので、詳しく解説して頂けると助かります! 情報が不足する点がありましたら指摘して下さい。 追加します。

  • Excel countIFについて

    sheet1に A1に1 A2に2 A3に3 A4に4 A5に5 B1に5 B2に7 B3に9 B4に10 B5に5 図としては A|B| ―╂―╂ 1|5| 2|7| 3|9| 4|10| 5|5| こんな感じで、Bに、はいってる数字は、1から10までの乱数だとします。 それを、countifを使って、 別のシートに(sheet2) sheet1のBの、5、7、9、10、5の中に集計すると sheet2に、 (下記の、Aは、A1、Bは、B1、4はA5と、A1から、あわせて、セルを省略せずに書いてます) A|B ―╂― 1|0 2|0 3|0 4|0 5|2 6|0 7|1 8|0 9|1 10|1 とこんな感じに集計したいのですが、COUNTIFを用いる時、どんな関数たてればいいでしょうか? ちなみにsheet2の1~10は普通に打ち込んだ数字です。 ちなみに、XPのExcel2003です。 良かったらご意見くださいm(_ _)m

  • EXCELでのCOUNTIF関数について。

    EXCELでCOUNTIF関数を使って色々試してみたのですが、思ったようにできなくて教えていただきたいです。。 協力者100人に回答項目が「いる」「少しいる」「ほとんどいない」「まったくいない」といった質問紙調査を行いました。質問は50問で全て同じ回答項目でできています。 そこで       問1(列:A)  問2(列:B)     「いる」  38人   43人   ・・・ 「少しいる」  23人   11人             ・             ・     のように問ごとに回答項目人数の合計を出す場合は 問1(列:A) 『=countif(a1:a100,"いる")』 『=countif(a1:a100,"少しいる")』        ・        ・ のように一つ一つ入力していくしかないのでしょうか? また問2以降も『=countif(b1:b100,"いる")』… のように一つ一つ入力するしかないのでしょうか? 説明がうまくできなくてわかりづらい文章になってしまってすみません。。よろしくお願いします。

  • エクセルで、countifで

    例えば、「A1」のセルから「C3」のセルまでで、「5以外の数字を数える」としたら 次のような式になると思うのですが、 =COUNTIF(A1:C1,"<>5") 「3か5以外の数字を数える」 というのはできるでしょうか。

  • Excel 関数でcountifの複数条件

    Excelで条件にあった個数をカウントする関数はcountifですが、 複数の条件にあった個数をカウントする場合、countifの式はどうすればよいのでしょうか。 例えば A列の1行から20行で"○"が入っている個数のカウントは =countif(a1:a20,"○")ですが A列の1行から20行で"○"が入っていて、なおかつ B列の1行から20行に"1"が入っている個数のカウントを知りたいです。 =countif(a1:a20,"○")and(b1:b20,"1")ではないですよね。 よろしくご教授願います。

  • EXCELでBINOMDIST関数を使った式で質問があります。

    Sheet1のA列には1,2,3,4,5,6・・・・100とA1からA100まで数字が入っています。 SHEET2のA列は表示が%になるように設定された空欄です。 B列には数式が入っています。 B1には「=BINOMDIST(0,SHEET1!A1,A1,0)」 B2には「=BINOMDIST(0,SHEET1!A2,A2,0)」 B3には「=BINOMDIST(0,SHEET1!A3,A3,0)」 B4には「=BINOMDIST(0,SHEET1!A4,A4,0)」 ・ ・ ・ ・ B100には「=BINOMDIST(0,SHEET1!A100,A100,0)」 と入っています。 私の作業は空欄のA列にランダムに数字を入力して、B列の数字を0.100~0.098に入るようにすることです。  A列      B列 1 90.0%  0.100 2 68.4%  0.100 3 53.6%  0.100 4 43.7%  0.100 5 36.9%  0.100 6 31.9%  0.100 という感じです。けっこうな手間なので、B列が0.100~0.098になるような数字をA列に入れる関数や何か他に方法があったら、教えて頂きたいのですが、ありますでしょうか?よろしくお願いします。

  • エクセルの関数について

    A1~A100の範囲に、「あ・い・う・え・お」の5文字を入力してあります。 その中から「あ」と「う」の二文字以外の個数を調べるには、どうしたら良いのでしょうか。 昨日、教えていただいた関数を使用して「=COUNTIF(A1:A200,"<>あ")」で、「あ」一つだけはできるのですが、「あ」と「う」と二文字以外の個数を調べるには、どのようにすればいいのでしょうか。 よろしくお願いします。

  • ExcelのCOUNTIFで条件の値に1を足す方法

    ExcelのCOUNTIFを使って集計をしています。 「Log」とういうシートのデータを固定で範囲指定(オートフィルで範囲が変わってしまうため)し、その中に「Sheet1」のA列のデータ(文字列:氏名)といくつ合致しているかを集計しようとしています。 =COUNTIF(Log!$B$7:$B$510,"*A1*") 上記数式をG1に入力しオートフィルでコピーしてもコピー先の数式は何も変わりませんでした。 =COUNTIF(Log!$B$7:$B$510,"*A2*")と手入力し再度コピーすると ・・・"*A1*"、・・・"*A2*"、・・・"*A1*"、・・・"*A2*"となるだけでした。 どうすればオートフィルでA1,A2,A3…となってくれるでしょうか? もし他の(簡単な)方法があれば教えていただければ幸いです。 使用ソフト:Excel2002 よろしくお願いいたします。

  • エクセルのCOUNTIFで

    エクセルのカウント方法について教えてください。 A1~A100のセルに式が入っていて、条件により答えが表示される場合とされない場合(="")があります。 答えは文字列です。 A1~A100のなかに答えが表示されているセルの数を求めるにはどういう式にすればいいのでしょうか? COUNTA(A1:A100)では100となってしまいますので、COUNTIFだとは思うのですが・・・・。

  • Excelの"COUNTIF"について。正確に答えてくれないんです。

    基本的なところかもしれないのですが、 アンケート調査を行って、今データの整理をしております。 はい:1 いいえ:0 と答えてもらったので、       =COUNTIF(B3:B300,"1")    =COUNTIF(B3:B300,"0") と入力しました。 それなのに、エンターキーで確定させても、 0個となってしまいます。 隣のC列D列などは、同じようにやってもきちんと個数がでるのに、 なぜ数えてくれないのかが分からず困っています。 (C列の式をコピペして、CをBに変えてもだめでした。) かなり切羽詰まっているので、 できたら至急教えていただきたいです。 どんな原因が考えられますか?