アプリ版:「スタンプのみでお礼する」機能のリリースについて

「色をつけたセルの合計値を出す」という関数はありますか?

分かりにくい説明で申し訳ないのですが、上に時間軸、下の行のセルに色をつけ、色をつけた項目がトータル何時間かという計算をしたいのです。

A 回答 (2件)

>「色をつけたセルの合計値を出す」という関数はありますか?


無いです。
ユーザ定義関数で自前で作ることになると思います。

色の付いたセルに入力されている数値ではなく、
別の場所に入力されている数値を合計するとか
あるいは、セルの位置関係において決まる数値を合計するというようなことですか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/01 10:39

マクロでないとだめでしょう。


列方向を時間とし、行方向が作業のとかで、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
(字下げが表示されないので見にくくてすみません)
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/01 10:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!