- 締切済み
エクセル(2つのファイルを照合) 至急!
今エクセルのファイルが2つあります。(ファイルA,ファイルBとします) ・ファイルAのA列には、番号(1、2、3・・・)B列には本のタイトルがあるとします。 ・ファイルBは、ファイルAのA列だけ削除して、本のタイトルだけあるとします。そして、その本のタイトルを無作為に並べ替えてしまってあります。 このファイルBの並べ替えてしまった本に、ファイルAの元々の番号(1、2、3・・・)をつけたいのですが、そのような関数ありますか? 当然、ファイルBの本の番号は1~ではなく、順不同になってしまうのですが。 説明がうまくできずすみません。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- nobu555
- ベストアンサー率45% (158/345)
#2です。 もう、事足りてるかもしれませんが、補足します。 #2の式は、A列の番号が、1から順に数字だけ入っていることを想定していて、上から何番目かを番号と一致することを前提にしています。 しかし、番号が抜けていたり、英数字の組合せの場合、#2で回答した式では、機能しません。 他の回答者さんが、VLOOKUP関数を使った回答は出ているので、ファイルAをそのままいじらずに出来る式を考えてみました。 =INDEX([ファイルA.xls]Sheet1!$A:$A,MATCH(A1,[ファイルA.xls]Sheet1!$B:$B,0))
- imogasi
- ベストアンサー率27% (4737/17069)
VLOOKUP関数でできます。 ただ、ファイルAで検索に使うタイトルが第2列にあり、引っ張ってくる番号が、第1列にあるのが、この関数を使う上で都合が悪い。検索列より、取ってくるフィールド列は右にないといけない。第3引数で-1など指定できない。 それで第1列を第3列にコピーしたりして(または関数でC1へ=A1など )番号列を作る。 ファイルBのB1に=VLOOKUP(A1,ファイルAの$B$1:$C$1000,2,FALSE) とする。そして式を複写する。 (1)FALSE型 (2)ファイルAの参照表を表す範囲を$付きにする。 (3)ファイルAの順番は番号順、やタイトル順である必要はない(時々誤った回答あり) (4)他ファイルAの検索表の指定は [ファイルA.xls]Sheet1!$B$1:C1000 のように、ファイル名は[]で囲み「.xls」をつけ、シート名は シート名+「!」(半角)で表す。
- nobu555
- ベストアンサー率45% (158/345)
ファイルBの本のタイトルの右隣のセルに 下記の式を入力して必要分コピーで出来ます。 =MATCH(A1,[ファイルA.xls]Sheet1!$B$1:B100,0)
- p-applepie
- ベストアンサー率53% (156/290)
No1です。ちょっと言葉足らずでした。 ファイルBのA列に追加するのは空白の列の挿入で、 A列に下の VLOOKUP関数を入れて下までコピーして下さい。
- p-applepie
- ベストアンサー率53% (156/290)
できますよ。 ファイルAのC列に =A1として本の番号を読み込みさせて下さい。 ファイルBにA列を挿入し、 =VLOOKUP(B1,'[ファイルA.xls]sheet1'!,$B$C,2,FALSE) で、ファイルAのC列の値(=A1で読み込んだ番号)が返されます。 ファイル名、シート名は書き換えて下さいね。