こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【EXCEL】文字列抽出および表示の式について

【EXCEL】文字列抽出および表示の式について

EXCEL初心者です。
以下のように、A列はリストによる選択入力。B列、C列は、A列のリストで選択した値(文字列)
を元に文字列を自動入力したいと思っています。
A列のリストの設定は分かるのですが、B列、C列にどのような式を入れれば良いかが分かりません。


(処理内容)
 ・A列:リストにより選択形式で入力。リストの値(文字列)は、X列に定義(行数未定)。
 ・B列:A列の値(文字列)と同じ値(文字列)をX列より抽出し、右隣のセル(Y列)の値(文字列)を表示
 ・C列:B列の値(文字列)と同じ値(文字列)をY列より抽出し、右隣のセル(Z列)の値(文字列)を表示
     


      [A列]   [B列]    [C列]   ・・・    [X列]   [Y列]     [Z列]
 
[1列目]  aaa   あいうえお   1234        aaa   あいうえお   1234
[2列目]  bbb   かきくけこ   5678        bbb   かきくけこ   5678
[3列目]  eee   たちつてと   3456        ccc   さしすせそ   9012
[4列目]  aaa   あいうえお   1234        ddd   さしすせそ   9012
[5列目]  ddd   さしすせそ   9012        eee   たちつてと   3456
  :     :       :      :           :       :      : 


よろしくおねがいします。

投稿日時 - 2010-04-26 01:39:41

QNo.5851962

困ってます

質問者が選んだベストアンサー

VLOOKUP関数を使われるのがよいでしょう。
B1セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。

=IF(OR($A1="",COLUMN(B1)>3,COUNTIF($X:$X,$A1)=0),"",VLOOKUP($A1,$X:$Z,COLUMN(B1),FALSE))

式の一部で絶対参照のセル番地が使われていますがこれはB2セルに入力した式を右横方向にドラッグコピーするような場合には特に必要なことですね。

ところで、この式の意味はA1のセルが空白なら、或いは列番号が3より大きい場合には、すなわちX列からZ列までを表示することになるので全体で3列を使うことになるので、またはX列にA1の値が無い場合には空白にしなさい。そうでない場合にはX列でA1セルの値を検索し、該当する行のB1セルでは2列目(COLUMN(B1)),C1セルでは3列目(COLUMN(C1))を表示しなさい。との意味です。

VLOOKUP関数では文字列を検索の対象としている場合などでは必ずFALSEを入れることです。それをしない場合には誤ったデータが表示される可能性があります。また、A列のデータがX列に存在しない場合にはエラーとなりますので、それを防ぐためにCOUNTIF関数を使って存在しない場合にはVLOOKUP関数を使わないようにしています。

投稿日時 - 2010-04-26 07:14:02

お礼

ご回答ありがとうございます。
さっそく試してみて、出来ました。
また、いろいろと説明を書いてくださり、ありがとうございます。
非常に勉強になりました。

投稿日時 - 2010-04-27 00:44:19

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

B1には
=IF(A1="","",VLOOKUP(A1,X:Z,2,FALSE))
C1には
=IF(A1="","",VLOOKUP(A1,X:Z,3,FALSE))
のような数式を事前に用意して,いずれも2行目以下の各行にコピーしておきます。

投稿日時 - 2010-04-26 01:47:22

お礼

早々の回答ありがとうございます。
さっそく試してみて、出来ました。
助かりました。

投稿日時 - 2010-04-27 00:43:27

あなたにオススメの質問