• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル シート2枚の比較・抽出、英数字・日付など)

EXCELの2枚のシートを比較・抽出する方法とは?

このQ&Aのポイント
  • EXCELで2枚のシートを比較し、一致するデータを抽出する方法を教えてください。特に、日付や数字+漢字などの形式にも対応した方法が知りたいです。
  • EXCELの2つのシートを比較し、一致するデータを抽出する方法について詳しく教えてください。なお、日付や数字+漢字、空欄などのデータ形式にも適用される方法があれば教えてください。
  • EXCELの2つのシートを比較し、一致するデータを抽出する方法がわかりません。特に、日付や数字+漢字などの異なる形式に対応する方法が知りたいです。お手数ですが、詳しく教えていただけますか?

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

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

>日付(スラッシュ入り、マイナス入り)、数字+漢字、空欄など、だったりすることです。  それは、まずいやり方です。  データを入力する際には、統一された形式で入力する様にして下さい。  但し、もしも、Sheet1のB列とC列に、日付を表しているもの以外では、数値データが一切存在していない場合には、以下の様な方法があります。  まず、Sheet3のA1セルに次の数式を入力して下さい。 =IF(INDEX(Sheet2!$A:$A,ROW())="","",INDEX(Sheet2!$A:$A,ROW()))  次に、Sheet3のB1セルに次の数式を入力して下さい。 =IF(ISNUMBER(1/(VLOOKUP($A1,Sheet1!$A:B,COLUMNS($A:B),FALSE)<>"")),IF(ISNUMBER(TEXT(VLOOKUP($A1,Sheet1!$A:B,COLUMNS($A:B),FALSE),"0000-00-00")*1),TEXT(VLOOKUP($A1,Sheet1!$A:B,COLUMNS($A:B),FALSE),"0000-00-00")*1,VLOOKUP($A1,Sheet1!$A:B,COLUMNS($A:B),FALSE)),"")  次に、Sheet3のB1セルをコピーして、Sheet3のC1セルに貼り付けて下さい。  次に、Sheet3のA1~C1の範囲をコピーして、同じ列の2行目以下貼り付けて下さい。  尚、例えば2011111は、2011年1月11日なのか、2011年11月1日なのかを区別する事が出来ない事からも判ります様に、8桁以外の数字のみで表された日付を変換する方法というものは存在しません。  又、12月20日の様に、年を指定せずに入力した場合には、そのセルにその日付を入力した年の12月20日として記録されてしまいますから、例えば2011年1月以降になってから、12月20日と入力した場合、入力した人間が2010年の12月20日のつもりで入力していても、実際に残るデータは2011年12月20日になってしまいます。  これらの事から判ります様に、年が表示されないデータや、数字のみで日付を表しているデータが含まれている場合には、Sheet1に入力されているデータに誤りがあるのかないのかを、前もって確認しておく必要があります。  この様に、元のデータの中に、正しい日付を表していないデータが含まれている恐れがありますから、上記の方法で集計した結果を入念にチェックして、誤りの有無を必ず確認して下さい。  その上で、前述の様なミスを誘発する恐れを避けるためにも、今後、日付データを入力する際には、年月日が全て含まれていて、年と月、月と日との間には、スラッシュ等を挟んだ形式に、全ての日付データを統一する様にして下さい。

iwao32
質問者

お礼

kagakusuki様 お教えいただいたことを参考にして、何とかできたような気がします。 どうもありがとうございました。 iwao32

iwao32
質問者

補足

kagakusuki様 いつもご丁寧なご回答、どうもありがとうございます。 おっしゃる通り、まずいデータだとは思うのですが、実は私が今取り扱っているのはある統計データでして、統一されていない記述になっているところが多い上、量も膨大なので、全部チェックすることは実質的に不可能な状況でして、なんとか、セル(X1~X5やY1~Y5)内の様々なタイプの記述(例:20111220、2011-12-20、H12L、2011/12/20、12月20日、空欄など)を、そのまんまドカッとSheet3にコピーできないでしょうか? よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL(2枚のSheetの比較・抽出)

    iwao32と申します。 EXCELについてまた教えてください。(まだまだど素人で、基本的な質問で申し訳ありません。) 以下の例で示します。 Sheet1                        Sheet2 A列     B列     C列           A列 1       10      a            2 2       20      b            4 3       30      c            5 4       40      d 5       50      e という2枚のSheetがあるとき、Sheet1のA列とSheet2のA列を比較して、Sheet1の中で、Sheet2のA列にあるものだけ、Sheet3に、 Sheet3 A列     B列     C列 2       20      b 4       40      d 5       50      e というものを作りたいのですが、やり方をお教えください。 よろしくお願いいたします。

  • EXCEL 2枚のシートの比較・抽出(別パターン)

    iwao32と申します。 EXCELについてお教え下さい。ど素人なので、なるべく詳しくお教えいただけると幸いです。 先日同じような質問をさせていただいたのですが、別パターンの質問です。 以下の例で示します。 Sheet1                        Sheet2 A列    B列    C列              A列 3      30     c               2 5      50     e               4 1      10     a               5 4      40     d  2      20     b という2枚のSheetがあるとき、Sheet1のA列とSheet2のA列を比較して、Sheet1の中で、Sheet2のA列にあるものだけ、Sheet3に、 Sheet3 A列    B列     C列 2      20      b 4      40      d 5      50      e というものを作りたいのですが、やり方をお教え下さい。 よろしくお願いいたします。

  • EXCELについて

    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 のように、結合したいのですが、なるべく簡単なやり方をお教え下さい。

  • エクセル:別のシートへ抽出したデータをリンクさせたい。

    次のようなシートがあります。(シートAとします。)     A    B    C  … [1] 001  AAA [2] 002  BBB  あああ [3] 003  CCC [4] 004  DDD   [5] 005  EEE  いいい C列の空欄データは除外して、C列にデータが記入されているものだけ別のシートに(シートB)に行ごとリンクさせたいと考えています。 (この場合だと2列と5列です。) シートAには今後もデータが追加される想定で、新しいデータで当てはまるものは自動的にシートBに反映されるようにさせたいのですが…。 マクロ等は詳しくありません。できるだけ簡単にできる方法があればご教授していただきたいと思います。 よろしくお願いいたします。

  • エクセルのシート間のデータ抽出について

    (1)シートは「集約」用のシートと、「各月」のシートがあります。「集約」シートは、A列には日付、B列には番号、C列には備考欄という表があります。各月のシートも同様ですが、番号の項目だけどの月も「1、2、3,4~」と通し番号でつけてあります。通し番号の数は月によって異なります。多くなる月もあれば、少なくなってしまう月、何もない月もあります。(2)「集約」の日付なり番号なりを入力すると、各月のデータが一つの表に反映されるようにしたいです。何かよい手立てはないものでしょうか?よろしくお願いします。

  • エクセル:別のシートへ抽出したデータをリンクさせたい。

    QNo.2970713の質問内容についてなのですが、 次のようなシートがあります。(シートAとします。)     A    B    C  … [1] 001  AAA [2] 002  BBB  あああ [3] 003  CCC [4] 004  DDD   [5] 005  EEE  いいい C列の空欄データは除外して、C列にデータが記入されているものだけ別のシートに(シートB)に行ごとリンクさせたいと考えています。 (この場合だと2列と5列です。) シートAには今後もデータが追加される想定で、新しいデータで当てはまるものは自動的にシートBに反映されるようにさせたいです。 この回答の中で、 ★SheetBに =IF(ROW(A1)>COUNTA(SheetA!$C:$C),"",INDEX(SheetA!A:A,SMALL(INDEX(SUBSTITUTE((SheetA!$C$1:$C$10<>"")*1,0,10^5)*ROW(SheetA!$C$1:$C$10),),ROW(A1)))) ★右と下にコピー あるのですが、C列がvlookuo等の数式が入っていると、#REF!となってしまします。 この#REF!を表示させない方法を教えて下さい。

  • エクセルの2つのシートを比較

    エクセルで2つのシートのA列に値が入っています。 それぞれのA列を比較して同じ値であればシート1のB列をコピーしてシート2のB列に貼付。 ということはVBAで可能でしょうか? ※行番地はばらばらです。 ※A列の値がダブルことはありません。 例) シート1       シート2 A列   B列     A列   B列 111   あああ    111 222   いいい    333 333   ううう    555 444   えええ    444 555   おおお    666 結果 シート1        シート2 A列   B列      A列   B列 111   あああ    111   あああ 222   いいい    333   ううう 333   ううう    555   おおお 444   えええ    444   えええ 555   おおお    666 よろしくお願いします。

  • エクセル関数(シートの比較)を教えて下さい

    A列にある部品の型番が入っており、同じ行のB列以降に詳細内容が入っています。 B列以降の数は型番によってバラバラです。 Sheet1,2で同じ型番同士で比較し、B列以降の詳細内容が異なるものを Sheet3に書き出したいのです。 たとえば、 Sheet1の内容が、 A列  B列   C列   D列   E列 5001  A1   B5    F3   Z4 5002  E6   C2    A7 5003  B9   M8 Sheet2の内容が、 5001  A1   B5     5002  E6   C1    A6 5004  B9   M8 結果として、 5001  F3   Z4     5002  C1   A6 5003  B9   M8 5004  B9   M8 このような場合、どうすればいいのでしょうか。 なるべくなら関数がいいのですが、無理ならばVBAでもかまいません。 Excel2000です。 よろしくお願いいたします。

  • エクセル(2003・2007)でデータ抽出し、別シートを作成するための

    エクセル(2003・2007)でデータ抽出し、別シートを作成するための関数を教えて下さい ●シート名:サンプルA                ●シート名:サンプルB   A  B    C   D  E・・        A  B     C   名前 日付1  日付2  備考      名前 日付1   備考 1 山田 2010/10/15 2010/10/10 ああ    1 鈴木 2010/10/18 うう 2 佐藤             いい       2 太田 2010/10/21 かか  3 鈴木 2010/10/18 うう     → 4 井上 2010/11/20 ええ 5 石田 2010/8/7 2010/10/7 おお 6 太田 2010/10/21 かか 具体的に上記のデータから【B列が本日から10日間以内かつC列がスペース】のデータのA・B・D行を別シートに作成する関数を教えて下さい よろしくお願いします ※なぜか文字がずれてしまってて、すいません・・・

  • excelで別シートのセルを選択(VBA)

    どなたか教えてください。 シートXのB1に行番号 シートXのB2に列番号 が記載されていたとして、 別シート(Y)の、上記で指定したセルを選択する(フォーカスを移動する方法)を教えてください。 シート(X)   A   B   C  1 行  25  2 列  2  シート(Y)   A   B   C  1 2   ::::::: 24 25   (ここ) 以下のように書いても、最後の行でエラーになってしまいます。  行番号 = Sheets("X").Cells(1, 2).Value  列番号 = Sheets("X").Cells(2, 2).Value  Sheets("Y").Select  Range(Cells(行番号, 列番号)).Select

専門家に質問してみよう