• ベストアンサー

EXCELで色による計算は?

エクセルで業務日誌を作ろうとしております。 内容は次のとおりです。 列に時間を割り当て、セルに色をつけるだけで業務時間を算出する。 下記の時間帯によって業務時間をそれぞれ表示する。 時間帯 1 5:00~8:30&17:15~20:00 2 8:30~17:15 3 20:00~5:00 例) 1 A列を0時として5分単位でB列を0時05分、C列を0時10分と24時までする。 2 業務時間が0時から1時20分までなら、A1からQ1まで色をつける。 3 色のついた部分だけの業務時間を表示し、各時間帯によっても表示する。 無理かと思いましたが、他に何か良い考え等がいただければと思い、質問させていただきました。よろしくお願いします。

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

  • ベストアンサー
  • 0shiete
  • ベストアンサー率30% (148/492)
回答No.6

#1です。 列数が足らない問題については、行を使えば解決できます。 (人数が256人以上だとまた問題ですが(笑)) sumif関数が使えると思います。 A列は時刻を5分刻みで記入していく。 B1セルに従業員の名前を入れる B2セルに =sumif(b3:b100,"=5",b3:b100) と入れます。 b3から下のほうへ向かって 適当に5を入力してみてください。 B2セルに合計が表示されると思います。 あとはB列にセルの書式設定で、値が5だったら色をつけるように しておけばOKです。 また、わからなければ、補足ください。

jun11jun
質問者

お礼

ありがとうございます。 さっそくやってみたいと思います。 初めてこの「教えて!goo」に質問をしましたが、とても良心的な方ばかりで、これからもぜひ活用させていただきます。

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • 0shiete
  • ベストアンサー率30% (148/492)
回答No.7

#1です。たびたびすみません。 #6に追加ですが、 文字「5」とセルの色は同じ色にしたほうが 文字が見えなくなるので見た目がよいです。

jun11jun
質問者

お礼

わけのわからないような質問!?に回答いただきまして、ありがとうございましたm(__)m

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

#4です。VBAは「エクセル用のVB」で組むプログラムです。 例えばSheet1の第1行目のABCDE列の色を黄色にして下記を実行すると、5列X5分の25と計算できて、表示します。 これを各行について繰り返すと、各行の色で表す時間が読み取れます。(普通はこんなことはしませんが) Sub test01() t = 0 For i = 1 To 256 If Worksheets("sheet1").Cells _(1,i).Interior.ColorIndex <> 6 Then Exit For t = t + 5 Next i MsgBox t End Sub

jun11jun
質問者

お礼

またまたすばやいご回答ありがとうございます。 私のようなエクセル初心者にはチョット難しいですね(^^ゞ 他の方法がないか、ない知恵をしぼってみます。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

エクセルは横に256列までだと思いますが 1日24時間、24*60/5=288列必要になるのに どうするのですか。 入力者が勤務時間などに、色を付けるならそのために横にスクロールするのも面倒くさい。 使う(入力する)人のことを考えると良くないと思う。 アイデアとしては成り立つと思う。VBAでセルの色を判別して5分単位の時間に計算は可能です。 勤務時間表のようなものが別途できていて表示するのなら 帯(棒)グラフをエクセルに作らせることは出来ると思う。

jun11jun
質問者

お礼

早速のご回答ありがとうございます。 列の件については深く考えておりませんでした(汗) 無知なもので、VBAと言うのが分かりません… #1さんのお礼に書いたとおり、補足をさせていただきます。 VBAとはどういうものか、お教え願えれば幸いです。

すると、全ての回答が全文表示されます。
  • wildcard
  • ベストアンサー率54% (54/100)
回答No.3

マクロを利用すれば、ご希望の処理はできると思いますが… その前にExcelの列数は、最大でIV列まで(256列)しかありません。 5分毎に24時間表示するには、12×24=288列必要になるハズです。 よって残念ながら、1つのシートだけでは無理です。 2つのシートを使うか、そうでなければ5分毎ではなく10分毎にするとか、 24時間ではなく21時間以下にするといった工夫が必要と思われます。 または、#1さんの言われるように、開始時刻と終了時刻を入力してグラフ化させる方がよろしいかと…

jun11jun
質問者

お礼

早速のご回答ありがとうございます。 マクロはチョット苦手で… 良く考えたら、列数が足りないんですね(汗) 説明の補足を#1さんのお礼に載せましたが、開始時間と終了時間が複数あるような状況です。

すると、全ての回答が全文表示されます。
  • free-goo
  • ベストアンサー率18% (28/155)
回答No.2

あまり理解出来ていないので・・・・・・・・・・・ A1からQ1に色をつける 先に回答されている方と同様にグラフのほうがよいでしょう 条件によって色をつけるのであれば「書式」「条件付書式」は どうでしょうか??? ご参考に

jun11jun
質問者

お礼

早速のご回答ありがとうございます。 わかりづらい質問で大変申し訳ありませんでした。 #1さんのお礼にも書いたとおり説明の補足をいたします。 「条件付書式」というのをはじめて知りました。今後、何かに使わせていただきます。ありがとうございました。

すると、全ての回答が全文表示されます。
  • 0shiete
  • ベストアンサー率30% (148/492)
回答No.1

勤務時間の管理が目的だと思いますが、 2つの列を使って、開始時刻、終了時刻のみを入力するのでは 目的は達成できないのでしょうか? 色をつけるというのが、あとの運用を考えてもたいへんだと 思うのですが? たとえば、ある時間帯の働いている人数がひと目でわかるように など、視覚的に把握することが必要なのであれば、 グラフを使うこともできますし。 (Excelでフローティング横棒というグラフを作ることができます。 試してみてください)

jun11jun
質問者

お礼

早速のご回答ありがとうございます。 説明不足で申し訳ありません。 1日の内で休憩時間等もありますので、例えば6時から9時まで勤務をして、9時から10時まで休み、10時から12時まで勤務、12時から13時まで休み、13時から15時まで勤務、15時から16時まで休み、16時から20時まで勤務、といった具合に、開始時間も終了時間もばらばらです。 日報という形で、1日毎に1シートを作るという具合です。

すると、全ての回答が全文表示されます。

関連するQ&A