Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4138 / 13644 ツリー ←次へ | 前へ→

【58240】データの重複検索・削除と比較 初心者 08/10/13(月) 17:03 質問[未読]
【58248】Re:データの重複検索・削除と比較 ハチ 08/10/14(火) 14:27 発言[未読]

【58240】データの重複検索・削除と比較
質問  初心者  - 08/10/13(月) 17:03 -

引用なし
パスワード
   こんばんは。題名のVBAを作成したい初心者です。
どうかよろしくお願いします。

・execlのすでにあるデータを重複検索・削除と比較した結果を別シートに出力。
・各sampleのdata1のデータとdata2のデータがあり、その比較を行いたいです。
・データは最大128個です。
・重複していたら、重複分は消去する。
・一致・不一致の基準はsample毎にdata2にあるデータがdata1に含まれているかで判定
・data2にデータがないsampleは空欄。


■データ                                            
         data1                  data2                        
sample1    34    33    12    12    33    34   33   12    33    
sample2    3                      3                        
sample3                          1                                        
sample4    12    12    12         123    12                    
sample5    66                                        
sample6    19                     22                        
                                                                
●出力イメージ                                            
        data1                 data2                    判定結果
sample1    34    33    12        33    34    12           一致
sample2    3                    3                      一致
sample3                        1                     不一致
sample4    12                   123    12               不一致
sample5    66                                        
sample6    19                   22                    不一致

■自分なりに書いてみました。
'連結
Sub 連結()
  Dim Dic, m As Long, i As Long, buf As String, Keys
  Set Dic = CreateObject("Scripting.Dictionary")
  On Error Resume Next
  m = 3
  i = 8
  For m = 3 To 1055
    For i = 8 To 60
       buf = Cells(m, i).Value
       If Not Dic.Exists(buf) Then
       Dic.Add buf, buf
       End If
    Next i
  Next m
  ''出力
  Keys = Dic.Keys
  For i = 0 To Dic.Count - 1
    Cells(i + 2, 2) = Keys(i)
  Next i
  Set Did = Nothing
'  Dim Did
'  Set Did = CreateObject("Scripting.Dictionary")
'  For i = 8 To 60
'    buf = Cells(4, i).Value
'    If Not Did.Exists(buf) Then
'      Did.Add buf, buf
'    End If
'  Next i
'  ''出力
'  Keys = Did.Keys
'  For i = 0 To Dic.Count - 1
'    Cells(i + 3, 2) = Keys(i)
'  Next i
'  Set Did = Nothing
End Sub

【58248】Re:データの重複検索・削除と比較
発言  ハチ  - 08/10/14(火) 14:27 -

引用なし
パスワード
   ▼初心者 さん:

提示されているサンプルを見ると、
不一致の場合も重複した値を削除したデータを書き出す必要がありそうですね。

1.データの重複を削除する。
2.data2の値をdata1の対象行に対して、CountIf > 0 で判定していく

という感じでどうでしょう?

4138 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free