![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ご質問の内容が大雑把だったので、勝手に解釈させていただきました(自分でも使えそうな形で)。
マクロです。「月別データ」が入力されているシートをアクティブにして実行してください。すると、「第n周目」シートが自動作成されます。
ちなみに「月別データ」は1行目は見出し行。2行目以降がデータ。A列に日付がシリアル値で入力されているものとします。
それから、「第n周目」のシートを自動作成する際に、すでに同名のシートが存在すると失敗します。同名のシートが存在する場合は事前に削除してから実行してください。
Sub sample()
Dim ws As Worksheet
Dim i As Long
Dim myRng As Range
Dim ymd As Date
Dim week As Long
Set ws = ActiveSheet
For week = 1 To 6
Set myRng = ws.Range("A1")
For i = 2 To ws.Cells(Rows.Count, "A").End(xlUp).Row
ymd = ws.Cells(i, "A").Value
If WorksheetFunction.WeekNum(ymd) - WorksheetFunction.WeekNum(DateSerial(Year(ymd), Month(ymd), 1)) + 1 = week Then
Set myRng = Union(myRng, ws.Cells(i, "A"))
End If
Next i
If myRng.Count > 1 Then
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "第" & week & "週目"
myRng.EntireRow.Copy Range("A1")
End If
Next week
End Sub
No.3
- 回答日時:
こんにちは!
元データの配置がどのようになっているのか判らないので、
やり方だけ・・・
↓の画像のように元データはSheet2にあるとし、Sheet1に表示するとします。
まずSheet1に月曜始まりのカレンダーを作成します。
A1に「年」、C1に「月」を入力するとカレンダーが表示される方法です。
F1セルに
=DATE(A1,C1,1)
という数式を入れておきます。(セルの表示形式は好みで!)
A4セル(セルの表示形式はユーザー定義から d としておく)に
=IF(MONTH($F$1-WEEKDAY($F$1,2)+COLUMN(A1)+7*(ROW(A1)-1))=$C$1,$F$1-WEEKDAY($F$1,2)+COLUMN(A1)+7*(ROW(A1)-1),"")
という数式をフィルハンドルで入れ、列・行方向にコピー!
これで月曜始まりのカレンダーが出来ました。
J4セルに
=IF(COUNT(A4:G4),SUMIFS(Sheet2!B:B,Sheet2!A:A,">="&MIN(A4:G4),Sheet2!A:A,"<="&MAX(A4:G4)),"")
という数式を入れフィルハンドルで下へコピー!
これで画像のような感じになります。
※ Sheet2のA列は10月以外の日付があっても構いません。m(_ _)m
![「エクセル:月別データを週別に振り分ける」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/4/667667_59dad7ceaf42c/M.jpg)
No.2
- 回答日時:
> 月別データを週別(~)に振り分ける
ってのは例えば、
10月 500
11月 680
って月別データを、
10月1週目 10/01-10/01 1日間なので500×1/31= 16.129…
10月2週目 10/02-10/08 7日間なので500×7/31=112.903…
10月3週目 10/09-10/15 7日間なので500×7/31=112.903…
10月4週目 10/16-10/22 7日間なので500×7/31=112.903…
10月5週目 10/23-10/29 7日間なので500×7/31=112.903…
10月6週目 10/30-10/31 2日間なので500×2/31= 32.258…
11月1週目 11/01-11/05 5日間なので680×5/30=113.333…
10月2週目 11/06-11/12 7日間なので680×7/30=158.666…
10月3週目 11/13-11/19 7日間なので680×7/30=158.666…
10月4週目 11/20-11/26 7日間なので680×7/30=158.666…
10月5週目 11/27-11/30 4日間なので680×4/30= 90.666…
とかってこと?
1発でそういう事する関数?は無いです。
指定した年月日から日付のシリアル値を作るDATE関数。
その年月1日目の曜日を取得するWEEKDAY関数。
DATEDIFF関数で、対象年月1日目の日付と、対象年月+1の月の1日目の日付の差を取ると、その年月の日数が計算できます。
1日目が何曜日か?ってのと当月の日数で、何週まであるか計算できるハズ。
そういうの組み合わせて計算って事になると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- その他(ビジネス・キャリア) 事業復活支援金の事前確認での売上高チェックについて 2 2022/03/26 13:47
- 人事・法務・広報 会社の行事などで休日労働させる時、振替休日が休日労働した日の前週or翌週以降、月をまたいだ場合の手当 3 2023/05/21 23:37
- Excel(エクセル) 当番表の作成 2 2022/06/15 07:40
- Excel(エクセル) エクセルの条件付き書式について エクセルでカレンダーを作りました。縦に日付が並んでいて、横にスケジュ 3 2022/10/10 15:32
- Visual Basic(VBA) 祝日を除いた月曜から土曜までの1週間分の日付行を選択し、別シートへカットアンドペーストしたい 13 2023/07/13 22:46
- Visual Basic(VBA) 日別の時間割を週別に分割して貼り付けたい Sheet1に日別で1ヶ月分縦に並んだ時間割を週別にシート 1 2023/07/10 16:01
- その他(恋愛相談) 元カノからの誘いって断れないものですか? 2週間前に元彼と遊びに行ってその時に来週か再来週の日曜ご飯 4 2022/10/28 15:12
- Excel(エクセル) Excelグラフについて 1 2023/05/12 16:26
- その他(恋愛相談) ケンカした後 3 2023/03/27 13:42
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】行の最終更新日を...
-
excelからexcelへの差し込み印刷
-
エクセル シート内の一番下の...
-
VLOOKUP関数について、文字列と...
-
エクセルの保存データが文字化...
-
エクセルで目次自動生成
-
エクセル IF関数を教えてくださ...
-
エクセルシートに保存できるデ...
-
エクセルでB4:E7,H8:I8,H9:I9,K...
-
エクセルで自動的に連続番号が...
-
エクセルで縦に順に数字入力を...
-
エクセル・平均の出し方
-
エクセルで経過年を表示したい。
-
エクセル表でフィールドに選択...
-
音声認識を利用したExcelの操作
-
起算日の定義
-
30日サイト90日サイトってなん...
-
手形は何で送ればいいですか?
-
手形の支払期日が土日のときは?
-
銀行スリップの意味がわからない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】行の最終更新日を...
-
excelからexcelへの差し込み印刷
-
VLOOKUP関数について、文字列と...
-
エクセルのフィルタ検索で、空...
-
エクセルでオートシェイプをデ...
-
EXCELで入力したセルを変更でき...
-
エクセルで縦に順に数字入力を...
-
エクセルVBAのリストボックスに...
-
ワードパッドからエクセルへ
-
MacのNumbersで列ごと、行ごと...
-
エクセル・平均の出し方
-
音声認識を利用したExcelの操作
-
エクセルシートに保存できるデ...
-
行数の違う表への数式のコピー...
-
【エクセル】フィルタの「再適...
-
エクセル2007 セルの条件表示
-
誕生日順の並び替え
-
エクセルで。A列の名前のよみ...
-
エクセル表でフィールドに選択...
-
エクセルのセルをENTERで指定箇...
おすすめ情報