プロが教える店舗&オフィスのセキュリティ対策術

エクセルで2つのシートの2つのセルの条件が一致したら、シート2の該当の部分をシート1に挿入したいのです。


Sheet1

A    B    C
1 社員A 100
2 社員B 200  
3  社員A 500

Sheet2

A    B    C
1 社員B 100  休み
2 社員B 700  勤務
3  社員A 100  夜勤

 
というような2つなシートがあり(実際には、セルの行数は3000行くらいあります)

Sheet1,Sheet2の比較をしてA列、B列の値が一緒である場合、シート1にシート2の該当部分を
C列に挿入したいのです。

たとえば、シート1のC列に数式をいれることになるかと思うのですが、
シート1とシート2を比較すると、
  シート1のA1・B1の【社員A 100】とシート2のA3・B3の【社員A 100】が一致しているので、シート2のC3の【夜勤】をシート1のC列のC1(該当する同じ行に挿入)に挿入したいのです。

どういった式をいれたらいいかわからないので、どなたかおしえていただけたら助かります。

よろしくお願い致します。 知恵をお貸し下さい。 非常にこまっております

A 回答 (3件)

シート1のD列を作業列としてD2セルには次の式を入力して下方にオートフィルドラッグします。



=A2&B2

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

=A2&B2

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

=IF(OR(A2="",COUNTIF(Sheet2!D:D,D2)=0),"",INDEX(Sheet2!C:C,MATCH(D2,Sheet2!D:D,0)))

これでシート1のC列にはお望みのデータが表示されます。
    • good
    • 0
この回答へのお礼

ずっとなやんでいたことが解決しました
ありがとうございました
本当に助かりました。

お礼日時:2011/10/06 14:53

同じような質問がありました。


http://questionbox.jp.msn.com/qa7053993.html

今回のケースなら(項目名が1行目にある場合)、以下のような式になりますが、表示データ数が多くなると、シートの動きが重くなるかもしれませんので、必要に応じて計算方法を手動にしてF9キーを押して再計算するなどの対応をしてください。

=INDEX(Sheet2!C:C,MIN(INDEX(((Sheet2!$A$2:$A$3000<>A2)+(Sheet2!$B$2:$B$3000<>B2))*3000+ROW($A$2:$A$3000),)))&""
    • good
    • 0

複数条件の検索は数式が長くなり分かり辛いのでSheet2に1列追加してVLOOKUP関数を利用する方法が判り易いと思いますが如何でしょうか。



(1)Sheet2のBC列間に列挿入、C1に=A1&B1を入力、下方向にコピー
(2)Sheet1のC1に=IF(COUNTIF(Sheet2!C:D,A1&B1),VLOOKUP(A1&B1,Sheet2!C:D,2,FALSE),"")を入力、下方向にコピー
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A