• ベストアンサー

エクセル関数

いつもご教授いただいています。 エクセル関数でお聞きしたい事があるのですが、 添付ファイルのシートのように B列の文字が基本にあり、 E列に他のシートからコピーしたものを張り付けた場合、 B列の文字や数字の並びとE列の文字や数字の並びが一致したら、 D列の数字をA列のに返すような関数を 作成したいのですが、どのようにすればよろしいでしょうか? 言葉足らずでもうしわけありませんが、 ネットで検索しようとしても、 自分の実施したい事がうまく出力されません。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>D列の数字をA列のに返すような関数を作成したいのですが、どのようにすればよろしいでしょうか? INDEX関数とMATCH関数を組み合わせる方法が良いと思います。 A2以下のセルへD列から条件に合う値を返すのですから数式をA2セルへ設定します。 =INDEX(D:D,MATCH(B2,E:E,0)) 目的のD5セルの値(4)が代入されることことを確認できたらA2セルを下へ必要数コピーすれば目的に叶います。 B列の文字列がE列に無いときはエラーになりますので、それを防ぐためにはIFERROR関数を使うと良いでしょう。 =IFERROR(INDEX(D:D,MATCH(B2,E:E,0)),"")

cyari550825
質問者

お礼

回答ありがとうございました。 無事に解決致しました。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

>言葉足らずでもうしわけありませんが、 言葉足らずの問題でなく、エクセルの問題を、パターン化して理解してないから解決法が見つからず、その前に適切に説明できないのだと思う。  (1)データを、キー(本件ではD列)をもとに、取ってくるとか   ある項目を共通キーとしてデータ項目を結びつける(増やす)、とか   (たとえば、氏名コード+年齢データと氏名コード+体重データがあり、氏名コード+年齢+体重データを作りたい場合) (2)A列をもとに、A,B列を並べ替えたい(ただしエクセル関数で遣る場合だが) などの際に出てくる課題です。 ーー 操作でソートする場合は、範囲にB列も含めるとか、アクセスなどでは B列項目も含めて指定することによって、連れもってきてくれるが、エクセルの関数を使う場合は、項目(セルデータ、列データ)単位で、適切に動かさなければならないので、難しさが出てくる。 ーー 本質問の定石として、該当行の行位置を探す(D列データからー>A列での位置行を探す)ため、MATCH関数で何行目かを知り、元データの何行目の何列目を指定して、1列・1セルのデータ分を持ってくる。  複数列ある場合は、式の複写の機能を利用して、式の列指定を変化させて、 データを持ってくる。  昨日土曜日に、RANK関数を利用するような質問が出たが(順位順に元データを並べ替えたいという希望)、本質問と根底は同じ課題だと思う。  必ずしも、A列の大小順である必要はなく、本質問のD列にあるデータの順を決めれば(ランダムでもよい)、それに従ってB列を持ってくることができる。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.5

A2: =INDEX(D$2:D$7,MATCH(B2,E$2:E$7,0))

cyari550825
質問者

お礼

回答ありがとうございました。 無事に解決致しました。

  • molly1978
  • ベストアンサー率33% (393/1186)
回答No.3

D列とE列が逆ならvlookup関数を使えますが、このままでは難しく、私ならマクロを使用します。

cyari550825
質問者

お礼

回答ありがとうございました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

E列に貼り付ける前はエラーになるので対策 =IFERROR(INDEX($A$2:$A$7,MATCH(E2,$B$2:$B$7,0),1),"")

cyari550825
質問者

補足

回答ありがとうございました。 無事に解決致しました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

D2以下に =INDEX($A$2:$A$7,MATCH(E2,$B$2:$B$7,0),1)

cyari550825
質問者

お礼

回答ありがとうございました。 無事に解決致しました。