質問: excelでデータを別シートに引っ張ってきたい excelで値を検索し、返す時、返す値の横にあるデータを違うシートのセルの下に一緒に引っ張ってきたいときの関数(方法)を教えてください。 素人なので分かりにくいと思いますが、お知恵をお借りしたいと思います。 あるデータのシートの検索値を別シートに持ってきたいのですが、シート1をシート2のようにしたいのです。 /は空白 例)シート1 /a b c d e 1(1) □ ○ ▽ ◎ 2 (2) ▼ ■ ◇ ◎ シート2 / a b c d 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 分かりにくいかもしれませんが、 シート1の(1)(a1)を検索すると、シート2(b1)に□(これはvlookで引っ張ってこれるのはわかります。) 次にシート1の(c1)○をシート2の(b2)へ持ってきたいのです。シート1(d1)(e1)はシート2の(c2)(d2)へ。 しかもシート1のc列は空白セルもあり、シート1のc列が空白の場合、下にずれることなくシート1の(d1)(e1)はシート2の(c1)(d1)へ。下記<図a>のようになるようにしたいのです。 そして、シート2のa列に検索値として入力する(1)や(2)の値は連番ではなく、(2)の次に(5)に飛んだりします。(2)の行のc列にデータがあっても、(5)のc列にデータはないこともあります。<図b> <図a> /a b c d 1 (1) □ ▽ ◎ 2 (2) ▼ ◇ ◎ <図b> / a b c d 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 5 (5) □ ▽ ◎ 6 (7) ▼ ◇ ◎ vlookとかclumn関数とか考えてはみたのですが、どうもうまくいきません。 毎回作成するデータなのですが、毎回コピペで作成しています。 とても面倒なので(1)を検索したらデータが一瞬で検索できるようにしたいと試みてはみたものの、私の知識では不可能でした。 関数では無理なのでしょうか。。。 関数はあまり詳しくないので分かりやすい方法があれば、教えていただければ助かります。 関数に詳しい方、よろしくおねがいいいたします。 関数にはこだわっていません。違う方法があればそれも含めておねがいいたします。
回答: こんばんは! こういうコトでしょうか? ↓の画像で説明します。 左側がsheet1・右側がsheet2とします。 両sheetとも、1行目は項目行として何らかの名目を入れておいてください。 データは2行目からあるという前提の数式です。 excel2007以降のバージョンだという前提です。 sheet2のb2セルに =iferror(if($a2<>"",if(column()=2,vlookup($a2,sheet1!$a:$b,2,0),""),index(offset(sheet1!$c$1:$e$1,match($a1,sheet1!$a:$a,0)-1,,1),,small(if(offset(sheet1!$c$1:$e$1,match($a1,sheet1!$a:$a,0)-1,,1)<>"",column($a$1:$c$1)),column(a1)))),"") これは配列数式になってしまいますので、shift+ctrl+enterで確定! この画面から数式をコピー&ペーストする場合は 上記数式をドラッグ&コピー → sheet2のb2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)shift+ctrlキーを押しながらenterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを列・行方向にオートフィルでコピーすると 画像のような感じになります。 仮にsheet1のc~e列に空白セルがある場合は左詰めで表示されます。 ※ excel2003までの場合は上記数式は利用できませんので、別の方法を考える必要があります。 外していたらごめんなさいね。m(_ _)m