• 締切済み

エクセルでの質問です。お願いします。

シート1には縦軸の所に名前が70人くらい最初から入れてあり 横軸には日にちを31日まで最初から書いてあり 日にちと名前が合うところにinとout時間をいれると(画像参照) 日付が合うシートの表に自動的に上に詰めて名前とinとoutが反映されるようにしたいのですが・・ できなく、困っています。 しかも9時~11時と12時~15時と16時以降と 三つに分かれてそれぞれに反映したいです。 シート2(10月1日)     9-11   in  out   12-15   in  out  16~    in  out  1   山田太郎  9  18                    斎藤四郎 17  23 2 シートは31日分あります。出勤時間を入れるシート(ここではシート1)そして 日にち分のシート31枚で合計32シートで構成されるものを考えています。 日にち(10月2日とか)のシートを見ればその日に誰が何時に出勤するかわかるようにしています。 何卒よろしくお願いいたします。

みんなの回答

回答No.1

中間報告、、、 Sub ExtractColumns() Const xMaster = "Sheet1" Const xEndMonth = 31 Dim xSheet As Worksheet Dim xRange As Range Dim xLast As Long Dim kk As Long Dim nn As Long Dim xNoData As Boolean Dim xReply As Integer On Error Resume Next 'Application.ScreenUpdating = False Application.DisplayAlerts = False xReply = MsgBox("始めマッセ??", vbYesNo) If (xReply = vbNo) Then Exit Sub xNoData = True MsgBox "現在のシート数:" & Worksheets.Count 'xMaster以外を削除 For Each xSheet In Worksheets If (xSheet.Name = xMaster) Then xNoData = False Else xSheet.Delete End If Next If (xNoData) Then 'Worksheets.Add before:=Worksheets(1) 'Worksheets(1).Name = xMaster MsgBox "No Data found!!" End If '日単位のシート作成 For nn = 1 To xEndMonth Worksheets.Add after:=Worksheets(Worksheets.Count) Set xSheet = Worksheets(nn + 1) xSheet.Name = nn & "日" With Worksheets(1) xLast = .Cells(Rows.Count, "A").End(xlUp).Row .Range(.Cells(1, "A"), .Cells(xLast, "B")).Copy Destination:=xSheet.Range(xSheet.Cells(1, "A"), xSheet.Cells(xLast, "B")) kk = 3 + (nn - 1) * 2 .Range(.Cells(1, kk), .Cells(xLast, kk + 1)).Copy Destination:=xSheet.Range(xSheet.Cells(1, "C"), xSheet.Cells(xLast, "D")) End With '出勤予定以外を削除 xLast = xSheet.Cells(Rows.Count, "A").End(xlUp).Row For kk = xLast To 5 Step -1 If Application.WorksheetFunction.CountA(xSheet.Range("C" & kk & ":D" & kk)) = 0 Then xSheet.Rows(kk).Delete End If Next kk xLast = xSheet.Cells(Rows.Count, "A").End(xlUp).Row MsgBox ("Sheet:" & xSheet.Name & vbNewLine & "Rows.Count:" & xLast) Next nn MsgBox "現在のシート数:" & Worksheets.Count GoTo Skip 'シフト分割処理 'to be continue... Skip: Worksheets(2).Select Application.ScreenUpdating = True Application.DisplayAlerts = True Application.CutCopyMode = False End Sub

nb75gfmv73
質問者

お礼

回答ありがとうございます。 しかしながらこれは何をしているのでしょうか? マクロってやつですか?全くの素人でどうしていいのか…すみません。 自分でやったのは =IF(SUMPRODUCT((記入!$D$5:$D$120>=9)*(記入!$D$5:$D$120<=11)*(記入!$B$5:$B$120=$B$1))>=ROW(D1),INDEX(記入!$D$1:$D$120,SMALL(IF((記入!$D$5:$D$120>=9)*(記入!$D$5:$D$120<=11)*(記入!$B$5:$B$120=$B$1),ROW(記入!$D$5:$D$120),""),ROW(D1))),"") 関数を使ってやろうとしたんですが…できなく今回教えてgooさんに依頼しました。 できればギガファイルなどにエクセルのデータを入れてもらうなどしていただくと嬉しいのですがそれは難しいでしょうか? メールでもいいのですが、ダイレクトメールとかってないのでしょうか? すみません、教えてgooも最近やり始めたので勝手がわからず… 手順を教えていただけたら幸いです。 生意気言ってすみません。

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

関連するQ&A

  • エクセルの質問です。関数で作りたいです(>人<;)

    シート1には縦軸の所に名前が70人くらい最初から入れてあり 横軸には日にちを31日まで最初から書いてあり 日にちと名前が合うところにinとout時間をいれると(画像参照) 日付が合うシートの表に自動的に上に詰めて名前とinとoutが反映されるようにしたいのですが・・ できなく、困っています。 しかも9時~11時と12時~15時と16時以降と 三つに分かれてそれぞれに反映したいです。 シート2(10月1日)     9-11   in  out   12-15   in  out  16~    in  out  1   山田太郎  9  18                    斎藤四郎 17  23 2 シートは31日分あります。出勤時間を入れるシート(ここではシート1)そして 日にち分のシート31枚で合計32シートで構成されるものを考えています。 日にち(10月2日とか)のシートを見ればその日に誰が何時に出勤するかわかるようにしています。 何卒よろしくお願いいたします。

  • エクセルでシフト管理表を作りたく、教えてください。

    シート1には縦軸の所に名前が70人くらい最初から入れてあり 横軸には日にちを31日まで最初から書いてあり 日にちと名前が合うところにinとout時間をいれると(画像参照) 日付が合うシートの表に自動的に上に詰めて名前とinとoutが反映されるようにしたいのですが・・ できなく、困っています。 しかも9時~11時と12時~15時と16時以降と 三つに分かれてそれぞれに反映したいです。 シート2(10月1日)     9-11   in  out   12-15   in  out  16~    in  out  1   山田太郎  9  18                    斎藤四郎 17  23 2 シートは31日分あります。出勤時間を入れるシート(ここではシート1)そして 日にち分のシート31枚で合計32シートで構成されるものを考えています。 日にち(10月2日とか)のシートを見ればその日に誰が何時に出勤するかわかるようにしています。 何卒よろしくお願いいたします。

  • エクセルで出勤表を・・・分からなくお願いします。

    シート1には縦軸の所に名前が70人くらい最初から入れてあり 横軸には日にちを31日まで最初から書いてあり 日にちと名前が合うところにinとout時間をいれると シート2(10月1日)の表に自動的に上に詰めて反映されるようにしたいのですが・・ できなく、困っています。 シートは31日分あります。出勤時間を入れるシート(ここではシート1)そして 日にち分のシート31枚で合計32シートで構成されるものを考えています。 日にち(10月2日とか)のシートを見ればその日に誰が何時に出勤するかわかるようにしています。 画像が見づらいかもしれませんがすみません。日付別で9時~11時と12時~15時と16時以降と 三つに分かれてそれぞれに反映したいです。(しかも上詰めで) 何卒よろしくお願いいたします。

  • EXCELでの月別 日別の勤務表同時作成について

    現在、EXCEL2007にて、シート1には月別のシフト表を年と月を変えると自動でその月の日にち、曜日も変わるように作成しております。縦軸には氏名、横軸には日にち、曜日を並べており、縦に各人の出勤、退社を記入させるように作成しております。このシート1をもとに、別シートで日にちを選ぶと、その日に入っている氏名と勤務時間をガントチャート形式(時間帯別)で、自動的に表示作成できるようにしたいのですが、関数がわからず、現在、苦戦しております。 どなたか、月別勤務表から、その月のある日にひ分だけを抽出し、その日に入っている者のシフト時間を表示できるようにするための方法を教えていただけないでしょうか? シート1のサンプル  ××××年××月          1日 2日 3日 4日・・・・          月  火  水  木・・・・・    A君 出勤  9:00     退社 12:00 B君 出勤  10:00     退社  19:00 上記のような表で、たとえば、1日(月)にシフトに入っている者だけを抽出し、別シートで 日別のガントチャートを作成したいです

  • エクセルで家計簿を作っていて教えてほしいのですが。

    はじめまして。 とても、悩んで過去ログみてもよくわからなかったので質問です。 エクセルは初心者なんですが家計簿を作っていて教えてほしいのですが。 シート1で日にちを指定して入力し、シート2で指定した日にちの場所に入力したものが反映されるようにしたいのですが。 たとえば6月19日のデータをシート1に入力して、一か月分のカレンダーがのったシート2の6月19日の所にシート1で入力したものが反映される。といった感じです。 シート1のほうは毎回上書きになるが(日にち指定はします)、シート2は20日21日とずれてシート1で上書きしたものが反映される。といった感じにしたいのです。色々考えたのですが私だけでは答えが見つからないので、助言をおねがいします。

  • excelの文字の色を変える関数ってあります?

    例えば【縦軸:A君B君C君誕生日】と【横軸:結婚記念日と誕生日】をシート1に入れます。シート2に【縦軸:C君A君B君】と入れ【横軸:ひづけ】を入れます。index&match+ifで誕生日に●、結婚記念日に△を入れるのですが、●の場合は赤、△の場合は緑にしたいです。 色を変える関数ってあります??教えてください。 2000使っております。

  • エクセルの表でリンクさせて列行を入れ替える方法

    教えてください。 横軸に日付が1日から31日まで入っていて縦軸に項目が何十個もあります。これを別のシートに縦軸に日付が1日から31日まであるセルにリンクさせ完全に縦横逆になる表を作るにはどのようにしたら簡単にできるか教えてください。

  • excelの散布図

    散布図を使ってグラフを作成するにいたって、初歩的なことかもしれませんがどうしてもわからないことがあります。 横軸に時間、縦軸に移動距離をとるとします。 例えば横軸に20分、40分...100分と 20分毎のデータをプロットします。 その時、横軸の最小値を0分ではなく、例えば15分にする必要があるとします。 そこで、 (A) 横軸の最小値を15分にしてしまうと、軸目盛りの表示が15分、35分...115分のように表示されてしまい、20分、40分...100分という表示ではなくなります。 また、 (B) 縦軸との交点を15分にすることで、横軸目盛りの20分、40分...100分という表示は維持できますが、その場合0分から15分の部分が縦軸に対して左側にあり、不恰好です。 これを解決したいのですが、どうかよろしくお願いします。 ペイントで作成した理想的な画像を添付しておきます。

  • エクセルでのグラフについて

    いくつかの異なる商品を扱っているとして、その商品のある日にちごとにおけるそれぞれの売上数をグラフで表したいとします。 たとえば、 6月5日・・商品A:290  商品B:230 商品C:400 9月2日・・商品A:370  商品B:200 商品C:190 12月9日・・・・・ というようなデータを、日付けを横軸に、商品を縦軸にして「各商品の日付けごとの売上数の比較」をグラフに表したいのですが、上手くいきません! 散布図のグラフでやっても、選択したデータの日付けを反映してくれません。 このようなグラフをつくるにはどうすればいいんでしょうか? よろしくお願いします!

  • エクセルのグラフについて

    初歩的な質問ですがおねがいたします。 営業の月間の売上目標が1千万とします。稼動日にあわせて、折れ線グラフをつくる場合どうすればよいのでしょうか? グラフのイメージは縦軸に金額・横軸に日にち、目標と進捗の2つの折れ線が表示出来るようにするにはどうすればよいのでしょうか? より簡単につくる方法を教えて下さい。

専門家に質問してみよう