• 締切済み

countif関数の使い方について

お世話になります。 下記の数式の{}がどういう風に計算されてるのか 教えてください。 A 1りんご 2りんご 3みかん 4りんご =SUM(COUNTIF(A1:A4,{"りんご","みかん"})) 自分なりに調べて配列数式?を意味してるということまでは分かったのですが どういう風にA1:A4と式が組まれてるのかがいまいちピンときません。。 またcountif関数がorやand関数と組み合わせできない理由も 配列が関係してるんでしょうか? 詳しい方よろしくお願いします。 ※当方エクセル初心者です

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>どういう風にA1:A4と式が組まれてるのかがいまいちピンときません。 例題の関数を各パートでどのような動作になっているかを検証すると貼付画像のようになると思います。 >またcountif関数がorやand関数と組み合わせできない理由も配列が関係してるんでしょうか? 配列とは関係なく検索条件の論理式を定義できないためと思います。

soires
質問者

お礼

お返事が遅くなりすみません! 回答ありがとうございます 画像を付けて頂けると分かりやすいですね でもまだまだ勉強不足だなぁと感じます。。 とても参考になりました ありがとうございました!

回答No.2

>自分なりに調べて配列数式?を意味してるという…… { } は配列定数と呼ぶので、配列数式の一種であるとは言えると思います。 >どういう風にA1:A4と式が組まれてるのかがいまいちピンときません。。 Excel のヘルプの「関数リファレンス(関数参照)」にて、SUM、COUNTIF、OR、AND 関数をそれぞれ調べてください。 COUNTIF の第 1 引数には、セル範囲を指定することが分かります。したがって「A1:A4」というのは単にそういう 1 つの範囲のことであり、そのように書くしかないということです。 >またcountif関数がorやand関数と組み合わせできない理由も配列が関係してるんでしょうか? 長く複雑な数式中では、両者がたまたま同居している場合もあるかもしれません。しかしご質問の「りんごまたはみかんを数える」という計算で OR 関数は、本来、出てくる必要がありません。OR のページを見ていただければ載っているはずですが、OR は TRUE(真)または FALSE(偽)という論理値を返す関数です。 また、関数の書式の面でも、OR は COUNTIF とはなかなか、かみ合いません。No.1 さんは「配列計算されない」との言い回しをされていたりもしますが、各関数の癖みたいなものと言いますか…。中級レベル以上のスキルになったら、改めて考えてみてはいかがでしょう。 数えるためにあえて OR を使ってみるなら、次の B1 セルのような数式は、正しく計算します。 B1 =0+or(A1={"りんご","みかん"})   あるいは   =(a1="りんご")+(a1="みかん") B5 =sum(b1:b4) D1 =sum(countif(a1:a4,{"りんご","みかん"})) ※ B1 をコピーして B1:B4 のセル範囲に貼り付け 配列と言う時点で既に、初級者には難しいと思います。SUM のページを見ても、配列が使えるということだけしか書いてないようです。手元の Excel 2007 の場合。 次の 4 式は、みんな同じ計算になります。幾つを返すのか、実際にセルに記入してみてください。 =4+5 =sum(4,5) =sum(3+1,3+2) =sum(3+{1,2}) つまり D1 の数式は、次の 2 式と同じであることが分かります。 =sum(countif(a1:a4,"りんご"),countif(a1:a4,"みかん")) =countif(a1:a4,"りんご")+countif(a1:a4,"みかん") ご覧のとおり、「A1:A4」は、単にそういう 1 つのセル範囲を指定しているだけです。 何でもまずはインターネットなどでご自分で調べてみるということは、たいへん結構なことと思います。誰かに質問することがあっても、効率的に学べると思います。 今後は是非、ヘルプもたくさん見てください。分からない記述が含まれていることも多くあると思いますが、そういう箇所は、読み飛ばすのがコツです。知識量が増えてから後年、改めて読み直すと、昔よりよく理解できている自分に気付いたりしますね。

soires
質問者

お礼

お返事が遅くなりすみません! 回答ありがとうございます 図をつけて頂けると分かりやすいなぁと感じます 書いて頂いてるヘルプ等色々見ながら ちょっとずつ勉強していきます。。 ありがとうございました

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

はて?? >どういう風にA1:A4と式が組まれてるのかがいまいちピンときません。。 COUNTIF(A1:A4,"りんご") でA1:A4のセル範囲の中からリンゴと書かれてるセルの個数を数える、ってのは流石に判りますよね。 いま計算したいのは =SUM(COUNTIF(A1:A4,"りんご"), COUNTIF(A1:A4,"みかん")) だという事も判りますね。 ご利用のエクセルのバージョンも不明のご相談ですが、 >※当方エクセル初心者です と前面に出すのでしたら、ぜひ「数式の検証」というエクセルの機能を使って、謎の数式(ただし「正確な数式」を観察すること)が一体どんな具合に計算を進めているのか、じっくり観察してください。何度も繰り返し観察する事で、だんだん仕組みも分かってきます。 さておき。 COUNTIF(A1:A4,{配列要素1,配列要素2}) のように配列計算をさせることで、エクセルは {要素1を用いてCOUNTIFした結果,要素2を使ってCOUNTIFした結果} という配列を返すように出来ています。具体的にはそれぞれ3個と1個ですね。{3,1}という風になります。 あとは =SUM({3,1}) のように、SUM関数は配列要素を「配列計算しないで」、自分の仕事つまり「合計を求める」という計算をします。 OR関数やAND関数が使えないのも、SUM関数が「配列を食べさせても配列計算をしてくれない」のと、まったく同じ理由からになります。 いったいどの関数が「配列を配列計算してくれる関数(COUNTIFやSUMIFなどのように)」で、「この関数はそうではない(SUMやAND、ORのように)」のかについての、公式の情報(ヘルプなど)はありません。 なので配列計算は「一般的なやり方」じゃなく、誰かに教わって口伝でマスターしたり、「数式の検証」などをつかって自力でつかえるようになるしか無いワケです。

soires
質問者

お礼

お返事が遅くなり、すみません! 回答ありがとうございます エクセルのバージョン・・次回から明記します<(_ _)> ちなみに2007です 「数式の検証」試してみました! とても参考になりました ありがとうございます