• 締切済み

2つエクセルデータを比較し、必要な情報を抽出する方法は?

sheet1        sheet2      sheet3 19000001 a    19000001 a   19000001 aa 19000001 aa   19000002 b    19000005 ee 19000002 b    19000003 c 19000003 c    19000004 d 19000004 d    19000005 e 19000005 e    19000006 f 19000005 ee   19000007 g 19000006 f    19000008 h 19000007 g    19000009 i 19000008 h    19000010 j 19000009 i    19000011 k 19000010 j    19000012 l 19000011 k 19000012 l sheet1にあるデータから sheet2にはないデータをsheet3に抜き出したい できるだけ簡単な方法を教えてください

みんなの回答

  • saneppie
  • ベストアンサー率66% (18/27)
回答No.4

2つの条件で探す場合ですね? できるだけ簡単にということですので、A列とB列を結合した値を使うのが良いでしょう。 (1) Shett1のC1に   「= $A1 & $B1」と入力して、他の行にもコピー (2) Sheet2のC1にも同じように   「= $A1 & $B1」と入力して、他の行にもコピー (3) Sheet1のD1に   「=IF(ISERROR(VLOOKUP(Sheet1!$C1,Sheet2!$C$1:$C$12,1,)),"ない", "")」と入力して、他の行にもコピー とやると、見つからない行だけSheet1のD列に「ない」と表示されます。 (4) Sheet3のA1に   「=IF(Sheet1!$D1="ない",Sheet1!$A1, "")」と入力して他の行にもコピー (5) Sheet3のB1に   「=IF(Sheet1!$D1="ない",Sheet1!$B1, "")」と入力して他の行にもコピー ここからは数式では面倒になるので、オートフィルタで空白行以外を表示させる…。 最後だけあまりスマートでなくて申し訳ないです。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート1、シート2ともにA列にデータがあるとします。 わかりやすい方法は次のようにすることでしょう。 シート1のB1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A1="",COUNTIF(Sheet2!A:A,A1)>0),"",ROW(A1)) これでシート2にないデータについてはその行番号が表示されます。 次にお求めのシート3については次のようにします。 A1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(ISERROR(SMALL(Sheet1!B:B,ROW(A1))),"",INDEX(Sheet1!A:A,SMALL(Sheet1!B:B,ROW(A1)))) これでA列にはシート1に有ってシート2にないデータが表示されます。 なお、お示しのデータが例えばA列とB列に分かれてある場合にはC1セルに=A1&B1と入力して下方にオートフィルドラッグして二つのセルのデータを合わせた文字列を作ります。シート2についても同様にします。その上で上に述べたと同じ手法で合成した文字列について実施すればよいでしょう。

noname#204879
noname#204879
回答No.2

もし貴方が[フィルタオプションの設定]の経験者なら、同方法の特殊な使い方を紹介します。 一般的な[フィルタオプションの設定]のやり方を知っていますか? 示されたデータは1列のものですか?それとも2列のものですか? (こういうことはキチンと説明しておくべきです!)

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  sheet1の各値をvlookup関数でsheet2から検索して、エラーになった行がsheet2にないデータです。  vlookup関数の使い方はExcelのヘルプを見てください。 では。

関連するQ&A

  • リストのデータを重複なしでランダムに抽出する

    シート1に下記のように14種類の名前リストがあります     A 1   A 2   B 3   C 4   D 5   E 6   F 7   G 8   H 9   I 10  J  11  K 12  L 13  M 14  N 上記の名前を下記のように別シートの数列おきの列(行は同一)に重複なしに行毎にランダムに抽出する事が関数で出来るでしょうか?(エクセルは2010です) ちなみに下記は一列おきのセルに抽出した例です   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA 1 D   L   K    I    A   M   N    B   H   J    C    F    E   G 2 K   J   M   H    I   G   F    E   D    A    B   N   C    L 3 E   J   A    L   B   M    K   C   N    G    F   D    H   I どなたか教えていただける方がおりましたらよろしくお願いします。

  • データを比較したいのですがよい方法がありますでしょうか?

    データを比較したいのですがよい方法がありますでしょうか? DF(フリーソフト)でしてはみたのですがどうもうまくいきません。 エクセルもしくはエディタのマクロ等でできますでしょうか。 下記はサンプルです。実際のデータは5,000件ほどあり、項目もたくさんあります。 差異を見るだけでなく、該当レコードを出力したいのですが。 (昨年) 101,A,B,C,D,E 102,A,B,C,D,F 103,A,B,C,G,E 104,A,H,C,D,E 105,I,B,C,D,E 106,I,B,J,D,E 107,A,K,C,D,E 108,A,B,C,L,E 109,A,B,C,D,M 110,N,B,C,D,E (今年) 101,A,B,C,D,E 102,A,B,C,P,F 103,A,B,C,G,E 104,Q,H,C,D,E 105,I,B,C,D,E 107,A,K,R,D,E 108,A,S,C,L,E 109,A,B,C,D,M 110,N,B,C,D,T 111,U,B,C,D,E ●結果 同じ 101,A,B,C,D,E 103,A,B,C,G,E 105,I,B,C,D,E 109,A,B,C,D,M 昨年にあって今年にないデータ 106,I,B,J,D,E 今年にあって昨年にないデータ 111,U,B,C,D,E 相違データ 102,A,B,C,P,F 104,Q,H,C,D,E 107,A,K,R,D,E 108,A,S,C,L,E 110,N,B,C,D,T

  • ツリー情報のデータをSQLで取得したい

    SQLServer 2008 です。 以下のツリーデータの場合に A ┬C │├D ┬H ││ ├I ││ └J │└E B ┬F ┬I  │ └L  └G 次のようなデータを登録しています。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │B  │F  │"F" │ ├──┼──┼──┤ │B  │G  │"G" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ ├──┼──┼──┤ │F  │I  │"I" │ ├──┼──┼──┤ │F  │L  │"L" │ └──┴──┴──┘ 引数OYA="A"でSQLを実行した場合に 以下のような この引数を含むそれ以下のツリーに関する データを取得する方法を教えてください。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ └──┴──┴──┘

  • エクセルデータの並び替え

    A列に 1 2 3 4 5 6 7 ・・・・・ B列に a b c d e f g h i j k l ・・・・ と文字列があります。 これを C列に 5つずつデータをセットにして並べたいのです。 A列    B列           C列 1     a      1 a   2 b  3 c  4 d  5 e 2     b      6 f   7 g  8 h  9 i  10 j 3     c      11 k  12 l  13 m  14 n  15 o 4     d      16 p   17 q  18 r  19 s  20 t 5     e      以下同じように続く 6     f 7     g 8     h 9     i 10     j 11     k 実際のC列のデータは トマト tomato  ネコ cat   机 desk  いす chair  かばん  bag  のようにしたいのです。 関数の扱いがわからずに苦戦しています。どうぞ、よろしくお願いします。

  • EXCELの表で縦横の入れ替え方法

    EXCELの表で 縦軸と横軸を入れ替える方法ってありますか? つまり A B C D E F G H I J K L っていう表を A E I B F J C G K D H L にしたいのです。

  • リストのデータを重複なしでランダムに抽出する

    シート1に下記のように14種類の名前リストがあります     A 1   A 2   B 3   C 4   D 5   E 6   F 7   G 8   H 9   I 10  J  11  K 12  L 13  M 14  N 上記の名前を下記のように別シートの数列おきの列(行は同一)に重複なしに行毎にランダムに抽出する事が関数で出来るでしょうか?(エクセルは2010です) ちなみに下記は一列おきのセルに抽出した例です   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA 1 D   L   K    I    A   M   N    B   H   J    C    F    E   G 2 K   J   M   H    I   G   F    E   D    A    B   N   C    L 3 E   J   A    L   B   M    K   C   N    G    F   D    H   I どなたか教えていただける方がおりましたらよろしくお願いします。 という質問をさせていただき、mike gさんに下記のような回答をいただきました 1.Sheet1 の例えばセル C1 に式 =RAND() を入力して、此れを右に2列(注1参照)ドラッグ&ペースト 2.範囲 C1:E1 を下方にズズーッと(14行目まで)ドラッグ&ペースト 以下は別シート(Sheet2)における操作です。 3.セル A1 に次式を入力して、此れを右方にズズーッと(セル AA1 まで)ドラッグ&ペースト(注2参照)   =IF(MOD(COLUMN(),2)=1,INDEX(Sheet1!$A$1:$A$14,MATCH(SMALL(OFFSET(Sheet1!$C$1,,ROW()-1,14,),CEILING(COLUMN()/2,1)),OFFSET(Sheet1!$C$1,,ROW()-1,14,),0)),"") 4.1行目全体を下方にズズーッと(3行目まで)ドラッグ&ペースト 注1:「右に2列」は別シートの行数が3行の場合で、4行(5行)の場合は「右に3列(4列)」に読み替える。 注2:式中の 2 は「一列おき」の場合で、二列(三列)おきの場合は 2 を 3(4) に書き替える。 これで完璧に出来たのですが 実際にはSheet2のセルH6から15列おきに抽出したいのです。 15列おきは出来たのですが、セルH6から抽出を始めるにはどの部分を変更すれば良いのでしょうか? どなたか教えて頂ける方がおりましたらよろしくお願いします。

  • エクセルでデータを反映させたい。

    エクセルで下記のことをしたいのですが、どのような方法が ありますか?   A B C D E (列) 1 1  a b c d 2 2  e f g h 3 3  i j k l (行) ・他シートにA1の「1」を入れると、B~E列のデータが反映する。 (A列の数字が個人を指すもので、それを選択すると付随するデータ(B~E)も反映するということなんですが・・・。 説明が下手で申し訳ないのですが、どなたか教えて下さい。

  • エクセルのデータ並び替え

    列(A)に1000個あるデータを、4列X250行に自動的に並び替える方法はありますか? つまり A   A B C D B   E F G H C ⇒ I J K L D   M N O P E   ・ ・ ・ ・ ・ ・ ・ と、並べかえたいのですが、いい方法はありませんでしょうか?

  • エクセル:データの間にスペースを入れて表示させたいのですが

    エクセル:データの間にスペースを入れて表示させたいのですが エクセル2007を使用しています。 英数や+-が混在した30桁のデータの間に スペースを7・4・4・4・7・4 文字毎に 入れて表示させたいのですが いい方法はあるでしょうか?   a0b1c2d3e-f3g-h4i5j6k+l7m8n9o+ を   a0b1c2d 3e-f 3g-h 4i5j 6k+l7m8 n9o+ の様に表示させたいのですが。 ご存知の方がいらっしゃいましたらお教え下さい。 宜しくお願いします。

  • エクセルでデータの抽出する際に困っています

    エクセルで特定の行のデータを抽出する方法を教えてください。 抽出方法を以下に示します。     A   B   C   D   E   F   G   ---------------------------------- 1l  10   11   0   0   0   0   0 2l  12   13   0   0   0   0   0 3l  14   15   1   2   3   4   5 4l  16   17   0   0   0   0   0 5l  18   19   0   0   0   0   0 6l  20   21   6   7   8   9   10 7l  22   23   0   0   0   0   0 というような感じのエクセルデータに対して、     A   B   C   D   E   F   G    ---------------------------------- 1l  14   15   1   2   3   4   5 2l  20   21   6   7   8   9   10 というように、C~G列が0でない行のA~Gのデータを別シートに抽出したいのですが、 簡単な方法があれば教えていただきたいです。 よろしくお願いします。

専門家に質問してみよう