エクセルで検索結果を範囲から検索して貼りつける

このQ&Aのポイント
  • エクセルで検索結果を範囲から検索して貼りつける方法について教えてください。
  • 出退勤時間の表を作成するために、エクセルで検索結果を範囲から検索して貼りつける方法を知りたいです。
  • エクセルで出退勤時間の表を作成する際に、検索結果を範囲から検索して貼りつける方法を教えてください。
回答を見る
  • ベストアンサー

エクセルで検索結果を範囲から検索して貼りつける

出退勤時間の表を作成しようと思っています。 実際あるエクセルはsheet1にsheet名をシフトと入れて B3に早番(1) C3 早番(2)   D3 早番(3)  E3 早番(4) F3 普通番(1) G3 普通番(2) H3 普通番(3) I3 普通番(4) J3 普通番(5) K3 普通番(6) L3 遅番(1) M3 遅番(2) N3 遅番(3) O3 遅番(4) P3 遅番(5) Q3 遅番(6) B4から出勤時間の B4 5:30 C4 6:00  D4 6:30 E4 7:00 F4 7:30   8:00 8:30  9:00 9:30  10:00   L4 13:00 13:30 14:00 14:30 15:00 Q4 15:30 B5からは退勤時間の B5 14:00 C5 14:30 D5 15:00 E5 15:30 F5 16:00 16:30 17:00 17:30 18:00 18:30 L5 21:30 22:00 22:30 23:00 23:30 Q5 0:00 セル番号抜かしちゃっててすみません。 A8からA48まで名前 7の行に1日から31日まで(B7が1日・C7が2日…AF7が31日)になっています。 この中の B8からAF48のセルに 早番(1) 早番(2) 早番(3) 早番(4)    普通番(1) 普通番(2) 普通番(3) 普通番(4) 普通番(5) 普通番(6)     遅番(1) 遅番(2) 遅番(3) 遅番(4) 遅番(5) 遅番(6) のどれかを検索して貼りたいです。 検索する場所ですがsheet2に1週間分(1日から7日までとします)の出勤時間の作成しようと思います。sheet2の名前が1日~ sheet3が8日~と入れようと思います。 週単位か1日単位でのsheet作成を迷ってます(週初めが1日といつも決まっているわけではないので)1日単位ならsheet2名前は1日sheet3名前2日になります。 実際にsheet2を各場所に貼りだして見せるものにしたい為見やすい用に作りたいです。 載せてる情報は現在は            22日~27日                        現場A            通常 9:00~終了まで   A8さん            早出 9:00~17:30   A10さん  A12さん            遅出 13:00~21:30   A9さん   A13さん            現場B            通常 8:00~終了まで   A11さん  A18さん            早出 8:00~16:30    A14さん  A11さん            遅出 13:00~21:30    A16さん  A17さん            現場C            通常 7:30~終了まで   A15さん A25さん A35さん            早出 7:30~16:00   A22さん A32さん            遅出 13:00~21:30   A21さん  A19さん みたいな感じで貼りだしています。 月単位でエクセルを作成します。 エクセル関数は初心者でマクロはちょっとしかやったことないです。 sheet2(週か日)の作成でsheet1シフトの中のB8からAF48が検索されて入力されればいいなと思っています。どのような関数を入れればいいかご教授ください。

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

  • ベストアンサー
  • 135ok
  • ベストアンサー率34% (26/75)
回答No.2

 回答がつかないようなので。  最終的にどの様に作成するのかわかりませんが、私なら別添のように作成するかなと思い、大昔に作ったものを載せてみました。以前紹介した時は選ばらなかったので、関数は紹介していません。  ご要望であれば、後日説明します。

その他の回答 (1)

noname#212067
noname#212067
回答No.1

マクロの記録を使って、「エクセルで検索結果を範囲から検索して貼りつける 」 の操作をすれば、あなたの思っているマクロが出来ると思います

関連するQ&A

  • エクセルで検索結果を範囲から検索して貼りつける

    仕事で勤務時間をつけているのですが シート1に  早出1  6:00~14:30 早出2  7:00~15:30 早出3  8:00~16:30 普通1  9:00~17:30 普通2  10:00~18:30 普通3  11:00~19:30 遅出1  12:00~20:30 遅出2  13:00~21:30 遅出3  14:00~22:30 と作成して シート2は 1週間 早出 Aさん 7:00~15:30 通常 Bさん 9:00~17:30 遅出 Cさん 12:00~20:30 と入力しています。 シート3に          1/1    1/2    1/3 Aさん    ■     ■    ■ Bさん Cさん と入力してあって シート2の情報を入力したときに シート3のAさん1/1、1/2、1/3...のところに ”早出2”と表示させたいのですがどんな関数にすれば良いか教えてください。 1/8からはシート4、1/15からはシート5に入力しシート3に反映させたいです。 シート1を参照してシート3の場所に反映させる方法が分からなく質問させていただきました。

  • OFFSET 基準値 可変できないですか?

    初めてお世話になります。私なりにやりたいことをネットで検索して作ってますが行き詰まり悩んでいます。 その日のシフト勤務で早番の人はこの人、遅番の人はこの人と検索したいです。 SHEET1には勤務表が記載されています。 _A    B     C    D    1     1日   2日   3日 2名前A 早番  早番   ・・・・ 3名前B 遅番  早番   ・・・・ 4名前C 早番  遅番   ・・・・ SHEET2には、その日勤務する人で早番がこの人とこの人(例えば、上記でいえば2日に勤務する 早番は名前A、名前Bの2名と検索できるようにしたいです。 (A1の2日はSHEET1の日付と紐付けされていて、3日、4日と変わればC列の名前は変わっていく) SHEET2 _ A    B    C 1 2日  早番 名前A 2      早番 名前B 3 4 自分なりに調べて、C1のセルには、 =INDEX('SHEET1'A列の名前人数分,MATCH("早番",OFFSET('SHEET1'B2,0,SHEET2!A1-1,A列の名前人数分,1),0),1)とし、名前Aは抽出できましたが、C2セルの2番目の名前Bは検索できません。 matchの抽出は複数検索値がある場合、2番目、3番目は検索できないとあったので、それではと C2セルにOFFSETの基準値をC1で出たMATCHの結果+B2セルという風(C1で出た1番目の早番と出たセルを基準値とし、そこから下の行へ次の早番を探す)に考えましたが出た結果はセルではなく行数になってしまい無理でした。 2番目の検索までは、OFFSETの基準値を下にずらし、高さ調節でやりようはできるのですが(早番男1名、女1名はSHEET1のA列の名前欄は男性、女性である行で明確にわかれている為検索可)、ある日によっては早番が男2名だったりする場合は破綻してしまいます。 LARGEやSMALLとかも駄目もとで試しましたが、数値じゃないのか駄目駄目でした。 ちなみにSHEET1で記載される名前順は順番を変えたくないです。 柔軟にその日のシフトを検索できる方法はありますでしょうか? 宜しければご指導宜しくお願い致します。

  • エクセルです。とある条件下で固有名詞を別のシートに反映させたい!

    いつもお世話になっています。 さて、今回は以下のような問題なのですが、出来ますでしょうか? Sheet1です。    A    B    C    D 1      1日   2日   3日 2 鈴木  早番  遅番  休み 3 木村  休み  休み  遅番 4 田中  遅番  早番  早番 以上のように打ち込んであったとして、 これを別の表で1日に早番で出勤する人、遅番で出勤する人をそのまま名前で抽出したいのです。(以下のような感じです)    A    B    C    D 6      1日   2日   3日 7 早番  鈴木  田中  田中 8 遅番  田中  鈴木  木村   9 休み  木村  木村  鈴木 簡単なのかもしれませんが、私には分かりません。 どうぞ宜しくお願い申し上げます。  

  • エクセルです。とある条件下で固有名詞を別のシートに反映!(2)

    いつもお世話になっています。 さて、前回の質問を若干、手直しました。 Sheet1です。    A    B    C    D 1      1日   2日   3日 2 鈴木  早番  遅番  休み 3 木村  休み  休み  遅番 4 田中  遅番  早番  早番 以上のように打ち込んであったとして、 これを別の表で1日に早番で出勤する人、遅番で出勤する人をそのまま名前で抽出したいのです。(以下のような感じです)     A    B    C    D  6      1日   2日   3日  7 早番  鈴木  田中  田中  8  9 遅番  田中  鈴木  木村   10 11 休み  木村  木村  鈴木 上記のような状態から更に急遽、1日に休みの木村が急遽、早番になり、結果として二人になったり、あるいは1日に早番の鈴木と遅番の田中が急に入れかわったりした時に 自動で修正してくれる表が欲しいのです。 どうぞ宜しくお願い申し上げます。

  • エクセルの勤務表(マクロ)についての質問です。

    エクセルの勤務表から、日付別に出勤者とその出勤者の勤務を抜き出すマクロを作りたいのですが、途中で分からなくなってしまい困っています。 初めまして。私はマクロを初めてまだ、2ヶ月の初心者でございます。 質問内容に、不手際がありましたら、ご容赦ください。 勤務表マスタには勤務表があり、それ以外にsheet1 からsheet30まで、30枚のシートを用意しておき、日付別にsheet1に4月1日の勤務者とその出勤者の勤務を(早番はB3から下に表示し、遅番はB8下に表示するようにします。)抜き出し、同じようにしてsheet2には、4月2日の勤務者とその出勤者の勤務を、同じように、それぞれB3とB8に抜き出し…というように、30日分抜きだしたいのです。休みの人は表示しません(画像写真を参照願います。見にくい写真で恐縮でございます。) <勤務表マスタ> 名前 4月1日 4月2日 4月3日 4月4日… 坂本 遅番 早番 遅番 休み… 井端 早番 休み 早番 遅番… 長野 遅番 早番 早番 早番… 阿部 遅番 遅番 遅番 早番… 村田 休み 早番 遅番 遅番… 高橋 早番 遅番 休み 遅番… <sheet1=4月1日> (B3、C3から下に) 井端 早番 高橋 早番 (B8、C8から下に) 坂本 遅番 長野 遅番 まずは、勤務表から4月1日だけをとりあえず抜き出そうと、マクロを作って、勤務表マスタから、sheet1である、4月1日には、転記できたのですが、同じように、sheet2(4月2日)、 sheet3(4月3日)…と勤務表マスタから、各シートに転記するには、どうすれば良いのか?分からなくなってしまいました。 力技で、このマクロの「Sheet1」の部分を「Sheet2」にするようにしてといった感じで、あと30個書けば、できるような気もしますが、膨大な行数になりますし、何か他の方法をと考えたのですが、まだまだ、初心者で、どうすれば良いのか全く思いつきません。ここまで、インターネットで調べたりして、何とか作ったもので、全く幼稚なマクロかと思いますが、なにとぞ、ご鞭撻のほど、よろしくお願い致します。 Public Sub test() Dim strSerch1 As String Dim strSerch2 As String Dim LastRow As Long Dim i As Long, j As Long, k As Long '検索する文字を以下の二つの変数に代入 strSerch1 = "早番" strSerch2 = "遅番" 'Sheet1に「早番」の人をリスト化するための変数を設定 '最初に入れるのが3行目なのでjに3を代入 j = 3 With Worksheets("勤務表マスタ") '.Cells(.Rows.Count, 1).End(xlUp).Rowで最後の行がどこなのか調べて 'LastRow変数に代入する。 LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 2 To LastRow 'ここで2列目を検索して、「早番」の人がいたら、Sheet1の3行目から、リスト化する。 If .Cells(i, 2).Value = strSerch1 Then Worksheets("Sheet1").Cells(j, 2).Value = .Cells(i, 1).Value Worksheets("Sheet1").Cells(j, 3).Value = .Cells(i, 2).Value j = j + 1 End If Next i End With 'Sheet1に「遅番」の人をリスト化するための変数を設定 '最初に入れるのが8行目なのでkに8を代入 k = 8 With Worksheets("勤務表マスタ") LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 2 To LastRow 'ここで2列目を検索して、「遅番」の人がいたら、Sheet1の8行目から、リスト化する。 If .Cells(i, 2).Value = strSerch2 Then Worksheets("Sheet1").Cells(k, 2).Value = .Cells(i, 1).Value Worksheets("Sheet1").Cells(k, 3).Value = .Cells(i, 2).Value k = k + 1 End If Next i End With End Sub

  • COUNTIF? COUNT? SUMIF? わかりません。

    勤務シフト表を作成しています。(エクセルにて) (A1A2を結合して)Aさん (B1予定)早出 (B2変更)変更があり休み (A3A4を結合して)Bさん (B3予定)遅出 (B4変更)空白(変更なし) (A5A6を結合して)Cさん (B5予定)休み (B6変更)空白(変更なし) B7に早出人数0 B8に遅出人数1 B7に休み人数2と表示するには どのようにすればよいのでしょうか? (B1予定)早出は消さずに表示しておきたいのです。宜しくお願いします。

  • エクセルのタイムカードで悩んでいます。。。。

    エクセルのタイムカードで悩んでいます。。。。 今、エクセルでタイムカードを作っています。 飲み込みが遅い初心者なものでなかなか進みません。。。。 教えてください(>‐<。) 会社はサービス業です。 ・基本就業時間は9:00から~18:00の1時間休憩の8時間勤務の15分刻みになっております。 ・早出や遅出等もありますので、その場合は1時間休憩は無しの時間を求めます。 ・8時間以上の場合で9:00前と18:00以降は15分単位で残業となります。 @時間単位を15分単位できることができません。 一応、教わりながら関数を作ったのですが、どうしても15分単位できることができません。。。。 A1 出勤時間 B1 退勤時間 C1 就業時間 →→=IF(A1="","",IF(B1-A1>TIME(8,0,0),B1-A1-TIME(1,0,0),B1-A1)) D1 残業時間 となってます。 C1の関数式で15分単位にする場合の式を教えて下さい。 言葉足らずで解りずらい説明ですが・・・・ 宜しくお願い致します。

  • エクセルで悩んでます。。。

    エクセルで悩んでます。。。 今エクセルの時間設定で悩んでます。。。。 誰か教えて下さいm(_ _)m!!! 表: A,区分 B,出社時間 C,退社時間 D,就業時間 E,残業時間 となってます。 Aの区分のところには、『通常出勤 定休 休日出勤 早出 遅出』とドロップダウンで選択できるようになってます。 区分ごとに時間の単位を15分切り捨て、10分切り上げなどに変えたい場合はドーしたらいいのでしょうか??? 例:1 A,通常出勤 B,8:30 C,18:00 D,8:00 E,0:00 通常出勤の場合 出社時間 何時に出社したとしても9:00スタートに、退社時間 30分切り捨てにしたいです。 例:2 A,早出 B,7:10 C,19:00 D,10:50 E,2:50 通常出勤以外の場合 出社時刻だけを切り上げ切り捨て無しにしたいです。 今のところDの式は =IF(COUNT(A1:B1)<>2,"",FLOOR(B1,"0:30")-CEILING(A1,"0:15")-IF(FLOOR(B1,"0:30")-CEILING(A1,"0:15")>="6:00"*1,"1:00",0)) 分かりづらい説明ですみません。。。。 教えて下さい(;O;)

  • VLOOKUPで複数シートの検索方法

    エクセルで勤務表を作成しているのですが 勤務形態が100種類以上あり、番号付けしています。 勤務形態により、始業時刻が異なり、また、平日・土曜・日祝によりそれぞれの勤務形態で始業時刻が3種類有ります。 平日・土曜・日祝の3種類の勤務形態シートを作成しています 勤務表には勤務番号を入力し指定のセルへ勤務時間を参照する関数がわかりません。。。 平日でA番はA時~ B番はB時~ C番はC時~ 同じA番でも土曜ならD時~ また同じA番でも日祝ならF時~ そこで 1日 A番A時~ 2日 C番C時~ 3日 B番B時~ 4日 A番D時~ (土曜) 5日 A番F時~ (日祝) 平日・土曜・日祝の勤務番号の時間は固定でローテーションです 平日シート    A     B 1 1111  10:00 2 2222  11:00 3 3333  12:00 4 4444  13:00 土曜シート    A     B 1 1111  10:30 2 2222  11:30 3 3333  12:30 4 4444  13:30 日祝シート    A     B 1 1111  10:45 2 2222  11:45 3 3333  12:45 4 4444  13:45 3種類のシートから 勤務表シート    A        B     C 1 1日(月)    1111  10:00 2 2日(火)    2222  11:00 3 3日(水)祝   1111  10:45 4 4日(木)    4444  13:00 5 5日(金)    2222  11:00 6 6日(日)    2222  11:45 このように表示したいのですがいい方法はないでしょうか? よろしくお願いします。

  • エクセルでタイムカード計算

    初心者です。エクセルで次のような計算をしたいのですが 基本の 始業時間19:00  終業時間1:10 で 実働 5:30 です 21:00~21:20 まで20分休憩を引きます 23:10~23:30 まで20分休憩を引きます 19:00より前は早出になります 1:20から残業ですが2Hに10分ずつ休憩が入ります 残業は30分単位です   それで第2の設定として A 19:00~21:59 普通時間(早出含む) B 22:00~1:10  普通残業 C 1:20~      深夜残業   作成したい表は 始業時間と 終業時間をいれると A(定時だと2:40) B(定時だと2:50) C               と3段階で表示されるものです 何とかできないでしょうか? フリーソフトも色々みたのですが? 困っています 宜しくお願いいたします

専門家に質問してみよう