【Excel2010】Sheet1,Sheet2に同様の表があります。
◆2行目以降で、それぞれ『同じ行』のセルに1つでも異なる値があれば、
その行のチェック欄(添付の表ですとE列)に「1(FLASEでも可)」と表記
◆『同じ行』のすべてのセルが完全に一致している場合はチェック欄は空欄のまま
という方法があれば教えていただけますでしょうか。
添付の表を例にすると、異なる値(ピンク塗りつぶし部分)がある行だけ
一気にフィルタで抽出できるキーが欲しいのです。
『2つのシートを比較し、違うセルに色をつける』
(https://www.excelspeedup.com/shi-tohikaku/)
現在は上記の方法をお借りして値が違うセルに色付けして作業しているのですが、
実際の表は200列、7000行ほどあり、
チェックする頻度もそれなりに多いので目視には限界を感じております。
せめて異なる値がある行だけを抽出できれば、
現在の方法と組み合わせてもっと作業を効率化できると思い、
お力をお借りしたくどうぞよろしくお願い致します。
または、もっと良いアイディアがありましたらご教示いただけると幸いです。
関数やマクロは方法さえいただければ自分で改変して適用させることは可能です。
お手数をお掛けしますがよろしくお願い致します。
No.6ベストアンサー
- 回答日時:
E2セルに次の式を入力して、配列数式で確定(Ctrl+Shift+Enter)し、下にオートフィルでコピーしてみて下さい。
=AND(Sheet1!A2:C2=A2:C2)
配列数式という存在を初めて知りました…!感動してます。
これならExcelに不慣れな職場の人でも数秒で設定できそうです!
複雑な数式だと修正する時に関数を読み解くのが大変なので、
職場で複数の人間が使用するのを前提に考えて、
ベストアンサーに選ばせていただきます。
的確なご回答本当にありがとうございました。
No.5
- 回答日時:
こんばんは!
>実際の表は200列、7000行ほどあり、
というコトなので、VBAでの一例です。
元データはSheet1とSheet2にあり、Sheet3に1セルでも違う行を表示するようにしてみました。
両シートとも行数・列数は同じだという前提です。
尚、1行目は項目行でデータは2行目以降にあるとします。
標準モジュールにしてください。
Sub Sample1()
Dim i As Long, j As Long, k As Long, cnt As Long
Dim lastRow As Long, lastCol As Long
Dim wS1 As Worksheet, wS2 As Worksheet
Dim myR1, myR2
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
With Worksheets("Sheet3")
.Cells.ClearContents
.Cells.Interior.ColorIndex = xlNone
lastRow = wS1.Cells(Rows.Count, "A").End(xlUp).Row
lastCol = wS1.Cells(1, Columns.Count).End(xlToLeft).Column
Range(.Cells(1, "A"), .Cells(1, lastCol)).Value = wS1.Range("A1").Resize(, lastCol).Value
myR1 = Range(wS1.Cells(2, "A"), wS1.Cells(lastRow, lastCol))
myR2 = Range(wS2.Cells(2, "A"), wS2.Cells(lastRow, lastCol))
cnt = 1
For i = 1 To UBound(myR1, 1)
For j = 1 To lastCol
If myR1(i, j) <> myR2(i, j) Then
cnt = cnt + 1
For k = 1 To lastCol
.Cells(cnt, k) = myR2(i, k)
If .Cells(cnt, k) <> myR1(i, k) Then
.Cells(cnt, k).Interior.ColorIndex = 6 '//←違うセルのみ「黄色」に色付け//
End If
Next k
Exit For
End If
Next j
Next i
.Activate
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub
※ コードは長いですが、極力時間短縮するようにしてみました。m(_ _)m
色付けまで…!本当に助かります!!
どうしても膨大な量になるので自動化できるのはありがたいです。
実際の表と照らし合わせて正しく動くよう適用させてみます。
職場でマクロをいじれる人間が少ない上に、
列や項目行が増減することもあるので、私以外人が使用する際、
少し不安があるのですが、似たような表チェックで変動がないものがあるので
そちらで使用させていだきたいと思います。ありがとうございました!!
No.4
- 回答日時:
おそらく、データはD列以降にもあるという想定で、その場合に都合のよいやり方を紹介します。
なお、データ列数と同数の作業列が必要です。
データ列が多い場合には範囲を広げてください。(範囲修正と作業列のコピペでできます)
※チェック用列の表示がサンプルとは違っていて、TRUEが相違なし、FALSEが相違ありです。必要に応じて適当に修正ください。
スキルはある方のようですので、あえてやり方は書いていません。
◆手順(添付図も参照です)
1.E2セルに『=AND(F2:H2)』を入力する
2.F2セルに『=EXACT(Sheet2!A2,Sheet1!A2)』を入力する
3.F2セルをコピーしてG2~H2セルに(横方向に)貼り付ける
4.E2~H2をコピーしてデータが存在する行すべてに(下方向に)貼り付ける
5.1行目を行選択する
6.メニュー → データ → フィルタ
7.E1セルの▼マークをクリック → FALSEのみチェックをつける → OK
※手順5~7はオプションで、相違がある行のみを表示させます。そういう目的がないなら不要です。
こんなやり方があるんですね!!
自分では考えつかないものなので大変参考になりました。
EXACTは初めてなので実際試してみて面白かったです。
ぜひ今後も活用させていただきます。
ありがとうございました!
No.2
- 回答日時:
Sheet2の対象のセルに対して条件付き書式で
「数式を使用して、書式設定するセルを決定」
をえらび、
数式に
=A1<>Sheet1!A1
を指定し、セルの修飾を決めれば良いと思う。
・・・
該当するセルに対して1つずつ条件式を入力するのがめんどくさい?
そんなことはない!
A列からC列を選んで上記の数式を入れればよいのです。
範囲を選択すると、選択された範囲の左上が入力状態になります。(この例ではA1セル)
この状態で「A1」と指定した数式は、A2セルでは「A2」、B2セルでは「B2」に置き換わるので、
1つずつ入力する手間はない。
横着したい人向けのテクニックです。
ご回答ありがとうございます。
今回は修飾に関しては問題ないのですが、
横着したい代表のようなものなので別表作成時は
ぜひ活用させていただきます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
-
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
-
4
Excelで2つのデータの突合せをしたいです
Excel(エクセル)
-
5
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列から英数字のみを抽出す...
-
エクセル1行おきのセルを隣の...
-
SUMIF関数で、「ブランク以外を...
-
自分の左隣のセル
-
セルを結合した時のエクセル集...
-
同一セル内の重複文字を削除し...
-
エクセルに入力後、別シートの...
-
excelで、空白を除いてデータを...
-
エクセルで、指定の値よりも大...
-
EXCELでマイナス値の入ったセル...
-
エクセルで特定のセル内にだけ...
-
条件付き書式の色付きセルのカ...
-
エクセルで、A2のセルにA3...
-
エクセル 平日と土日祝の時間...
-
エクセルでエンターを押すと任...
-
セルの結合がされた表をHLOOKUP...
-
空欄以外の最小値
-
エクセルで年月日から月日のみへ
-
2つのシートを比較し、異なる値...
-
エクセルである表から優先順位...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
エクセル1行おきのセルを隣の...
-
自分の左隣のセル
-
エクセルで、指定の値よりも大...
-
excelで、空白を除いてデータを...
-
セルを結合した時のエクセル集...
-
EXCELでマイナス値の入ったセル...
-
エクセルで、A2のセルにA3...
-
エクセルで特定のセル内にだけ...
-
EXCELのcountif関数での大文字...
-
エクセルに入力後、別シートの...
-
同一セル内の重複文字を削除し...
-
【Excel】4つとばしで合計する方法
-
条件付き書式の色付きセルのカ...
-
【Excel】IF文「ある文字を含ん...
-
エクセルで年月日から月日のみへ
-
エクセルでエンターを押すと任...
-
エラー「#REF」の箇所を置き換...
-
Excelで大量のセルに一気に関数...
おすすめ情報