質問編集履歴

3

画像追加

2021/08/09 06:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,13 @@
1
+ ![イメージ説明](5c13006206672273cb87d35e9fe65edc.jpeg)
2
+
3
+ Sheet1イメージ↑
4
+
5
+ ![イメージ説明](da4ee38bcaf3a81e379445992d6db065.jpeg)
6
+
7
+ Sheet2イメージ↑
8
+
9
+
10
+
1
11
  Sheet1にある各文字列を基準にしてSheet2にある各文字列と比べます。
2
12
 
3
13
  そしてどれぐらい違っているか比率をパーセンテージでSheet2のA列のセルにそれぞれ出していきます。

2

修正

2021/08/09 06:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
-
19
+ ```ここに言語を入力
20
20
 
21
21
  1.Sub 比較テスト()
22
22
 
@@ -58,13 +58,13 @@
58
58
 
59
59
  15.Sheets(S1).Activate
60
60
 
61
- 16.Set Table1 = Worksheets(S1).Range(Cells(2, 1), Cells(Endrow, 1)) 'Sheet1のデータ範囲を配列化
61
+ 16.Table1 = Worksheets(S1).Range(Cells(2, 1), Cells(Endrow, 1)) 'Sheet1のデータ範囲を配列化
62
62
 
63
63
 
64
64
 
65
65
  17.Sheets(S2).Activate
66
66
 
67
- 18.Set Table2 = Worksheets(S2).Range(Cells(3, 2), Cells(Finalrow, 3)) 'Sheet2のデータを配列化
67
+ 18.Table2 = Worksheets(S2).Range(Cells(3, 2), Cells(Finalrow, 3)) 'Sheet2のデータを配列化
68
68
 
69
69
 
70
70
 
@@ -149,3 +149,5 @@
149
149
 
150
150
 
151
151
  53.End Sub
152
+
153
+ ```

1

コードミス修正

2021/08/08 11:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -52,104 +52,100 @@
52
52
 
53
53
  13.Columns(1).Style = "Percent"
54
54
 
55
-
56
-
57
- 14.Sheets(S2).Activate
58
-
59
- 15.Finalrow = Sheets(S2).Cells(Rows.Count, 2).End(xlUp).Row 'Sheet1データ最終セル
55
+ 14.Finalrow = Sheets(S2).Cells(Rows.Count, 2).End(xlUp).Row 'Sheet1データ最終セル
60
56
 
61
57
 
62
58
 
63
- 16.Sheets(S1).Activate
59
+ 15.Sheets(S1).Activate
64
60
 
65
- 17.Set Table1 = Worksheets(S1).Range(Cells(2, 1), Cells(Endrow, 1)) 'Sheet1のデータ範囲を配列化
61
+ 16.Set Table1 = Worksheets(S1).Range(Cells(2, 1), Cells(Endrow, 1)) 'Sheet1のデータ範囲を配列化
66
62
 
67
63
 
68
64
 
69
- 18.Sheets(S2).Activate
65
+ 17.Sheets(S2).Activate
70
66
 
71
- 19.Set Table2 = Worksheets(S2).Range(Cells(3, 2), Cells(Finalrow, 3)) 'Sheet2のデータを配列化
67
+ 18.Set Table2 = Worksheets(S2).Range(Cells(3, 2), Cells(Finalrow, 3)) 'Sheet2のデータを配列化
72
68
 
73
69
 
74
70
 
75
- 20.For i = 2 To Endrow Step 1 'Sheet1のデータ最終行まで
71
+ 19.For i = 2 To Endrow Step 1 'Sheet1のデータ最終行まで
76
72
 
77
- 21.For k = 3 To Finalrow Step 1 'Sheet1とSheet2のデータがまったく同じかを確認
73
+ 20.For k = 3 To Finalrow Step 1 'Sheet1とSheet2のデータがまったく同じかを確認
78
74
 
79
- 22.Sheets(S2).Activate
75
+ 21.Sheets(S2).Activate
80
76
 
81
- 23.If Table2(k, 2).Value = "" Then
77
+ 22.If Table2(k, 2).Value = "" Then
82
78
 
83
- 24.Table2(k, 2).Select
79
+ 23.Table2(k, 2).Select
84
80
 
85
- 25.ElseIf Len(Table2(k, 2).Value) > Len(Table1(i, 1).Value) Then
81
+ 24.ElseIf Len(Table2(k, 2).Value) > Len(Table1(i, 1).Value) Then
86
82
 
87
- 26.Sheets(S2).Activate
83
+ 25.Sheets(S2).Activate
88
84
 
89
- 27.Table2(k, 2).Select
85
+ 26.Table2(k, 2).Select
90
86
 
91
- 28.ElseIf InStr(Table1(i, 1), Table2(k, 2)) > 0 Then
87
+ 27.ElseIf InStr(Table1(i, 1), Table2(k, 2)) > 0 Then
92
88
 
93
- 29.Table2(k, 1) = 1
89
+ 28.Table2(k, 1) = 1
94
90
 
95
91
 
96
92
 
97
- 30.Else 'Sheet1とSheet2のデータデータがまったく同じでなければ、一文字ごとに確認して比率を出す
93
+ 29.Else 'Sheet1とSheet2のデータデータがまったく同じでなければ、一文字ごとに確認して比率を出す
98
94
 
99
- 31.For n = 1 To Len(Table1(i, 1)) Step 1
95
+ 30.For n = 1 To Len(Table1(i, 1)) Step 1
100
96
 
101
- 32.str = Mid(Table1(i, 1), n, 1)
97
+ 31.str = Mid(Table1(i, 1), n, 1)
102
98
 
103
- 33.If InStr(Table2(k, 2), str) > 0 Then
99
+ 32.If InStr(Table2(k, 2), str) > 0 Then
104
100
 
105
- 34.cnt = cnt + 1 '一致した文字をカウントする
101
+ 33.cnt = cnt + 1 '一致した文字をカウントする
106
102
 
107
- 35.End If
103
+ 34.End If
108
104
 
109
- 36.Next n
105
+ 35.Next n
110
106
 
111
107
 
112
108
 
113
- 37.Table2(k, 1) = cnt / Len(Table1(i, 1))
109
+ 36.Table2(k, 1) = cnt / Len(Table1(i, 1))
114
110
 
115
- 38.cnt = 0
111
+ 37.cnt = 0
116
112
 
117
- 39.End If
113
+ 38.End If
118
114
 
119
115
 
120
116
 
121
- 40.Sheets(To_Sheet).Range(Table2(3, 1), Table2(Finalrow, 7)).Sort Columns(1), xlDescending
117
+ 39.Sheets(To_Sheet).Range(Table2(3, 1), Table2(Finalrow, 7)).Sort Columns(1), xlDescending
122
118
 
123
- 41.If Table2(k, 1).End(xlDown).Row >= 0.7 Then
119
+ 40.If Table2(k, 1).End(xlDown).Row >= 0.7 Then
124
120
 
125
- 42.Table1(i, 2).Value = Table2(k, 3).Value
121
+ 41.Table1(i, 2).Value = Table2(k, 3).Value
126
122
 
127
123
 
128
124
 
129
- 43.Else
125
+ 42.Else
130
126
 
131
- 44.Sheets(S2).Activate
127
+ 43.Sheets(S2).Activate
132
128
 
133
- 45.Table2(k, 1).Select
129
+ 44.Table2(k, 1).Select
134
130
 
135
- 46.End If
131
+ 45.End If
136
132
 
137
- 47.Next k
133
+ 46.Next k
138
134
 
139
- 48.Next i
135
+ 47.Next i
140
136
 
141
137
 
142
138
 
143
- 49.'配列化したデータをシートに戻す
139
+ 48.'配列化したデータをシートに戻す
144
140
 
145
- 50.Sheets(S1).Activate
141
+ 49.Sheets(S1).Activate
146
142
 
147
- 51.Sheets(S1).Range(Cells(2, 1), Cells(Endrow, 2)) = Table1
143
+ 50.Sheets(S1).Range(Cells(2, 1), Cells(Endrow, 2)) = Table1
148
144
 
149
- 52.Sheets(S2).Activate
145
+ 51.Sheets(S2).Activate
150
146
 
151
- 53.Sheets(S2).Range(Cells(3, 1), Cells(Finalrow, 3)) = Table2
147
+ 52.Sheets(S2).Range(Cells(3, 1), Cells(Finalrow, 3)) = Table2
152
148
 
153
149
 
154
150
 
155
- 54.End Sub
151
+ 53.End Sub