• ベストアンサー

ExcelのCOUNTIF関数で条件を複数定義する

はじまして、こんにちは。 現在Excel(2000)でリストを作り、COUNTIF関数で計算する作業をしています。 そこで質問なんですが、現在"○"と"×"をデータとして入れ、 COUNTIF関数の検索条件で"○"とし、○ならカウントとしてリスト毎の合計数を計算しているんですが、 この方法だとデータが入っていないリストまで合計数が0になってしまします。 これではすべて×でも、データが入っていなくても0になってしまい、区別できなくて困っています。 これを、データが存在している場合の"○"の数と条件付けたいんですが、このような複数の条件設定はどうやれば出来るんでしょうか? 宜しくお願いします。

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

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

出来たのですね!^^ 良かったです。 あと、質問の件ですが、 まず1つ目は、お書きの通り、問題があっているかどうかを、 =TRUEまたは=FALSE で回答してくれています。 今回の場合、COUNTA(B2:C2)=0 で、 B2からC2までの間で文字や数字が入力されていなければ、 ”=0 ” すなわち、=TRUE そして、○×なにか1つでも入力があれば、 ”≠0 ” すなわち、=FALSE となります。 それによって、返す答えが "真の場合"(=TRUE)、"偽の場合"(=FALSE) に分けられ、2つの条件を天秤にかけ、もし、~なら  という関数が成立します。 今回の場合でいうと、 「もし、セルカウントが0なら空白、0じゃなければ○の数を計算して表示」 となります。 あと2つ目の質問ですが、 これは、私自身も詳しく分かっている訳ではないのでネットで調べました。 粗方をコピペしましたが、さらに詳しく内容を書いてくれているので、 サイトの方へ行ってみて下さい。では、お疲れ様でした。     #DIV/0!  割り算で分母がゼロ   #NAME?   関数名や範囲名が間違っている   #NUM!   大きすぎる数値又は小さすぎる数値   #NULL!   指定した2つのセル範囲に共通部分がない   #N/A   関数や数式に使用できる値がない   #REF!   セルの参照がおかしい   #VALUE!  引数の種類が正しくない     #######  セルの幅が狭く結果を表示できない

参考URL:
http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040713.html
kuwabara0
質問者

お礼

guchi_yamaさん、有り難うございました。 希望どうりの結果を得る事が出来たばかりでなく、 追加質問にも回答を頂き、大変勉強になりました。 今後も少しずつ、学習しながらExcel(関数)を自由自在に扱えるよう頑張ります。 本当に丁寧なご回答有り難うございました。

その他の回答 (6)

回答No.6

それなら、列と行が逆になるだけなので、 今まで通りの式を使って、 COUNTA(○2:○2) と、COUNTIF(○2:○2)の ○部分のアルファベットを、 質問項目のある(○×をリスト化している)部分に変更すれば出来ます。 下記は、取り合えず例題の通りの範囲にしています。    ↓これは、もし、~だったら っという関数です。 D2=IF(COUNTA(B2:C2)=0,"",COUNTIF(B2:C2,"○"))       ↑これは、○×に関わらず、何らかの文字、数字が        セルに入力されるとカウントされる関数です。 よって、B2からC2までの設問がある間に、入力規則で○×を 入力しない限り、カウントは"0"です。 また、 D2=IF(COUNTA(B2:C2)=0,"",COUNTIF(B2:C2,"○"))                   ↑これは文字列ブランクの記号です。 よって、カウントが"0"のときには、この関数を入れたセル、 即ち、点数欄のセルは、ブランク(空白)になるということです。 そして、IF関数の特徴は、問題の答えが間違えている場合、後ろの不正解を 採用するという関数です。       ↓これが『COUNTA()=0』に当たる部分  =IF(『問題』,正解,不正解)            ↑これが、『""』にあたる部分 よって、不正解(○ないし×等の文字、数字が入力された時)の時には、 ようやく、○の数をCOUNTIF()にて計算されて、 点数欄に記載されることとなります。 なので、長々とした説明になりましたが、 上記の式で、何も入力しないときは空白、 全て×の場合は0、 ○がいくつかあれば○の数を点数欄のセルに表記します。 ご理解頂けましたでしょうか? また、「ここが違う!」、「ここはどうやるの?」 っていう部分があればまた補足下さいませ。 宜しくお願い致します。

kuwabara0
質問者

補足

guchi_yamaさん、大変ご丁寧にありがとうございます。 親切でわかり易い説明のお陰で無事、希望どおりの結果が出ました。 空欄以外のセルをカウントできるCOUNTA関数をはじめて知り、 今後もこれを応用して色々使っていけそうなので勉強になりました。 ところで、質問内容に関連する所で2つほど疑問点が有ったので、 ご教示頂けたらありがたいです。 まず一つ目は、IF関数についてなんですが、関数のナビゲーションを使って関数を作る際、 IF関数の"論理式"の右側(記入欄の外)に=TRUEまたはFALSEと表示されている所がありますが、 これは何を意味しているんでしょうか? 論理式の下に、"真の場合"、"偽の場合"と定義する所があるので、論理式が成り立つ場合がTRUE(真の場合)、 成り立たない場合がFALSE(偽の場合)と思っていたんですが、 "論理式"の右側(記入欄の外)に表示されている"TRUE"または"FALSE"は上記の真偽に関わらず、 論理式自体に"TRUE"または"FALSE"が出ているようで、論理式の不等号を変更すると変わるようです。 これは、論理式が正しいか間違っているかということですか? でも、ここが"FALSE"でも関数が正常に機能しているので、論理式自体の正誤では無いような気もするんですが・・・。 ここの部分がイマイチ分らないので、教えて頂けませんでしょうか? 二つ目はRANK関数で順位付けした際、同じような空欄でも、 #VALUE!と#N/Aが出るケースがあるんですが、この違いは何なんでしょうか? 以上です。 宜しければ、今後の為にもこの機会に疑問点は解決しておきたいので、アドバイスお願いします。

回答No.5

ANo.4です。 A2~A6までのデータというのは項目ではないのですが? それが下記に対する項目で、それを見ながらB2~B6までに ○×を付けるのではないのでしょうか? それとも、A2~A6までのデータが入っていた時点で、 それを上書きするように○×をリストにて入力するのですか? 表のイメージがつかめないので もし宜しければ、表を例題に書いて頂けませんか? 私のイメージでは    A        B     C    D   E  ・ ・ ・ 1 名前      田中   山田  佐藤 2△△出来る   ○    ×    ○ 3△▽出来る   ×    ○    ○ 4▽□使える   ○    ○    × 5▽△使える   ×    ×    ○ 6□△が出る   ○    ×    ○ 7  計       3点    2点   4点 8 ・ ・   と、いう表をイメージしているのですが、 上記の表で○×部分がリスト(入力規則)になっているのであれば、 前回回答した式で出来ると思いますよ。 補足頂いたので、それに合わせた式に直すと、 B7=IF(COUNTA(B2:B6)=0,"",COUNTIF(B2:B6,"○")) 違うようであれば、また補足下さい。

kuwabara0
質問者

補足

レス、ありがとうございます。 下の説明と列と行が逆になりますが、 _|__A_|__B__|__C_|_D__| 1|_名前_|_ 問1__| _問2_|_合計_| 2|__あ_|__○__|__○_|__2_| 3|__い_|_____|____|____| 4|__う_|__×__|__×_|__0_ | 5|__え_|__○__|__×_|__1_ | 上のようなリストです。 ○、×は入力規則により選択、 それを、COUNTIF関数で合計に○の合計数を出しています。 ただし、以前のコメントで説明したとおり、この設定だと、 A3(い)の様に○、×ともに入っていないリストも合計が0と出てしまいます。 これを上記のA3(い)の様に、B3、C3が空の時はD3も空欄にしたいという事です。

回答No.4

>データが存在している場合の"○"の数と条件付けたいんですが、... という事は、データが存在していないときには数を表示しない。 はたまた、×の数は数えなくて良い。 という事でいいのでしょうか? その場合 単純に、 A1~A10に質問項目列、B1~B10に『○、×』のどちらかを入力する列、 それ以降、C1~C10、D1~D10、・・・と○×入力列が並んでいると仮定して、 B11=IF(COUNTA(B1:B10)=0,"",COUNTIF(B1:B10,"○")) を11行目にドラッグコピーしてみては? これは、あくまで○×を手入力もしくはリストなどでの入力を行うものとし、 入力していないセルはブランクの状態である必要があります。 もし関数等で○×を表示させている場合は、上記式では無理な為、 他の方法が必要です。その場合、○×部分にどういう関数式を入れているのか お教え下されば、他の方法も見つかると思います。

kuwabara0
質問者

補足

レス有り難うございます。 説明不足ですいません。 簡単な説明ですが、 A1に名前、そして、A2~A6にそれぞれデータがあれば、"○"か"×"を"入力規則"を使って、どちらか選択していく形式です。 そして、A7にCOUNTIF関数を使って、○の合計数を出しています。 ちなみに、○は1つ一点、×は0点という設定です。 そこで、COUNTIF関数を使って、検索条件を"○"で定義したんですが、 データが入っている場合は、問題なく合計数が出るんですが、 この方法だと"○"の数だけが条件なので、データが入っていないリストまで、合計が0になってしまいます。 データが入っていないリストはそのまま空欄になるように、したいんですが、Excel初心者で上手く出来ない状態です。 出来れば、関数を直接打って行くことはできないので、より簡単に何処でも再現できるように関数ナビゲーションに沿って定義していく方法があれば、ご教示お願いします。

noname#42041
noname#42041
回答No.3

COUNTIFS関数で我慢できませんか? この関数なら複数条件指定できますけど。

kuwabara0
質問者

お礼

レスありがとうございます。 COUNTIFS関数はExcel2007から追加された関数らしく、 私が使っているExcel2000では使えないようです。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

COUNTIF関数でのやり方ですか? ちょっと思いつかないです。すいません。 2つの条件(データがある、○である等々)を満たす同じ行であることが 必要です。 何らかの方法があるのかも知れないですが、私はもっぱらこの方法です。

kuwabara0
質問者

お礼

レスありがとうございます。 個人的に使い慣れている関数で出来たほうが、後で応用し易いかなと思い、 COUNTIF関数での方法をお願いしていました。 しかし、他の方法でも可能だと分ったので勉強になりました。 ありがとうございます。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

データの範囲をA1~A10 ○×の範囲を B1~B10 とした時に C1 =SUMPRODUCT((A1:A10<>"")*(B1:B10="○")) データがあって○の個数 C2 =SUMPRODUCT((A1:A10<>"")*(B1:B10="×")) データがあって×の個数 では、どうでしょうか?

kuwabara0
質問者

お礼

n-junさん、ありがとうございます。 SUMPRODUCT関数でも出来るんですね。 勉強になります。この関数自体まったく知りませんでした。 できれば、馴染みのあるCOUNTIF関数で出来たほうが後々また、 こういう機会が有ったとき、取り組みやすいのでできればCOUNTIF関数で 試したいと思っているんですが、COUNTIF関数では出来ないんでしょうか?

関連するQ&A

  • エクセル COUNTIF関数 (複数条件)

    エクセルの件で、たとえば、 COUNTIF 関数 A1からA5まで 例として上から あ、い、う、え、お と入力した場合 A7セルにCOUNTIF関数で 上記のすべての条件をカウントする場合は どのような関数式が正しいですか? COUNTIF(A1:A5."あ")+COUNTIF(A1:A5,"い")+ ・・・・・・・ のようにじ式を連続して5回 使うのが正しいほうほうですか? もっと賢い方法はありませんか? また、僕は初心者で詳しくありませんが、 NOTを混ぜて あいうえお以外をカウントする方法はありませんか? たとえば、  A1からA5までで、 「 あ、い、う え お  」 以外のひらがなが入力された場合に その数をカウントする方法 たとえば か き く などが 入力されていたら その数をカウントする方法は ありませんか? ついでに教えてほしいのですが、COUNTIFS(A1:A5,"×",A1:A5,"○") の計算式は正しいですか?エクセルに入力しても0が反映されます。 式がエラー表示されないので間違いではないとと思いますが、 ○ ×を入れても カウントがでません なぜでしょうか?

  • 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のCountif関数の条件に関数を使いたい

    Excel2002のCountif関数の条件に関数を使用することは可能でしょうか? 今日と同じ日付のセルの数をカウントしたく、以下のように記述したのですが、カウントされませんでした。 =COUNTIF(H1:H28,"=today()") 条件を日付で記述すればカウントされるので、セルの値は正しく入力されています。 よろしくお願いします。

  • countifの複数条件

    添付ファイルのような excelの表があります。 B列(日付)とC列の複数でそれぞれ条件を定めて、件数をカウントする関数を組みたいのですが上手く行きません。 作業列はもうけず、カウントできる関数をご教授下さい。 【複数条件は下記です】 (1)B列条件 2010/2/6以上、2010/2/16以下 (2)C列条件 B よろしくお願いします。

  • エクセル 関数 複数条件

    お世話になります。 エクセル2013ver.を使用しております。 複数条件の関数(COUNTIF DCOUNTA)等について教えてください。 ■行いたい事■ 添付画像左側リストより、 (1)みかん&たまごを購入した人の買い物リストを抽出したい (2)みかん&たまごを購入した人数をカウントしたい 以上、2つの事を行いたいのですがうまくできません。 良い方法があればご教示お願い致します。 近しい事をされているのも見受けられましたが、 行き詰まってしまいました。

  • エクセルで複数条件の書きかたを教えてください

    エクセルで表を作りましたが、複数条件でのカウント、及び合計の求め方を教えてください。 例) A列  B列  条件 日付  金額  ○or× などの場合、 6月1日から5日までの中で、条件が○のものの データ数、合計金額、を求めたいと思います。 いろいろ調べたり試したりしましたが、行き当たりません。 日付の設定がむずかしくて判りません。

  • エクセル関数のCOUNTIF検索条件にLEFTは使えますか?

    COUNTIFを使用してリストから任意の文字列をカウントしたいのですが、例えばPrint_Area内のセルにはXAAXX、XABXX、XACXX・・・というデータが入っているものとします。 Xに関しては変動しますので、ワイルドカードを使用し =COUNTIF(Print_Area,"*AA*") =COUNTIF(Print_Area,"*AB*") =COUNTIF(Print_Area,"*AC*")・・・ とすることでカウントすることができます。 ただ、AA、AB、AC・・・という既存の使用文字列リストがセルA1、A2・・・に存在している場合、それを使用したいのですが、 =COUNTIF(Print_Area,"*=LEFT(A1,2)*") =COUNTIF(Print_Area,"*=LEFT(A2,2)*")・・・ といった書式では=LEFT部分が条件として認識されません。 どなたか対策があればご教示いただければ幸いです。

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

    エクセルでCOUNTIFの条件で「〇が付いている個数を数える」などの条件を設定するときその〇の設定(入力)の方法を教えていただきたくお願いします。同様、(チェック)(バツ)の入力の方法も。〇の場合「まる」と入力して変換しましたが、カウントできませんでした。関数設定欄(セル)には0(ゼロ)と出ました。 オフィスはエクセル2010、ウインドウズはW7を使っています。よろしくお願いいたします。

  • Excelの関数COUNTIFについて

    ExcelにCOUNTIFを設定しています。 セル範囲【D9:Y9】には、 ○、△、×のいずれかが入力されています。 A9が空欄でなければ、○の数をカウントするには、 以下の数式でOKでした。  =IF(A9="","",COUNTIF(D9:Y9,"○")) この数式を○か△であればカウントするような数式に 変更したいのですが、なかなかうまくいきません。 ORを組み合わせればいいのでしょうか・・・ Excelのバージョンは2003です。 よろしくお願いいたします。

  • エクセル、COUNTIF関数で・・・

    COUNTIF関数で、検索条件は複数指定できないと参考書に書いてあったのですが、複数指定できる関数、または方法はないのでしょうか?

専門家に質問してみよう