プロが教える店舗&オフィスのセキュリティ対策術

表題の件ですが別のシートからVLOOKで検索かけていて困ったことがあったので教えて下さい
結合シートが絡んでいて、INDEXとかを見たのですがややこしすぎてわかりませんでした。

     B1(VLOOKUP)で検索してHIT
     B2
     B3
日付(結合) B4
B5


別シート
日付   2017/2/6
名前   B1
     B2
     B3
     B4
     B5

といった具合に 日付を検索値としてB2~B5を別のシートへデータが飛ぶようにしたいです

なお、2枚のシートから検索し一致した日付のデータを本命のシートのセルへ飛ばすことが目的です

質問者からの補足コメント

  • 参考までに画像を用意しましたのでアドバイスをいただければ幸いです

    「VLOOKUP関数の結果の下の値を表示し」の補足画像1
      補足日時:2017/02/06 15:17

A 回答 (2件)

これはまた…検索範囲が分かれてますねぇ。


上のセルに日付を入れて、下の表に該当する品種・個数・重さを表示させたいのでしょうか。
(文字が小さくてハッキリとは読めません)
行列番号が分からないので、画面左上をA1とします(表はD9:K14 8行目はタイトル行 になります)
結合セルですね?検索用の日付はD1でしょうか…
下の表で重複する日付はないものとします。

段階踏んで作っていきますよ。D9に入力する式です
=IF(COUNTIF($A:$A,$D$1)=1,○○,IF(COUNTIF($J:$J,$D$1)=1,△△,""))
A列に一致する日付があった場合○○、J列に一致する日付があった場合△△、両方一致しなければ空白。

○○=INDIRECT(ADDRESS(MATCH($D$1,$A:$A)+(ROW()-ROW(D$9)),COLUMN($A1)+2+(COLUMN($C9)-COLUMN()),4))
これは、該当した日付のセル(A24等)の3つ右(Aと表示されているセル)をD9に表示させるものです。
コピーすれば、D10ならBと表示されているセル、E9なら100個と表示されているセルのデータを取得します。
表示させた居場所と違っている場合、MATCH($D$1,$A:$A)+(ROW()-ROW(D$9))に+1すると1行下のセルを表示できます。
COLUMN($A1)+2+(COLUMN($C9)-COLUMN())に+1すると1列右のセルのデータを表示できます。
上や左の場合はマイナスです。

△△は○○のA列をJ列に変えただけです。
△△=INDIRECT(ADDRESS(MATCH($D$1,$J:$J)+(ROW()-ROW(D$9)),COLUMN($J1)+2+(COLUMN($C9)-COLUMN()),4))

最初の式に入れると
=IF(COUNTIF($A:$A,$D$1)=1,INDIRECT(ADDRESS(MATCH($D$1,$A:$A)+(ROW()-ROW(D$9)),COLUMN($A1)+2+(COLUMN($C9)-COLUMN()),4)),IF(COUNTIF($J:$J,$D$1)=1,INDIRECT(ADDRESS(MATCH($D$1,$J:$J)+(ROW()-ROW(D$9)),COLUMN($J1)+2+(COLUMN($C9)-COLUMN()),4)),""))
となります。

検索範囲を分けると式が面倒なのでお勧めはしません。
可能なら同じ列にまとめましょう。
    • good
    • 0

それぞれのシートがどういう形かいまいち分かってないですが、


日付が重複していないのであれば、MATCHで日付の位置を把握し、
(おそらく列なので)ADDRESSで列番号→アルファベットと変換し、
INDIRECTで該当するセルのデータを取得。
という方法はどうでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!