質問: Excelでシートを比較して差分を抽出したいです。 今、Sheet1、SheetA、SheetB、SheetC、SheetD、SheetEの、6つのシートがあります。 それぞれのシートのA列には2行目から500行目までに、文字列が入っております。 この状況におきまして。 Sheet1のA列を比較元とし、SheetAからEのA列すべてを比較します。 その際、2行目なら2行目、3行目なら3行目、500行目なら500行目同士と、比較の対象はA列の同じ行同士を指定します。 結果につきまして、まずSheet1のB列の各行に、文字列が完全一致しているかどうか(true or false)の結果を出力します。 次にSheet1のC列に、行同士を比較した差分の中身を抽出、出力します。 その際「どこまで文字列が一緒で、どこから違いが出たのか」を把握したいので、比較した際に「文字列が長かった方の、一致しなかった文字列の内容のみ」を、出力したいです。 最後に、文字列が長かった方(差分があった方)が、Sheet1なのか、SheetA〜Eの方なのか、どちらなのかを、Sheet1のD列に出力したいです。 そういった処理がもし関数やマクロで効率的に出来るようでしたら、お教えいただけないでしょうか。 よろしくお願い致します。
回答: SheetAの場合を例にします。 1.文字列が完全一致 SheetAのB2に、以下の式を設定し対象最下行までフィル ``` =EXACT(Sheet1!A2,SheetA!A2) ``` 2.文字列の差分 コメントにもあるように、仕様が不明確なのでパス (仕様が明確になっても、VBAを使わないと難しそう・・) 3.文字列の長い方 SheetAのD2に、以下の式を設定し対象最下行までフィル ``` =IF(LEN(Sheet1!A2)>LEN(SheetA!A2),"Sheet1",IF(LEN(Sheet1!A2)