• ベストアンサー

エクセル2007を使用しております。

エクセル2007を使用しております。 別シートのデータを元に重複してないデータを抽出したいのですが、どうもうまくいきません。 例 シート1のA列に当日出社従業員名 シート2のA列に従業員一覧 を入力してます。 そこでシート1のC列に当日休みの従業員名が入るようにしたいと思っています。 似たような質問を見ていろいろやってみたのですがうまくいかないので アドバイスお願い致します。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>似たような質問を見ていろいろやってみたのですがうまくいかない 計算の理屈を追いかけながらゆっくりやっていくと,いつか出来るようになります。 添付図: C2: =IF(Sheet2!A2="","",IF(COUNTIF(A:A,Sheet2!A2),"",ROW(A2))) D2: =IF(ROW(D1)>COUNT(C:C),"",INDEX(Sheet2!A:A,SMALL(C:C,ROW(D1)))) をそれぞれ下にコピー。 参考: =INDEX(Sheet2!A:A,SMALL(IF(COUNTIF(A:A,Sheet2!$A$1:$A$20),999,ROW(Sheet2!$A$1:$A$20)),ROW(A1)))&"" と入れてコントロールキーとシフトキーを押しながらEnterする。

ran37
質問者

お礼

関数をちゃんと理解できていないと無理ですよね(^^; 参考書片手に今勉強中です。 画像まで貼ってくださって、とてもわかりやすかったです。 ありがとうございました。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 回答番号:ANo.1です。  申し訳御座いません、先程の回答で、シート1のC2セルに入力する数式に、一部間違いが御座いました。  正しくは以下の通りです。 =IF(ROWS($2:2)>COUNT('シート2'!$B:$B),"",INDEX('シート2'!$A:$A,MATCH(ROWS($2:2),'シート2'!$B:$B,0)))  尚、シート2のB2セルに入力する数式の方は、間違いは御座いません。

ran37
質問者

お礼

ありがとうございます。 関数あまり理解できてないため参考書片手に勉強したいと思います。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 シート2の適当な列(ここでは仮にB列とします)を作業列として使用する方法です。(必ずしもシート2でなくとも構いません)  尚、数式の都合で、シート2のA列にある従業員の名前は、2行目から始まっていて、A1セルには項目名が入力されていても、空欄となっていても、何でも良いですから、従業員の名前だけは入力されていない状態として下さい。  まず、シート2のB2セルに次の数式を入力して下さい。 =IF(ISNA(MATCH($A2,'シート1'!$A:$A,0)),COUNT(B$1:B1),"")  そして、シート2のB2セルをコピーして、B3以下のセル(A列に従業員名が入力されている全ての行)に貼り付けて下さい。  次に、シート1のC2セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT('シート2'!$B:$B),"",INDEX('シート2'!$A:$A,MATCH(ROWS($1:1),'シート2'!$B:$B,0)))  そして、シート1のC2セルをコピーして、C3以下のセルに貼り付けて下さい。(休みを取る従業員数の最大値だけ貼り付ける)  以上で完成です。

関連するQ&A