Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


67944 / 76734 ←次へ | 前へ→

【13337】Re:時間帯の重なり除去
回答  bykin  - 04/5/2(日) 12:12 -

引用なし
パスワード
   こんにちわ。

マクロやのうて、数式でしかも作業列を思いっきり使うベタベタの方法(^^;;

「前提条件」
●勤務時間は9:00〜22:00
●時間は10分単位

1.ご提示の例のように1行目からデータが入っている場合は1行目に1行挿入する。
  →例の場合はデータ範囲がA2:B5となる
2.C1に9:00、C2に9:10と入れて、C1:C2を選択してCB1までドラッグする。
  →CB1には21:50と表示される
3.C2に=IF(AND(ROUND($A2,6)<=ROUND(C$1,6),ROUND($B2,6)>ROUND(C$1,6)),1,0)
  と入れて、CB5までコピーする。
4.C6に=SIGN(SUM(C2:C5))と入れてCB6までコピーする。
5.答えを求めたいセルに=SUM(C6:CB6)*10と入れる。

もし、どんどんデータを追加していく必要があるんなら↓こんな方法も・・・

1.ご提示の例のように1行目からデータが入っている場合は1行目に2行挿入する。
  →例の場合はデータ範囲がA3:B6となる
2.C1に9:00、C2に9:10と入れて、C1:C2を選択してCB1までドラッグする。
  →CB1には21:50と表示される
3.C2に=SIGN(SUM(INDIRECT(ADDRESS(3,COLUMN(C2))&":"&ADDRESS(COUNTA($A$3:$A$65526)+2,COLUMN(C2)))))
  と入れてCB2までコピーする。
4.C3に=IF(AND(ROUND($A3,6)<=ROUND(C$1,6),ROUND($B3,6)>ROUND(C$1,6)),1,0)
  と入れて、CB6までコピーする。
5.答えを求めたいセル(この方法の場合はA1〜B2の範囲内のセルがベター)に=SUM(C2:CB2)*10と入れる。

2つめの方法では[ツール]-[オプション]の「編集」タブの中で「リスト形式および数式を拡張する」に
チェックが入ってて、データが4行以上あったら、A・B列にデータを追加すればC列以降の数式は自動的に入ります。

ま、ええ方法が出てくるまでの繋ぎってことで・・・(^^;;
ほな。
3 hits

【13332】時間帯の重なり除去 sこー 04/5/1(土) 20:27 質問
【13337】Re:時間帯の重なり除去 bykin 04/5/2(日) 12:12 回答
【13351】Re:時間帯の重なり除去 sこー 04/5/2(日) 21:23 質問
【13398】Re:時間帯の重なり除去 ちん 04/5/4(火) 13:29 回答
【13399】Re:時間帯の重なり除去 ちん 04/5/4(火) 13:57 発言
【13577】Re:時間帯の重なり除去 sこー 04/5/7(金) 23:42 お礼
【13404】Re:時間帯の重なり除去 Hirofumi 04/5/4(火) 16:21 回答

67944 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free