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

エクセルで関数、VBAを使用して、下記のようなDATA抽出を行ないたいのですが、どなたか、ご指導いただけないでしょうか。

たとえば、2種のシートが、各々、
<シート1>
  列A   列B
行1 A1 ABCD-123
行2 B23 EFGH-456
行3 C456 あいうえお

<シート2>
列A 列B 列C  列D  列E
行1 A1 A2 A3
行2 B23 C5 A4
行3 A5 B2 C456

・・・・・・・となっている場合、

<シート2> の列D  行1 へ "A1"と入力(記載)がある場合、列Eに  
”ABCD-123”と表示(抽出)を行ないたい。
セルには、文字、数字、記号が入ります。

よろしくお願い致します。

A 回答 (2件)

こんばんは。

PoohBee@エンジニアです。

やり方は種々あるとおもいますが、思いついた感じだと…。
1)シート1の入力行最終行を取得
2)シート1の1行目から1)の取得値までループして、A,B列の値を多次元配列に格納
3)シート2のD列に2)で取得した1次元配列の値を、E列に2次元配列の値を1)の取得値までループしながら出力

こんな感じかな~。実装時の参考になれば幸いです。
    • good
    • 0

VBAでなくてもINDIRECT関数で出るでしょう。



Sheet3
A列   B列
A1ABCD-123
B23EFGH-456
C456あいうえお
ーー
Sheet4において
D列にデータは下記とする。
D列   E列
A1ABCD-123
A3あいうえお
E1は
=INDEX(Sheet3!$B$1:$B$100,ROW(INDIRECT("Sheet3!"&D1)))
と入れて下方向に式を下方向に複写する。
ーー
これではないかも、とも思うが、質問表現が不完全で、列Eに出すロジックが(質問には1例だけ書いてあって)文章で以ってポイントを書いてないからこうなる。
    • good
    • 0

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