- 締切済み
countif関数の使い方について
お世話になります。 下記の数式の{}がどういう風に計算されてるのか 教えてください。 A 1りんご 2りんご 3みかん 4りんご =SUM(COUNTIF(A1:A4,{"りんご","みかん"})) 自分なりに調べて配列数式?を意味してるということまでは分かったのですが どういう風にA1:A4と式が組まれてるのかがいまいちピンときません。。 またcountif関数がorやand関数と組み合わせできない理由も 配列が関係してるんでしょうか? 詳しい方よろしくお願いします。 ※当方エクセル初心者です
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- bunjii
- ベストアンサー率43% (3589/8249)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
>自分なりに調べて配列数式?を意味してるという…… { } は配列定数と呼ぶので、配列数式の一種であるとは言えると思います。 >どういう風に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 つのセル範囲を指定しているだけです。 何でもまずはインターネットなどでご自分で調べてみるということは、たいへん結構なことと思います。誰かに質問することがあっても、効率的に学べると思います。 今後は是非、ヘルプもたくさん見てください。分からない記述が含まれていることも多くあると思いますが、そういう箇所は、読み飛ばすのがコツです。知識量が増えてから後年、改めて読み直すと、昔よりよく理解できている自分に気付いたりしますね。
お礼
お返事が遅くなりすみません! 回答ありがとうございます 図をつけて頂けると分かりやすいなぁと感じます 書いて頂いてるヘルプ等色々見ながら ちょっとずつ勉強していきます。。 ありがとうございました
- keithin
- ベストアンサー率66% (5278/7941)
はて?? >どういう風に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のように)」のかについての、公式の情報(ヘルプなど)はありません。 なので配列計算は「一般的なやり方」じゃなく、誰かに教わって口伝でマスターしたり、「数式の検証」などをつかって自力でつかえるようになるしか無いワケです。
お礼
お返事が遅くなり、すみません! 回答ありがとうございます エクセルのバージョン・・次回から明記します<(_ _)> ちなみに2007です 「数式の検証」試してみました! とても参考になりました ありがとうございます
お礼
お返事が遅くなりすみません! 回答ありがとうございます 画像を付けて頂けると分かりやすいですね でもまだまだ勉強不足だなぁと感じます。。 とても参考になりました ありがとうございました!