- ベストアンサー
エクセル関数
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>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)),"")
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
>言葉足らずでもうしわけありませんが、 言葉足らずの問題でなく、エクセルの問題を、パターン化して理解してないから解決法が見つからず、その前に適切に説明できないのだと思う。 (1)データを、キー(本件ではD列)をもとに、取ってくるとか ある項目を共通キーとしてデータ項目を結びつける(増やす)、とか (たとえば、氏名コード+年齢データと氏名コード+体重データがあり、氏名コード+年齢+体重データを作りたい場合) (2)A列をもとに、A,B列を並べ替えたい(ただしエクセル関数で遣る場合だが) などの際に出てくる課題です。 ーー 操作でソートする場合は、範囲にB列も含めるとか、アクセスなどでは B列項目も含めて指定することによって、連れもってきてくれるが、エクセルの関数を使う場合は、項目(セルデータ、列データ)単位で、適切に動かさなければならないので、難しさが出てくる。 ーー 本質問の定石として、該当行の行位置を探す(D列データからー>A列での位置行を探す)ため、MATCH関数で何行目かを知り、元データの何行目の何列目を指定して、1列・1セルのデータ分を持ってくる。 複数列ある場合は、式の複写の機能を利用して、式の列指定を変化させて、 データを持ってくる。 昨日土曜日に、RANK関数を利用するような質問が出たが(順位順に元データを並べ替えたいという希望)、本質問と根底は同じ課題だと思う。 必ずしも、A列の大小順である必要はなく、本質問のD列にあるデータの順を決めれば(ランダムでもよい)、それに従ってB列を持ってくることができる。
- msMike
- ベストアンサー率20% (364/1804)
A2: =INDEX(D$2:D$7,MATCH(B2,E$2:E$7,0))
お礼
回答ありがとうございました。 無事に解決致しました。
- molly1978
- ベストアンサー率33% (393/1186)
D列とE列が逆ならvlookup関数を使えますが、このままでは難しく、私ならマクロを使用します。
お礼
回答ありがとうございました。
- watabe007
- ベストアンサー率62% (476/760)
E列に貼り付ける前はエラーになるので対策 =IFERROR(INDEX($A$2:$A$7,MATCH(E2,$B$2:$B$7,0),1),"")
補足
回答ありがとうございました。 無事に解決致しました。
- watabe007
- ベストアンサー率62% (476/760)
D2以下に =INDEX($A$2:$A$7,MATCH(E2,$B$2:$B$7,0),1)
お礼
回答ありがとうございました。 無事に解決致しました。
お礼
回答ありがとうございました。 無事に解決致しました。