出産前後の痔にはご注意!

iwao32と申します。EXCELについて教えてください。(全くの初心者です。)

sheet 1               sheet 2
A列   B列           A列    B列
1     10            4      d
2     20            5      e
3     30            2      b
4     40            3      c
5     50            1      a

という2つのsheetがあるとき(A列は共通だが並んでいる順番が違い、B列はそれぞれ別のもの)、sheet3に、

A列   B列   C列
1     10     a
2     20     b
3     30     c
4     40     d
5     50     e

のように、結合したいのですが、なるべく簡単なやり方をお教え下さい。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

ANo.1です。



> 手元のデータをまだ良く確認していないのですが、おっしゃるとおり、Sheet1のA列とSheet2のA列は、並びが違うだけでなく、Sheet1のA列にあってSheet2のA列にないということはあると思います。その場合、Sheet2のその行は丸ごとないということになっていると思います。

私の書き方が良くなかったですかね。
「Sheet1のA列にあってSheet2のA列にない」だけなら、『Sheet3のA列の値はSheet1をそのまま使う』で、良いのですが、Sheet1のA列が1,2,3、Sheet2のA列が3,4,5の様に、Sheet1・2それぞれに片側だけにしかない値(例の場合、1,2と4,5)があると面倒になります。

今回の質問はこの面倒なパターンは無しですか?有りですか?
    • good
    • 0
この回答へのお礼

mt2008様

パソコンがしばらく使えなかったので、レスポンスが遅くなってしまいました。申し訳ありませんでした。

大変参考になりました。とりあえずやってみます。またつまずいたら質問させてください。

皆様から頂いたご回答全てがベストアンサーなので、一つだけ選べませんでした。ご了承ください。

どうもありがとうございました。

iwao32

お礼日時:2011/12/19 14:31

シート1に有ってシート2に無い、シート2に有ってシート1に無いデータをもシート3に表示させることとなると単純な方法と式というわけにはいきません。


シート2では作業列を作って対応するのがよいでしょう。
なお、いずれのシートも1行目は項目名で2行目から下方にデータが入力されているとします。
シート2のC1セルには次の式を入力します。

=COUNTA(Sheet1!A2:A1000)

シート2のC2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(OR(A2="",COUNTIF(Sheet1!A:A,A2)>0),"",MAX(C$1:C1)+1)

そこでお求めの表をシート3に作るわけですがA2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(ROW(A1)<=COUNTA(Sheet1!$A$2:$A$1000),IF(COLUMN(A1)<=2,INDEX(Sheet1!$A:$B,ROW(A1)+1,COLUMN(A1)),IF(COLUMN(A1)=3,IF(COUNTIF(Sheet2!$A:$A,$A2)=0,"",VLOOKUP($A2,Sheet2!$A:$B,2,FALSE)),"")),IF(ROW(A1)<=MAX(Sheet2!$C:$C),IF(COLUMN(A1)=1,INDEX(Sheet2!$A:$A,MATCH(ROW(A1),Sheet2!$C:$C,0)),IF(COLUMN(A1)=3,INDEX(Sheet2!$B:$B,MATCH(ROW(A1),Sheet2!$C:$C,0)),"")),""))

シート1に有ってシート2に無いデータについてはシート1のA列とB列のデータがAおよびB列に表示されC列は空白となります。シート1に無くシート2のみにあるデータについてはA列とC列にデータが表示されB列は空白となります。
いずれにしてもシート3にはシート1及びシート2のデータが漏れなく表示されます。
    • good
    • 0
この回答へのお礼

KURUMITO様

パソコンがしばらく使えなかったので、レスポンスが遅くなってしまいました。申し訳ありませんでした。

大変参考になりました。とりあえずやってみます。またつまずいたら質問させてください。

皆様から頂いたご回答全てがベストアンサーなので、一つだけ選べませんでした。ご了承ください。

どうもありがとうございました。

iwao32

お礼日時:2011/12/19 14:29

シート1,シート2に12345があれば該当するデータを検索し,無ければ何も表示しないという式を並べます。




手順:
シート3のB1には
=IF(COUNTIF(Sheet1!A:A,A1),VLOOKUP(A1,Sheet1!A:B,2,FALSE),"")
シート3のC1には
=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2,FALSE),"")
とそれぞれ記入し,下向けにコピーします。




#IFもCOUNTIFもVLOOKUPも,いちばん基本のエクセルの関数です。
 逆に言うとこれらの関数が使いこなせれば,Excel初級卒業です。
    • good
    • 0
この回答へのお礼

keithin様

パソコンがしばらく使えなかったので、レスポンスが遅くなってしまいました。申し訳ありませんでした。

大変参考になりました。とりあえずやってみます。またつまずいたら質問させてください。

皆様から頂いたご回答全てがベストアンサーなので、一つだけ選べませんでした。ご了承ください。

どうもありがとうございました。

iwao32

お礼日時:2011/12/19 14:28

 まず、Sheet3のA1セルに次の数式を入力して下さい。



=IF(INDEX(Sheet1!A:A,ROW())="","",INDEX(Sheet1!A:A,ROW()))

 次に、Sheet3のC1セルに次の数式を入力して下さい。

=IF(OR($A1="",COUNTIF(Sheet2!$A:$A,$A1)=0),"",VLOOKUP($A1,Sheet2!$A:$B,2,FALSE))

 次に、Sheet3のA1セルをコピーして、Sheet3のB1セルに貼り付けて下さい。
 次に、Sheet3のA1~C1の範囲ををコピーして、同じ列の2行目以下に貼り付けて下さい。

 以上です。
    • good
    • 0
この回答へのお礼

kagakusuki様

パソコンがしばらく使えなかったので、レスポンスが遅くなってしまいました。申し訳ありませんでした。

大変参考になりました。とりあえずやってみます。またつまずいたら質問させてください。

皆様から頂いたご回答全てがベストアンサーなので、一つだけ選べませんでした。ご了承ください。

どうもありがとうございました。

iwao32

お礼日時:2011/12/19 14:27

補足願います。


Sheet1のA列とSheet2のA列は並びが違うだけで同じデータですか?
Sheet1には10は無いけどSheet2にはある……なんて事はありませんか?

この回答への補足

ご指摘ありがとうございます。
手元のデータをまだ良く確認していないのですが、おっしゃるとおり、Sheet1のA列とSheet2のA列は、並びが違うだけでなく、Sheet1のA列にあってSheet2のA列にないということはあると思います。その場合、Sheet2のその行は丸ごとないということになっていると思います。

補足日時:2011/12/19 01:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング