No.1
- 回答日時:
・貼り付ける前はどのような所にあるデータなのでしょうか?
・『A列とB列の完全一致データ』とはA列の値とB列の値が同じ場合との解釈で宜しいのでしょうか?
・『膨大な』とは100万行とか?(Excelの最大行数は、1,048,576 行)
それとも1~5万行程度?
No.4
- 回答日時:
No.3 です。
>についたしますが
追加しますの間違いでした。
あと
>膨大なデータ数ですので処理に時間はかかると思っておりますが
何か作業をやってみて時間がかかるので改善案と言う事でしょうか?
それともまだやってなく手の憶測ですか?
まぁデータ数次第ですがPowerQueryって機能もあるようですしね。
⇒元のデータがどこにあるのかにもよりそう。
有難うございます。いつも重複をチェックするのですが、並び替えの上下目視で合わせています。=EXACTで上下の判定のみなのですが、効率的なやり方ではないので、改善したいと思っております。
補足説明を追加いたしましたので、今一度のご指導を宜しくお願いいたします。
No.5
- 回答日時:
こんにちは
こんな感じでしょうか?
※ 不明点は勝手に想定。
Sub Q_13270809()
Dim ws As Worksheet
Set ws = ActiveSheet
With Worksheets.Add(after:=ws)
ws.Range("A:M").Copy .Range("B1")
.Range("B1").CurrentRegion.Columns(1).Offset(, -1).FormulaLocal = "=IF(B1=C1,"""",1)"
If Application.Max(.Columns(1)) > 0 Then _
.Columns(1).SpecialCells(xlCellTypeFormulas, xlNumbers).EntireRow.Delete
.Columns(1).Delete
End With
End Sub
No.8
- 回答日時:
こんばんは
出力の位置関係はどうします?ソートしますか(元データ順)・・
それとも2つ目が出てきた順で良いですか・・
ソートする 例見出しは考慮していません 新規ブックで操作されます
処理速度はデモデータが無いので未確認
Sub Example01()
ActiveSheet.Copy
Dim dic As Object
Set dic = CreateObject("Scripting.dictionary")
Dim arData As Variant
Dim ary()
Dim i As Long, j As Long
Dim v As String
Dim Rng As Range
arData = Range(Cells(1, "A"), Cells(Rows.Count, "M").End(xlUp)).Value
For i = 1 To UBound(arData)
v = arData(i, 1) & arData(i, 2)
If Not dic.Exists(v) Then
dic.Add v, 0
Else
If dic.Item(v) = 0 Then
ReDim Preserve ary(j)
ary(j) = v
j = j + 1
End If
dic.Item(v) = dic.Item(v) + 1
End If
Next
Set dic = Nothing
Dim k, dupData()
Dim n As Long, x As Long
For j = 0 To UBound(ary)
For i = 1 To UBound(arData)
v = arData(i, 1) & arData(i, 2)
If StrComp(v, ary(j)) = 0 Then
For x = 1 To UBound(arData, 2)
ReDim Preserve dupData(UBound(arData, 2), n)
dupData(0, n) = i
dupData(x, n) = arData(i, x)
Next
n = n + 1
End If
Next i
Next
Range("A1").CurrentRegion.ClearContents
Range("A1").Resize(UBound(dupData, 2) + 1, UBound(dupData, 1) + 1).Value = WorksheetFunction.Transpose(dupData)
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending
Columns(1).Delete
End Sub
No.9
- 回答日時:
#8です
Macエクセルですか・・・
残念です
CreateObject("Scripting.dictionary")が使えません
StrCompも使えるか分かりません
一応、 https://qiita.com/r_keir/items/6f03a753bbd32dc8c …
で対策し添削する必要があるようです
ローカル環境にMacエクセルが無い為、代替え手法が上手くいくか、
処理速度などの確認も出来ない為、これ以上の回答は出来そうもありません
No.10
- 回答日時:
一応
処理時間は分かりません・・未検証
Sub Example02()
Application.ScreenUpdating = False
ActiveSheet.Copy
Dim arData As Variant
Dim i As Long
Dim v()
Dim Rng As Range
arData = Range(Cells(1, "A"), Cells(Rows.Count, "M").End(xlUp)).Value
ReDim v(1 To UBound(arData))
For i = 1 To UBound(arData)
v(i) = arData(i, 1) & arData(i, 2)
Next
Cells(1, "N").Resize(UBound(v)) = WorksheetFunction.Transpose(v)
For i = 1 To UBound(v)
If Application.CountIf(Range(Cells(1, "N"), Cells(Rows.Count, "N").End(xlUp)), v(i)) <= 1 Then
If Rng Is Nothing Then
Set Rng = Cells(i, 1)
Else
Set Rng = Union(Rng, Cells(i, 1))
End If
End If
Next
Rng.EntireRow.Delete
Columns("N:N").Delete
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending
Set Rng = Nothing
Application.ScreenUpdating = True
End Sub
有難うございます。
マクロに追加して実行してみたところ、
ペーストしたデータのまま摘出されている感じで、
新規ブックが立ち上がるのみとなっております。
みなさまの環境では、
稼働している状態なのに、
何が悪いのか全く見当がつきません。
工程のどこか悪いか検討つきますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 更新前と更新後の差分をVBAを使って抜き出したい 5 2023/06/01 14:35
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) ListView重複データ削除 2 2022/08/05 18:12
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pandasでsqlite3にテーブル作成...
-
【VB】セルが空になるまで処理...
-
csvデータ不要列の削除をbatフ...
-
データテーブルの使い方に関して
-
一週間前から,今までVBAで行っ...
-
JDBCを使ってdate型へのINSERT...
-
下記の問合せを行うクエリを、 ...
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
データ削除とSQL*Loaderでのイ...
-
T-SQLで任意の箇所で強制終了す...
-
オラクルのUPDATEで複数テーブル
-
SELECT INTOで一度に複数の変数...
-
既存データをINSERT文にして出...
-
PostgreSQLのtimestamp型で時間...
-
結合したテーブルをSUMしたい
-
右向き、左向きの速度が最大と...
-
SQLで、Join句で結合したテ...
-
エラーを起こす方法
-
平均値のもとめ方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pandasでsqlite3にテーブル作成...
-
csvデータ不要列の削除をbatフ...
-
Excel VBAのユーザーフォームで...
-
VBAでの行数を揃える方法
-
追加クエリで重複データなしで...
-
【VB】セルが空になるまで処理...
-
マクロでファイルを読み込み、...
-
EXCELで外部データの取り込みが...
-
ListBoxにAddItemする際、重複...
-
JDBCを使ってdate型へのINSERT...
-
ACCESS VBAでSeekメソッドの処...
-
自作アプリからAPIで他のアプリ...
-
MySQLでauto_incrementをつかわ...
-
エクセルで去年のデータを今年...
-
エクセル 2つの列にある値の完...
-
PHPとMYSQL、DBのデータが空の...
-
データテーブルの使い方に関して
-
リストボックスとDataGridコン...
-
vacummdbについて
-
【ExcelVBA】範囲選択の方法に...
おすすめ情報
皆様、情報が足りず申し訳ございません。
画像をつけました。
実際にはA列からM列まで入力されておりまして、
膨大といいましても2万行くらいかと思っております。
見出し行について画像に入っておりませんが、
実際は見出し行が入っております。
実際のデータは別のエクセルデータになるのですが、
シート1にペーストした時に、シート2に摘出されるようにしたいと
思っております。
貼り付ける前は別のエクセルデータになりますので、
自分でコピーしてきて貼り付けることを想定しております。
Qchan1962さんのVBAをsheet1に入れまして、コピー元からペーストしてみると何も起こりませんので、実行を押してみた所、新規ブックが立ち上がったのですが、エラーが出まして、「ActiveX コンポーネントはオブジェクトを作成できません。」と出てしまいました。理由がわからないのですが、
エクセルのバージョンなど関係あるのでしょうか。
当方、Macでエクセルバージョンは16.16.27となります。
ご指導よろしくお願いいたします。