- ベストアンサー
【EXCEL】文字列抽出および表示の式について
- EXCEL初心者です。A列はリストによる選択入力。B列、C列は、A列のリストで選択した値を元に文字列を自動入力したいと思っています。
- A列のリストの設定は分かるのですが、B列、C列にどのような式を入れれば良いかが分かりません。
- 処理内容:A列はリストにより選択形式で入力。B列はA列の値と同じ値を抽出し、右隣のセルの値を表示。C列はB列の値と同じ値を抽出し、右隣のセルの値を表示。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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関数を使わないようにしています。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
B1には =IF(A1="","",VLOOKUP(A1,X:Z,2,FALSE)) C1には =IF(A1="","",VLOOKUP(A1,X:Z,3,FALSE)) のような数式を事前に用意して,いずれも2行目以下の各行にコピーしておきます。
お礼
早々の回答ありがとうございます。 さっそく試してみて、出来ました。 助かりました。
お礼
ご回答ありがとうございます。 さっそく試してみて、出来ました。 また、いろいろと説明を書いてくださり、ありがとうございます。 非常に勉強になりました。