項目名の並びの違うエクセルを照合して一つの表にしていく方法はありますか

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/06/22 07:19:10
  • 終了:2007/06/29 07:20:03

回答(1件)

id:amnis No.1

amnis回答回数59ベストアンサー獲得回数62007/06/22 18:00:11

ポイント10pt

二つのsheet間でのこととして、一つの方法をご紹介します。


前提条件を仮に以下のようにします。

①一組の項目名がある(仮に100項目)

②Sheet1とSheet2それぞれについて、項目名(データ)には抜けがある(100項目そろっていない)

③抜けている項目名はSheet1とSheet2で異なる。

④A列には項目名、B列にはデータが格納されている。



【step1:項目名を網羅した「標準テーブル」を作る】

①Sheet3のセル「A1」に適当なタイトルをつける(項目名のいずれともダブらない名称にすること)

②Sheet3のA列の2行目以降のセルに、sheet1とSheet2の項目名をコピーペーストする(縦に連ねる)

③A列をソートする。(同じ項目名は連続した行になりますね)

④Sheet3のセル「B2」に以下のIF文を入力。

if(a2=a1,1,0)

※すぐ上の行と同一ならば「1」を返し、異なれば「0」を返します。

⑤セル「B3」以下に④のIF文をコピーペーストする(A列にデータがある範囲に)

⑥Sheet3のB列にフィルターをかけて値が「1」の行のみ抽出し、それらの行を削除する。

次にB列を削除する。

残ったA列が「標準テーブル」となります。

(フィルター:メニューバーから「データ」-「フィルタ」-「オートフィルタ」)


【step2:データをまとめる】

Sheet1、Sheet2ともデータの範囲は「A1」~「B80」と仮定。

①Sheet3のセル「B2」と「C2」にそれぞれ以下の関数を入力。

「B2」:vlookup(a2,sheet1!$a$1:$b$80,2,false)

「C2」:vlookup(a2,sheet2!$a$1:$b$80,2,false)

※Sheet3の一行目はタイトル行にしてありましたので、この構文です。

②セル「B2」をコピーして「B3」以下標準テーブルの末端まで貼り付ける。「C2」についても同様にする。

③Sheet3のA列(標準テーブル)に対して、B列にSheet1のデータ、C列にSheet2のデータが表示されているはずです。

その後の必要な措置(計算とか文字列結合とか)を行ってください。


※注意点・・・Sheet1もしくはSheet2において、同一項目名でデータが複数回出現するようなケースでは、この方法だけでは十分ではなくもう一手間かける必要があります。


質問文から、たぶんこういう事だろうと推測しましたが、前提条件はもっとシンプルなのかなぁ・・・

ともあれ、参考になれば幸いです。


http://q.hatena.ne.jp/1182464350

  • id:mika555
    ありがとうございました。
    すごく勉強になりました、参考にして頑張ってみます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません