• ベストアンサー

エクセルで6行おきのセルを集計する方法

エクセルで6行おきにセルを集計する方法を調べています。 文字列と数値が混在する場合の集計方法が分からなかったので質問しました。 勤怠票の合計を出すのに使用するのですが、定時8時間勤務の場合は○、深夜八時間勤務の場合は◎、定時勤務で8時間に満たない場合は数値を入力しています。各セルには○か◎か数値のどれかが入ります。 ○と◎は8時間としてカウントします。 例えばA1セル=○、A7セル=◎、A13セル=6の入力の場合、合計に22が集計されるようにしたいです。 皆様のお知恵をお貸しください。 宜しくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

A列の6行毎のセル以外に○・◎が設定され無い前提で次の方法は如何でしょうか。 数式は配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =SUM(COUNTIF(A1:A100,{"◎","○"})*8)+SUM(IF(MOD(ROW(A1:A100),6)=1,A1:A100))

aiue-o
質問者

お礼

有難う御座います! mu2011さんの方法を用いましたら出来ました! 配列数式はあまり詳しくなかったので、これを機会に勉強したいと思います。 どうも有難うございました♪

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

集計用の列を別途作ってしまった方が手っ取り早いのでは?合計は、その列の計を参照すればいいわけで・・。 そうすれば、たとえばD列に数字か◎か○があるとして、   =IF(MOD(ROW(),6)=1,IF(OR(D1="○",D1="◎"),8,D1),0) などとして集計元数字は作れると思います(MODの結果を1と比較している部分は0~5で実際の表に合わせてください)。

aiue-o
質問者

お礼

集計用の列を作る・・のは出来たらやりたくなかったのです。 なるべく関数を組み合わせてやりたかったので。 回答いただきありがとうございました。

  • dummyplug
  • ベストアンサー率58% (134/230)
回答No.2

なんで6行おきになっているのかが質問の内容から読み取れませんでした。 仮にこんな風だと考えてみました。 ・各行が一日分の勤務データ ・Aの列に"○"とか数字とかが入力されている ・Aの列が空欄の時0が入力されたのと同じ扱いにする ・A1-A31までに一月分(31日分)のデータが入る ・A32に合計を表示する そしたら、まずB1に式を入力します。 =IF($A1="○", 8, IF($A1="◎", 8, $A1)) すると、A1セルの内容に応じた数字がB1に入ります。 B1セルの内容をB2からB31にコピーします。それぞれ、例えばB10セルの式はA10セルの内容を参照した数字が入るようになります。 あとはA32にB1からB32の合計が入るようにすればOKです。 =SUM(B1:B31) Bの列が目障りなら、列を非表示にしておきます。 どうでしょうか。

aiue-o
質問者

お礼

計算用の行を別に使ってというのが他の方の回答でも出ていたのですが、 なるべく一つの列内で計算を行いたかったので・・ 計算用の行を作ってその行を非表示に・・というやり方を用いなかったのは、社内ルールで非表示は極力用いないというルールがあるからです。 情報が書ききれてなくてすみませんでした。 回答ありがとう御座いました。

関連するQ&A