[[20040915115024]] 『COUNTIF』(へみ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『COUNTIF』(へみ)

検索条件を2つにすることはできますか?


 内容によるでしょうが、基本的には出来ると思います。
 具体的な例を挙げられたほうが、回答が得られやすいですよ。
 (川野鮎太郎)


 すいません。
 こんな感じのデータを(実は100列くらいある・・・)
    @  A  B  C
 A社  ○  ×  ○  △
 B社  ×  ○  ×  ?
 C社  △  ?  ○  ×
 D社  ○  △  △  ×
 A社  △  ○  ×  ○
 D社  ×  △  ○  ×
 C社  ○  ×  △  ○

 @=A社の○は何個
 @=A社の×は何個
 @=A社の△は何個
 @=A社の?は何個
 @=B社の○は何個
 ・
 ・
 ・
 C=D社の?は何個

 としたいんですけど・・・


 いっぺんに計算しないで各行の記号をそれぞれCOUNTIFで
計算してから、SUMIFでA社の○、A社の×・・・と計算
するのが簡易に思えます。
(KAMIYA)


 SUMIFで質問なんですけど、
 範囲は元データ(100列の・・・)
 検索条件は会社名で
 SUMIFはCOUNTIFの計算式の答えであっていますか?


 KAMIYAさんの言われるのは、分けて計算だから以下のような感じではないでしょうか。

     A   B   C   D   E     F        G         H        I       J
 1 A社	○  ×  ○  △     	2	1	1	0
 2 B社	×  ○  ×  ?     	1	2	0	1
 3 C社	△  ?  ○  ×     	1	1	1	1
 4 D社	○  △  △  ×     	1	1	2	0
 5 A社	△  ○  ×  ○     	2	1	1	0
 6 D社	×  △  ○  ×     	1	2	1	0
 7 C社	○  ×  △  ○     	2	1	1	0
 8
 9		          	○	×	△	?
 10	          	A社	4	2	2	0
 11	          	B社	1	2	0	1
 12	          	C社	3	2	2	1
 13	          	D社	2	3	3	0

 G1=COUNTIF($B1:$E1,G$9) として、J7までコピー
 G10=SUMIF($A$1:$A$7,$F10,G$1:G$7) として、J13までコピー

 違ってたらすいません。
 (川野鮎太郎)


 モデル(@、A、B・・・)
 も区別したいんですけど・・・
 (へみ)


 (*'ω'*)......ん?
 比較したいものをセルに入力して、上記の式の参照先を少し変えるだけで良いんでは?
                             F   G     H
 20 @=A社の○は何個    A社 ○   G20=SUMIF($A$1:$A$7,$F20,G$1:G$7)
 21 @=A社の×は何個   A社 ×   以下コピー
 22 @=A社の△は何個   A社 △
 23 @=A社の?は何個
 24 @=B社の○は何個
 ・
 ・
 ・
 25 C=D社の?は何個   D社 ?

 (川野鮎太郎)


 頭が悪くですいません。
 ゴチャゴチャになってきてしまいました。
 よかったらもう一度教えてもらえませんか?

 こんな感じのデータを(実は100列くらいある・・・)
   A   B   C    D     E
      モデル@  モデルA  モデルB モデルC
 1 A社   ○   ×    ○    △
 2 B社   ×   ○    ×     ?
 3 C社    △   ?    ○     ×
 4 D社   ○   △    △     ×
 5 A社   △   ○    ×     ○
 6 D社   ×   △    ○     ×
 7 C社   ○   ×    △     ○

 最終的に
 ↓ここ! モデル@  モデルA  モデルB  モデルC・・・
 A社 ○  1          2        0         2
    ×  1          3        1         2
    △  0          0        1         2
    ?  5          2        0         1
 ってしたいんです。


 上の最終的な結果はあってますか?
 A社で○でモデル2は、1個ですよね。
 =SUMPRODUCT(($A$2:$A$8=$A$17)*1,(B$2:B$8=$B17)*1)
             ~~~~~A社     ~~~~○
 (川野鮎太郎)


 最終的な結果はあってません。すいません。
 A17とB17ってどこですか?
 (へみ)


 う〜ん(/-_-\) ~~~~A社 としてるのは、私が試したセルがA17なので
 へみさんの表のA社のセルに変えてもらおうとマークしたつもりでした(^_^A;
 上のここ!の部分
 (川野鮎太郎)


 きゃー出来ました。
 ありがとうございました。
 本当に感謝感激です。
 また、お願いします。
 (へみ)


ちなみに意味聞いてもいいですか?
 (へみ)


 Σ(- -ノ)ノ エェ!? 私に意味を聞くのですか?_/ ̄|○ il||li
 私は説明と解説が一番苦手なのに(^_^A;

 SUMPRODUCT関数は、配列の積の合計を出すものです。(詳しくはエクセルのヘルプ参照)
 それを利用して、A列がA社の行と一致した行、且つB列が○の行と一致したものを掛けています。
 説明はこれぐらいで勘弁してください_/ ̄|○ il||li
 (川野鮎太郎)

 最近はずしまくっているKAMIYAです。
おわびに数式の説明ぐらいはさせてください。
SUMPRODUCT関数
 配列(行列)同士の積和を行う関数です。
 積和とは掛け算を行った後、その掛け算の答えを足していく計算をさします。
 =SUMPRODUCT({1,2},{3,4})ですと、{1,2}と{3,4}の二つの配列の積和をします。
 実際の計算はそれぞれの配列の第一項、第二項同士を掛け算し(1*3 と 2*4)
 その答えを加算していきます。(3+8=11)
 
=SUMPRODUCT(($A$2:$A$8=$A$17)*1,(B$2:B$8=$B17)*1)
 川野さんのこの式は論理式とSUMPRODUCT関数の組み合わせということになります。
 ($A$2:$A$8=$A$17) の部分は
 「$A$2:$A$8の範囲の値はそれぞれ$A$17と等しいか、否か」を判断する「論理式」です。
 結果は等しければTRUE、否ならFALSEが返ります。
 ($A$2:$A$8=$A$17)の部分ではTRUEとFALSEの配列になります。
 数式を入力した状態で数式バーにて($A$2:$A$8=$A$17)の部分をマウスなどで選択、
 反転表示させた上で F9 キーを押すことで計算結果(配列)の状態が確認できます。
 (この場合、Enterを押してしまうと計算結果が固定されてしまうので
 Escキーで部分計算の処理をキャンセルして抜けてください。)
 TRUE、FALSEの論理値を引数に与えた状態ではSUMPRODUCT関数はうまく計算できませんので、
 *1で論理値の配列を数値の配列に変換します。
 TRUE、FALSEの配列が、1、0の配列になります。結果的に($A$2:$A$8=$A$17)*1
 の数式は$A$2:$A$8が$A$17と等しいかどうかによって、1か0かの配列になります。
 (B$2:B$8=$B17)*1についても同様です。
   A   B
      モデル@  
 2 A社   ○   
 3 B社   ×   
 4 C社    △   
 5 D社   ○   
 6 A社   △   
 7 D社   ×   
 8 C社   ○   
 この部分でだけ考えますと、
($A$2:$A$8=$A$17)*1 は$A$17がA社であるとき {1;0;0;0;1;0;0}
(B$2:B$8=$B17)*1     は$B17 が○ であるとき {1;0;0;1;0;0;1}
この二つの積は
1*1=1
0*0=0
0*0=0
0*1=0
1*0=0
0*0=0
0*1=0
つまり、{1;0;0;0;0;0;0}という配列になります。
SUMPRODUCTは最終的にこの配列の数字をすべて足し算するので
1+0+0+0+0+0+0=1
という計算結果になります。
(KAMIYA)

 KAMIYAさん、大きなフォローありがとうございますREPT("m(_ _)m",100)
 さすがとしか言いようの無い見事な説明で良くわかります。^^
 自分で提示しておきながら、(・0・*)ホ,(゜0゜*)ホ--ッッ!!!と納得(^_^A;
 今後ともよろしくお願いします。
 (川野鮎太郎)

 おはようございます。
 とても良くわかりました。
 ありがとうございます。
 またよろしくお願いします。
 (へみ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.