|
▼Nishimura さん:
こんばんは。
>ただ、このような現象が出ます
> I J
>
>8 AAAAAA
>9 AAAAAA
>10 AAAAAA
>11 BBBBBB
>12 CCCCCC
>13 CCCCCC
>14 CCCCCC
>15 DDDDDD 1
>16 CCCCCC 1
>17 CCCCCC
>
>誤データが2件と出ます。
>実はCCCCCの塊の中にDDDDDが1件混じりこんでいるので
>1件が正しいのですが・・・
ん? 1件と表示されますけどね!!
同期を取るためにサンプルデータもコードで記述します。
新規ブックにて、標準モジュールに
'============================================================
Sub main()
Dim rng As Range
Dim dif As Long
Call mk_sample
MsgBox "サンプルデータ作成しました Reday?"
Set rng = Range("i8", Cells(Rows.Count, "i").End(xlUp))
If rng.Row >= 8 Then
With rng
dif = .Column
With .Offset(0, 1)
'↑作業列はJ列 With .Offset(0, 3)とすればL列が作業列
dif = dif - .Column
.Value = ""
With .Cells(2).Resize(.Rows.Count)
.Formula = "=IF(r[-1]c[" & dif & _
"]=rc[" & dif & "],"""",IF(COUNTIF(r" & _
.Cells(0).Row & "c[" & dif & _
"]:rc[" & dif & "],rc[" & dif & _
"])>1,1,""""))"
End With
MsgBox "「誤データ」が " & Application.Count(.Cells) & "件(以上)です。"
.EntireColumn.Value = ""
End With
End With
End If
End Sub
'==================================================================
Sub mk_sample()
Cells.ClearContents
Range("i8:i17").Value = _
Application.Transpose(Array("AAAAAA", "AAAAAA", _
"AAAAAA", "BBBBBB", "CCCCCC", "CCCCCC", _
"CCCCCC", "DDDDDD", "CCCCCC", "CCCCCC"))
End Sub
として、適当なシートをアクティブにして試してみてください。
誤データは 1件と表示されますよ!!
>
>それから書き忘れましたが、会計処理はかなりルール化されて
>おり、顧客名の順番はいつも同じです。欠番はありません。
> ~~~~~~~~~~~~~~~~~~~~~~~~
>最小行でも1行は使われています。
>ただ顧客単位の集計により行数が異なるのです。
>入力時に伝票の記入ミスやコードの入力ミスで顧客名が
>間違えるのです。
>
>ある意味ではArray処理でも出来るのかな?と思ったりしています。
>今までは一顧客につき必ず2行が使われていたので、Autofilterの繰り返し
>で、その都度複数行のチェックをさせる方法を活用していたのです。が
>今回から最低行が1行の顧客が出てきて検出に間違った数字が出てきました。
>よろしくお願いします。
|
|