A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは!
A~F列データで重複した以内データで
Sheet2・Sheet3の各シートで他方のシートにないデータをSheet1に表示すれば良いのですね。
>大量にあるExcelデータで・・・
というコトなので、VBAにしてみました。
尚、Sheet2・Sheet3とも1行目は項目行でデータは2行目以降にあるという前提です。
一例です。
標準モジュールにしてください。
Sub Sample1()
Dim myDic1 As Object, myDic2 As Object
Dim i As Long, j As Long, lastRow As Long
Dim myStr As String, cnt As Long
Dim myKey1, myKey2, myR, myAry
Set myDic1 = CreateObject("Scripting.Dictionary")
Set myDic2 = CreateObject("Scripting.Dictionary")
With Worksheets("Sheet2")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
myR = Range(.Cells(2, "A"), .Cells(lastRow, "F"))
For i = 1 To UBound(myR, 1)
For j = 1 To 6
myStr = myStr & myR(i, j) & "_"
Next j
If Not myDic1.exists(myStr) Then
myDic1.Add myStr, ""
End If
myStr = ""
Next i
End With
With Worksheets("Sheet3")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
myR = Range(.Cells(2, "A"), .Cells(lastRow, "F"))
For i = 1 To UBound(myR, 1)
For j = 1 To 6
myStr = myStr & myR(i, j) & "_"
Next j
If Not myDic2.exists(myStr) Then
myDic2.Add myStr, ""
End If
myStr = ""
Next i
End With
myKey1 = myDic1.keys
myKey2 = myDic2.keys
cnt = 1
With Worksheets("Sheet1")
.Range("A:F").ClearContents
.Range("A1:F1").Value = Worksheets("Sheet2").Range("A1:F1").Value
For i = 0 To UBound(myKey1)
If Not myDic2.exists(myKey1(i)) Then
myAry = Split(myKey1(i), "_")
cnt = cnt + 1
For j = 0 To UBound(myAry)
.Cells(cnt, j + 1) = myAry(j)
Next j
End If
Next i
For i = 0 To UBound(myKey2)
If Not myDic1.exists(myKey2(i)) Then
myAry = Split(myKey2(i), "_")
cnt = cnt + 1
For j = 0 To UBound(myAry)
.Cells(cnt, j + 1) = myAry(j)
Next j
End If
Next i
.Activate
End With
Set myDic1 = Nothing
Set myDic2 = Nothing
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) excelの列幅高さが勝手に変わる(特定のPCだけ) 8 2022/07/14 16:51
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excelで連続して重複する行数の違う列を参照する方法 5 2023/04/23 06:15
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Excelの中央値の複数条件について 3 2022/05/24 21:22
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
複数シートからデータを拾って...
-
シート削除して同名シート追加...
-
トランジスタの選び方
-
excelの不要な行の削除ができな...
-
EXCELで2つのファイルから重複...
-
エクセルで名簿を50音で切り分ける
-
エクセルVBAで、特定文字から始...
-
EXCEL 複数行のデータを1行にま...
-
Googleスプレッドシートフィル...
-
オートフィルタで抽出したデー...
-
他のシートの一番下の行データ...
-
電子部品のデータシートの探し方
-
Excelで日付変更ごとに、自動的...
-
EXCELのシートの保護機能につい...
-
(VBAにて)日付でデータを抽出す...
-
時間帯の重複を除いた集計について
-
【Excel】マクロでグラフ系列に...
-
ファンモータが作動しない。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
excelの不要な行の削除ができな...
-
Excelで日付変更ごとに、自動的...
-
VBAで CTRL+HOMEの位置へ移動...
-
トランジスタの選び方
-
EXCELで2つのファイルから重複...
-
EXCEL 複数行のデータを1行にま...
-
他のシートの一番下の行データ...
-
オートフィルタで抽出したデー...
-
エクセルのカメラ機能について
-
(VBAにて)日付でデータを抽出す...
-
エクセルで名簿を50音で切り分ける
-
別々のシートの表をピボットテ...
-
Excel 売上管理シートに入力し...
-
Excelマクロ 差分抽出の方法が...
-
EXCEL の表を一行ずつシートに...
-
エクセルVBAで、特定文字から始...
おすすめ情報
職場のRC環境がネットに繋がっていないためマクロを直接入力しましたが、今、次のところコンパイルエラー構文エラーになっています。
myStr = myStr & myR(i, j) & "_"
Next j
If Not
の If Not のところです。