重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

年間スケジュールを作成しています。

下記のような感じで、1つの案件に何個もの納期があります。
15日以上離れている場合は区切りたいです。
一度ここでグループ分けしてからガントチャート表に反映します。

手動でグループ分けしている為、何か簡単な方法あれば教えてください。

A案件 
1/16  1/16-1/21
1/18 →3/1-3/1 
1/21
3/1

B案件   開始-終わり
1/21   1/21-1/21
2/17 → 2/17-2/17 
3/15   3/15-3/16
3/16

A 回答 (2件)

表の作り方や、案件の登録方法によって、


マクロの記述内容は変わると思います。

とりあえず、下記のコードの場合、
1つの案件でしたらグループ分けできます。

力不足でコードは決して簡単には作れませんでしたが、
ご参考までに。

↓↓

Sub GroupDevision()
Dim i As Long, cnt As Long, maxRow As Long
Dim minDay As Date, maxDay As Date
Dim Data() As Variant

' 最終行を取得します
maxRow = Cells(Rows.Count, 1).End(xlUp).Row

' グループ分けデータを格納する配列を定義します
ReDim Data(1 To maxRow - 1, 1 To 1)

' 一番古い日付を設定します
minDay = Cells(2, 1).Value

' 最終行までデータを繰り返し処理します
For i = 2 To maxRow
' 開始日から15日以上離れている場合
If Cells(i, 1) >= minDay + 15 Then
cnt = cnt + 1

' グループ分けの中で一番新しい日付を設定します
maxDay = Cells(i - 1, 1)
' グループ分けデータに格納します
Data(cnt, 1) = Format(minDay, "m/d") & "-" & Format(maxDay, "m/d")
' 次のグループの中で、一番古い日付を設定します
minDay = Cells(i, 1)

' もし最終行の場合
If i = maxRow Then
cnt = cnt + 1

' グループ分けデータに格納します
Data(cnt, 1) = Format(minDay, "m/d") & "-" & Format(minDay, "m/d")
End If
End If
Next

' グループ分けデータをB列に貼り付けます
Range(Cells(2, 2), Cells(2 + cnt, 2)) = Data
End Sub
「エクセル マクロ 数式 大日程表作成につ」の回答画像2
    • good
    • 0
この回答へのお礼

すごいです!!思っていた通りになりました。
本当にありがとうございます!助かりました!

お礼日時:2020/12/23 15:14

あのね それで回答者にどうしろと ?


まず自分で考えて コードを書くべきだ
少なくとも 日本語でコードを書いてみろ って事
    • good
    • 0
この回答へのお礼

マクロでなくてもいいんです。
ただ
同じ用途名で複数ある納期をグループ分けしたい。
(15日以内ならまとめる。15日以上離れたら分ける)
その為に何か簡単な方法あれば知りたい。

あまりパソコン使わないのでわかりずらい説明ですいません。
わからなければ無視していただいて結構です。

お礼日時:2020/12/17 15:42

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