• ベストアンサー

Excelの計算で、セルに数値を入力せずに足し算できますか?

「色をつけたセルの合計値を出す」という関数はありますか? 分かりにくい説明で申し訳ないのですが、上に時間軸、下の行のセルに色をつけ、色をつけた項目がトータル何時間かという計算をしたいのです。

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

  • ベストアンサー
  • mz80
  • ベストアンサー率46% (13/28)
回答No.2

マクロでないとだめでしょう。 列方向を時間とし、行方向が作業のとかで、1つのセルを30分とかにして、作業実施時間を色で塗っている。というようなことですか? もしそうであれば、こんな感じのマクロです。 Option Explicit Sub ColorCellCount() Dim CellFun As Integer Dim KaisiGyo, KaisiRetu As Integer Dim SyuryoGyo, SyuryoRetu As Integer Dim KekkaRetu As Integer Dim Iro As Integer Dim i, j As Integer Dim Cnt As Integer 'ここから==>ご自身の表に合わせて数値を調整してください CellFun = 30 '1個のセルが30分を表す KaisiGyo = 2 '2行目から数える KaisiRetu = 3 '3列目から数える SyuryoGyo = 6 '6行目まで数える SyuryoRetu = 20 '20列まで数える KekkaRetu = 2 '数えた結果を3列目に格納 Iro = 1 '塗りつぶしている色は黒 '<==ここまで '行数分実行 For i = KaisiGyo To SyuryoGyo '列数分実行 Cnt = 0 For j = KaisiRetu To SyuryoRetu '塗りつぶし色だったらカウントアップ If (Cells(i, j).Interior.ColorIndex = Iro) Then Cnt = Cnt + 1 End If Next j '1個cellの表す分で時間を計算 Cells(i, KekkaRetu).Value = CStr(Int((Cnt * CellFun) / 60)) & "時間" & CStr(Int((Cnt * CellFun) Mod 60)) & "分" Next i End Sub (字下げが表示されないので見にくくてすみません)

noname#20975
質問者

お礼

質問の意味を分かっていただきありがとうございました(^^) やはりマクロじゃないと無理でしたか。 こんなのがすぐに分かられるとはすごい知識をもってらっしゃるんですね。尊敬致します。 マクロよく分からないのでもう少し勉強してみます。 ありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>「色をつけたセルの合計値を出す」という関数はありますか? 無いです。 ユーザ定義関数で自前で作ることになると思います。 色の付いたセルに入力されている数値ではなく、 別の場所に入力されている数値を合計するとか あるいは、セルの位置関係において決まる数値を合計するというようなことですか?

noname#20975
質問者

お礼

ご回答ありがとうございます。 やりたいことは、ご回答者NO.2の方が言われている通りです。

関連するQ&A