プロが教えるわが家の防犯対策術!

sheet1に特定のセルに(A)と入力すると、sheet2のAに該当するセルの3つ右隣のセルの文字を参照し(X)、sheet3からXの文字を含む範囲の列をコピーして、sheet1の指定の位置にペーストするという作業を自動化したいのですが、どうしたらいいでしょうか。

sheet1

A

sheet2

A  ○ X  

sheet3
X  Y  Z
1  4  7  
2  5  8                                        3  6  9
             ↓

sheet1

A
1
2
3

 
どなたか良い方法をご存知であれば教えて下さい。
よろしくお願いいたします。

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

  • すみませんsheet3の4行目がずれてしまっています

      補足日時:2017/11/28 23:05

A 回答 (2件)

こんにちは!



>sheet2のAに該当するセルの3つ右隣のセルの文字を参照し・・・

↓の画像のような配置になっているとします。
Sheet1のA1セルが「特定のセル」だとします。

Sheet1のA3セルに
=OFFSET(Sheet3!$A$1,ROW(A1),MATCH(VLOOKUP(A$1,Sheet2!A:D,4,0),Sheet3!$1:$1,0)-1)&""

という数式を入れフィルハンドルで下へコピー!
これで画像のような感じになります。
エラー処理はしていません。

※ 表示されたデータは「文字列」になります。
計算などに使用したい場合は、もう少し長い数式になります。m(_ _)m
「エクセルで特定のセルに入力された文字を参」の回答画像2
    • good
    • 0

一度にやろうとするから、難しく感じるのです。


数式で処理したいのであれば、一つずつ処理してみましょう。

シート間を参照するのは面倒なので、同じシート上にあるとして考えましょう。
あとからシート間を参照するように直せばよいのです。
そのほうがスッキリします。

まず欲しいのは、「A」と入力した値と同じ値を持つセルの場所とその右のほうにあるセルの値。
・MATCH関数で入力する値の一覧(本来Sheet2)を検索し、INDEX関数で値を拾う。
・VLOOKUP関数で値を拾う。
の方法が考えられます。
次に、得られた値と同じ値のあるセルの場所とその下にあるセルの値。
・MATCH関数で入力する値の一覧(本来Sheet3)を検索し、INDEX関数で値を拾う。
・HLOOKUP関数で値を拾う。
の方法が考えられます。

さあ、組み合わせてみよう。

※それぞれの関数の使い方を確認してください。


・・・
さて、この中で何が分かりませんか。
分からない点が妨げになっているのです。
詳しい解説やアドバイスが必要な場合は、その分からない点についてピンポイントで質問すると疑問が晴れて自身で問題を解決できるようになります。
がんばれ。
    • good
    • 0

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