- ベストアンサー
エクセル・COUNTIFで・・
困っています。 今、表作成をしているのですが、COUNTIFで出来るのかどうかを教えて頂ければと思います。 内容は・・こんな感じです。 ------------------ 1日 ○ ○ × ○ ○ ------------------- 2日 ○ × ○ ○ × ------------------- 3日 × △ × △ × ------------------- とあるとすると、○の個数をカウントしたいのです。 その時、○の個数を、「1日=一つ」と数えたいのです。 要するに、ここで言う○=7個ではなく、 ○がある日は2日なので、○=2個、×=3個、△=1個 というように。 日によっては、○がない日もあるので、日にちでカウントは出来ません。 どのようにしたら良いでしょうか? ご教授下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 データが日にちがA列、記号がB列の1行目からにあるとします。 また、1日の行数が必ず5行という前提です。 D1に「○」、E1に「×」、F1に「△」とカウントする記号を入力しておき、2行目に数値を表示するとします。 D2に、 =SUMPRODUCT(SIGN(COUNTIF(OFFSET($B$1:$B$5,(ROW(A1:INDEX(A:A,3))-1)*5,),D1))) と入力して、E2:F2にコピーします。 数式中のINDEX関数の第2引数の「3」は日数です。質問欄の例に従って、とりあえず「3」としておきました。 実際のデータから適宜変更して下さい。 もし、A列に5行ごとに日数が入力してあれば、 =SUMPRODUCT(SIGN(COUNTIF(OFFSET($B$1:$B$5,(ROW(A1:INDEX(A:A,COUNTA($A:$A)))-1)*5,),D1))) という数式でもOKです。 この場合は、日数が自動的に判断されます。
その他の回答 (3)
- s_yoshi_6
- ベストアンサー率73% (1113/1519)
私だったら次のようにします。 A列を日付、B列を○×△記入欄、C~E列を作業欄とする。 1~5行が1日、6~10行が2日、…、151~155行が31日とする。 1)C1に =IF(COUNTIF($B1:$B5,"○")>0,1,0) と入力して、それをE1までドラッグコピー。 "○"の部分を書き直して、 D1:=IF(COUNTIF($B1:$B5,"×")>0,1,0) E1:=IF(COUNTIF($B1:$B5,"△")>0,1,0) とする。 (B1:B5の範囲にそれぞれの記号が一つでもあれば「1」、なければ「0」が返されます) 2)C1からE5までを範囲選択して155行目までドラッグコピー。 (5行ごとに上記のような数式が入ります) 3)C156に =SUM(C1:C155) として右にドラッグコピー。 D156:=SUM(D1:D155) E156:=SUM(E1:E155) とする。 (それぞれの記号が出現する日数が出て来ます) 以上でC156:E156に求める数値は出てきますが、C~E列が目障りであれば非表示(C~E列を範囲選択して右クリック→「表示しない」)にして、適当なセルで、 ○の出現日数:=C156 ×の出現日数:=D156 △の出現日数:=E156 のようにされると良いと思います。
- tak2003
- ベストアンサー率32% (174/540)
(1) ○ △ × (1) △ (2) × (2) ○ (3) △ × (3) △ 合計 2 4 3 でいいのでは?
1日ずつCOUNTIFで抽出して、それを最後でSUMで出すしか無いと思います。