- ベストアンサー
【Excel】検索結果を範囲から検索して貼りつける方法
- Excelで検索結果を範囲から検索して貼りつける方法について教えてください。
- 勤務時間をつけているExcelシートの情報を別のシートに反映させる方法を教えてください。
- Excelの関数を使用して、シート3にシート2の情報を入力したり、参照したりする方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>シート2は >1週間 : >と入力しています。 このご説明から、具体的に1/1のAさんが「どれ」に該当し1/2はどれになるのか、1/8のBさんは「どれ」なのか、どう読み取るのですか? それとも日付とか全然無関係に、シート2にそう書いてあったら常に「Aさん=早出2」であり「Bさん=通常1」なんですか?1/1も1/8も。今のご相談の書き振りからだと、そういう理解になっちゃいますけど。 もうちょっと詳しく、あなたの実際のエクセルを目に見えるように例示してください。 補足でちょこちょこっと書き足すんじゃなく、このご相談は一回解決で閉じて、新しいご相談で最初からもっと丁寧に説明を書かれた方が良いでしょう。 一応前述の理解の通りだとすれば、 シート1のA,B列にご質問に書かれているデータ シート2のA,B,C列にご質問に書かれているデータ という配置だとして シート3のB2セルには =INDEX(Sheet1!$A:$A,MATCH(VLOOKUP($A2,Sheet2!$B:$C,2,FALSE),Sheet1!B:B),0)) あるいはご利用のエクセルのバージョンが不明のご相談ですが、新しいエクセルを使っているなら =IFERROR(INDEX(Sheet1!$A:$A,MATCH(VLOOKUP($A2,Sheet2!$B:$C,2,FALSE),Sheet1!B:B),0)),"") とでもしておけばOKです。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
シートは (1)勤務時間タイプ分類テーブル(Sheet1) 単一 (2)授業印別勤務時間テーブル(Sheet2、Sheet4,Sheet5...) 各週ごとなので増える (3)週刊日別勤務タイプ表示表 毎週使いまわすのかどうか、質問に書いてない。 の3種。 (1)は時間帯を左列に移動するか、第3列に第1列をコピーしてはどうか。 Match関数やVLookup関数を使うときに必須。MATCH関数は働きの上でVLOOKUPとにている。 (2)は(1)の表を使ってC列は関数で出せる。 下記データ例では、D列1行に式 =VLOOKUP(A1,Sheet1!A1:B11,2,FALSE) と入れて下方向に式複写。 だからA列を入力してC列を関数で導出できる。 これをやっているのかどうか質問では不明。多分知らないのかも。 ーー C列時間帯からA列は 下記データ例ではE列1行目に =VLOOKUP(C1,Sheet1!B1:C11,2,FALSE) A列と一致 だからだからC列を入力して、A列を関数で導出できる。 早出2 Aさん 7:00~15:30 7:00~15:30 早出2 普通1 Bさん 9:00~17:30 9:00~17:30 普通1 遅出1 Cさん 12:00~20:30 12:00~20:30 遅出1 この点は質問では、どちらか(また手入力しているのか)はっきりしない。 ーー (2)の「1週間」も具体的に1週間の日付7セルを入力しているのか、毎週に、「1週間」で 済ませているのかはっきりしない。 これによって(3)では日付が必要なのだか、(2)から持ってこれるのかどうか決まらない。 ーー (3)の日付 毎週入力するのか。一番簡単だが。 第1日目だけ入力して複写で、週の第2日から第7日までを出すのがおすすめ。 だが毎週複写が面倒なら、第2日から第7日までは関数式で出せる。 そのかわり第1日はエクセルの標準の日付形式で入力する必要あり。 それは2015/1/1のような入力である。 ーー 名前について (2)から関数式で持ってくるのか。 2015/1/1 2015/1/2 2015/1/3 2015/1/4 2015/1/5 2015/1/6 2015/1/7 Aさん Bさん Cさん (日付について)C1の式は=B1+1と入れて右方向に式複写。 A2のAさんのところは、式は =Sheet2!B1 下方向に式複写 結果は上記の通り。 ーー 質問の■のところ(上記ではB2セル) その7日間には同じタイプの名称でよいのか(現実離れしているように思うが) 7日間、Aさんについては同じタイプを横方向に並べるのか? B2の式は =VLOOKUP($A2,Sheet2!$B$1:$C$10,2,FALSE) した方向に式複写、B2:B4を範囲指定して、B4セルで+ハンドルをだし、右方向に引っ張る Sheet2 1/1 1/2 1/3 1/4 1/5 1/6 1/7 Aさん 7:00~15:30 7:00~15:30 7:00~15:30 7:00~15:30 7:00~15:30 7:00~15:30 7:00~15:30 Bさん 9:00~17:30 9:00~17:30 9:00~17:30 9:00~17:30 9:00~17:30 9:00~17:30 9:00~17:30 Cさん 12:00~20:30 12:00~20:30 12:00~20:30 12:00~20:30 12:00~20:30 12:00~20:30 12:00~20:30 ーー 質問で誤入力 Sheet2の通常ーー>ふつう 全般に、質問者はエクセルを最近始めたように見受ける。実用性も怪しい。何か本来の例が別にあって、 そのまま出せず、思いつく質問のような例にしたのか? 上記回答で不満足な点があれば再質問して。 とりあえず■の印は、(質問と違っているのは承知で、)時刻の表示にしている。 時間帯で記号を変えるならその旨を質問に書くこと。 次週では、Sheet2がSheet4になるようだが、その対策はSheet4のA1にシート名をいれて、これで参照シートを左右するなら 対処できる。 Sheet4につてだが、 Sheet4のA1にSheet2を入れて =VLOOKUP(A2,INDIRECT($A$1& "!$B$1:$C$11"),2,FALSE) でSheet2のB$1:$C$11の表を引いてくれる。 11が出てきているが、必要に応じて対象行を増やすこと。
- shintaro-2
- ベストアンサー率36% (2266/6245)
>シート2の情報を入力したときに > シート3のAさん1/1、1/2、1/3...のところに ”早出2”と表示させたい いろいろやり方はあるかと思いますが、 シート1の列を入れ替えて Vlookupを使うのが理解しやすいかと思います。
お礼
回答ありがとうございます。1回質問を閉めさせて頂いてまた詳しく書いたもので質問したいと思います。1番理解してもらえているのでベストアンサーとさせて頂きました。 ■の場所に早番1と表示させたかったのです。 ちなみに=IFERROR(INDEX(Sheet1!$A:$A,MATCH(VLOOKUP($A2,Sheet2!$B:$C,2,FALSE),Sheet1!B:B),0)),"") =INDEX(Sheet1!$A:$A,MATCH(VLOOKUP($A2,Sheet2!$B:$C,2,FALSE),Sheet1!B:B),0)) と入れましたがエラーが出てしまいました。 とりあえずもっと情報を出して質問させて頂きます。