- ベストアンサー
EXCELの2枚のシートを比較・抽出する方法とは?
- EXCELで2枚のシートを比較し、一致するデータを抽出する方法を教えてください。特に、日付や数字+漢字などの形式にも対応した方法が知りたいです。
- EXCELの2つのシートを比較し、一致するデータを抽出する方法について詳しく教えてください。なお、日付や数字+漢字、空欄などのデータ形式にも適用される方法があれば教えてください。
- EXCELの2つのシートを比較し、一致するデータを抽出する方法がわかりません。特に、日付や数字+漢字などの異なる形式に対応する方法が知りたいです。お手数ですが、詳しく教えていただけますか?
- みんなの回答 (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に入力されているデータに誤りがあるのかないのかを、前もって確認しておく必要があります。 この様に、元のデータの中に、正しい日付を表していないデータが含まれている恐れがありますから、上記の方法で集計した結果を入念にチェックして、誤りの有無を必ず確認して下さい。 その上で、前述の様なミスを誘発する恐れを避けるためにも、今後、日付データを入力する際には、年月日が全て含まれていて、年と月、月と日との間には、スラッシュ等を挟んだ形式に、全ての日付データを統一する様にして下さい。
お礼
kagakusuki様 お教えいただいたことを参考にして、何とかできたような気がします。 どうもありがとうございました。 iwao32
補足
kagakusuki様 いつもご丁寧なご回答、どうもありがとうございます。 おっしゃる通り、まずいデータだとは思うのですが、実は私が今取り扱っているのはある統計データでして、統一されていない記述になっているところが多い上、量も膨大なので、全部チェックすることは実質的に不可能な状況でして、なんとか、セル(X1~X5やY1~Y5)内の様々なタイプの記述(例:20111220、2011-12-20、H12L、2011/12/20、12月20日、空欄など)を、そのまんまドカッとSheet3にコピーできないでしょうか? よろしくお願いいたします。