- ベストアンサー
Excel 別ファイルからのデータ抽出
OfficeXP-Excelにて質問させて頂きます。 以下のような異なるファイルが2つあります。 ------------------- [ファイルA] A B C D E F G 1 No. 1 2 3 2 氏名 山田 田中 佐藤 3 送付日 受領日 送付日 受領日 送付日 受領日 4 2007年04月分 4/2 4/27 4/3 4/26 4/2 4/25 5 2007年05月分 5/1 5/30 5/1 5/31 5/2 5/30 ・ ・ ・ (1行目・2行目のB:C、D:E、F:Gは結合されています。) ------------------- [ファイルB-シート2007/5] A B C D 1 2007年05月分 2 ←空白行 3 No. 氏名 送付日 受領日 4 1 山田 5 2 田中 6 3 佐藤 ・ ・ ・ ------------------- [ファイルA]のA4以降の『2007年**月分』のデータ『送付日』と『受領日』を [ファイルB]のセル[A1(2007年**月分)]と『No.』が一致する『送付日(C4~)』『受領日(D4~)』に 関数などを用いて抽出したいのです。 1年分のデータを1つの表にまとめて格納している[ファイルA]に対し[ファイルB]は各月のデータをシート毎に分けてあります。 [ファイルB]で元になるシートを作成しておき、毎月その元シートをコピーし[A1]の日付だけを変更すれば自動的に必要なデータを引っ張ってくるように出来ますでしょうか? 説明が解り辛ければ補足致しますので、何卒ご教示宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
両ファイルを開いた状態で それぞれ以下の数式を入力してください。 尚、仕様と異なる点は、適宜変更してください。 送付日は、セルC4に入力 =OFFSET([ファイルA.xls]シート2007年!$A$3,MATCH($A$1,[ファイルA.xls]シート2007年!$A:$A,0)-3,MATCH($A4,[ファイルA.xls]シート2007年!$B$1:$G$1,0)+0) 受領日なら、セルD4に入力 =OFFSET([ファイルA.xls]シート2007年!$A$3,MATCH($A$1,[ファイルA.xls]シート2007年!$A:$A,0)-3,MATCH($A4,[ファイルA.xls]シート2007年!$B$1:$G$1,0)+1) 後は、必要な分下にコピーしてください。
その他の回答 (2)
File_A.xls を開いた状態で、File_B.xls の Sheet“2007年05月分”のセル B4、C4 に次式を入力して、セル C4 をセル D4 に複写した後、範囲 B4:D4 を下方にズズーッと複写すればOKかと。 B4: =IF(ISNA(MATCH(A4,[File_A.xls]Sheet1!$1:$1,0)),"",INDEX([File_A.xls]Sheet1!$2:$2,1,MATCH(A4,[File_A.xls]Sheet1!$1:$1,0))) C4: =IF(ISNA(MATCH($A4,[File_A.xls]Sheet1!$1:$1,0)),"",VLOOKUP($A$1,[File_A.xls]Sheet1!$A$4:$G$10,MATCH($A4,[File_A.xls]Sheet1!$1:$1,0)+COLUMN(A1)-1,FALSE))
お礼
回答有難うございました。 B4の名前部分は見事うまくいったのですが…C4でエラーが出てしまいます(TДT) 例として書いた表と元の表はさほど変わりませんが、項目量とデータ量が違う為、本来の表に当てはめるすべがどうも理解できていないようです。 こちらも同じくもう少し考えてみます。 有難うございました。
補足
こちらの式もその後、出来ました。 [COLUMN関数]は使用した事が無かったので勉強になりました。 今回の事で自分の無知さがよぉ~く解りました。 これからもっと勉強しようと思います。 ご指導、有難うございましたm(_ _)m
- nobu555
- ベストアンサー率45% (158/345)
>2点、教えて頂きたいのですが… 1について A3は、OFFSET関数を用いたとき基準となるセルを意味しますので、 特に気にしないでください。 詳しくは、ヘルプを参照してください。 2について MATCH関数で求めたセル位置を、OFFSET関数に用いたときの補正値です。 >#N/Aのエラーが出てしまいます。 上記を、踏まえて色々調整してみてください。
お礼
再度、回答有難うございます。 この週末ずっと頭を抱えてみたのですが、どうしてもエラーが出てしまいます。 例に書いた表の通りのファイルを作成したらうまく行くのですが、コレを本来の表に当てはめるOFFSETの補正値部分が理解できず(>_<)。。。 もう少し考えてみます。 有難うございましたm(u_u*)m
補足
その後、無事出来ました(*^O^*) 煮詰まっている時は盲点から抜け出せない物ですね。。。 頭を切替えてから挑戦したら理解出来てしまった(^^;) 週末を潰してしまったので複雑な心境ですが、お陰ですっきり致しました。 色々有難うございました!
お礼
早速のご回答有難うございます。 ご教示いただき、自分のファイルに適用しようとしたのですが、#N/Aのエラーが出てしまいます。 2点、教えて頂きたいのですが… 1.[=OFFSET([ファイルA.xls]シート2007年!$A$3,……]の[A3]は空白セルですが、構わないのでしょうか? 2.MATCH関数後の[-3]・[+0]・[+1]は何を意味しているものなのでしょうか? お手数をお掛けしますが宜しくお願いしますm(_ _)m