• ベストアンサー

エクセル・COUNTIFで・・

困っています。 今、表作成をしているのですが、COUNTIFで出来るのかどうかを教えて頂ければと思います。 内容は・・こんな感じです。 ------------------ 1日  ○      ○      ×      ○      ○ ------------------- 2日  ○      ×      ○      ○      × ------------------- 3日  ×      △      ×      △      × ------------------- とあるとすると、○の個数をカウントしたいのです。 その時、○の個数を、「1日=一つ」と数えたいのです。 要するに、ここで言う○=7個ではなく、 ○がある日は2日なので、○=2個、×=3個、△=1個 というように。 日によっては、○がない日もあるので、日にちでカウントは出来ません。 どのようにしたら良いでしょうか? ご教授下さい。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.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)
回答No.3

私だったら次のようにします。 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)
回答No.2

(1) ○ △ × (1)   △ (2)     × (2) ○ (3)   △ × (3)   △ 合計   2 4 3 でいいのでは?

noname#129708
noname#129708
回答No.1

1日ずつCOUNTIFで抽出して、それを最後でSUMで出すしか無いと思います。

関連するQ&A