重複した時間枠を識別
同じ人物の複数のエントリを含む重複行を見つけたい場合、および重複エントリを見つけたい場合は、この記事を見逃してはなりません。重複する行を識別するのに役立つマクロコードを提供します。この記事では、特定の列に基づいて重複する行を見つける方法を学習します。
質問:人々のために複数のタイムスタンプが付けられたエントリを含むスプレッドシートがあります。これらの人々は、同時に複数の場所で出勤または退勤することができます。データを検索し、特定の人の時間が重複する赤い線で強調表示する数式またはマクロを作成しようとしています(この場合、どちらが目的を最もよく達成するかはわかりません)。これは可能ですか、誰かが助けてくれるものですか?どうもありがとう。
元の質問はhttp://www.excelforum.com/excel-general/1092140-identifying-duplicate-time-frames.html [here]
にあります。以下は前のシートのスナップショットです:
以下はアフターシートのスナップショットです:
コードを取得するには; Visual Basicエディタ画面を起動するには、以下の手順に従う必要があります。[開発者]タブをクリックします。[コード]グループから、[VisualBasic]を選択します
-
以下のコードを標準モジュールにコピーします
Sub FindOverlapTime() Dim rng As Range, cell As Range, trng As Range, tcell As Range Dim lr As Long lr = Cells(Rows.Count, "A").End(xlUp).Row Range("A2:H" & lr).Interior.ColorIndex = xlNone Set rng = Range("C2:C" & lr) For Each cell In rng If Application.CountIf(Range("C2", cell), cell.Value) > 1 Then Set trng = Range("F2:F" & cell.Row - 1) For Each tcell In trng If tcell.Offset(0, -3) = cell Then If (cell.Offset(0, 3) >= tcell And cell.Offset(0, 3) <= tcell.Offset(0, 1)) _ Or (cell.Offset(0, 4) >= tcell And cell.Offset(0, 4) <= tcell.Offset(0, 1)) Then Range("A" & cell.Row & ":H" & cell.Row).Interior.ColorIndex = 3 End If End If Next tcell End If Next cell End Sub
image:https://www.office-skill.site/images/wp-content-uploads-2015-07-image-43.png [image 4、width = 624、height = 293] *マクロを実行すると、結果が得られます。以下のスナップショットを参照してください:
コードの説明:
rng、cell、trng、tcellを範囲Lrとして宣言します* lr = Cells(Rows.Count、 “A”)。End(xlUp).Rowは、現在のシートの最後の行をチェックします。
-
Range( “A2:H”&lr).Interior.ColorIndex = xlNone;これにより、セルA2からH列から最後の行までの範囲が選択され(この例ではA2:H5が選択されます)、色が塗りつぶされないようにします。
rng = Range( “C2:C”&lr);を設定します。列C(プロファイルID)は、rngの各セルのrngに格納されます。ここで、rngのFor eachループ、つまり列Cを実行します。IfApplication.CountIf(Range( “C2″、cell)、cell.Value)> 1 Then;これにより、セル値が1より大きい回数がチェックされます。 1より大きいことが見つかった場合は、trng = Range( “F2:F”&cell.Row-1);を設定します。次に、列Fを設定します。つまり
TRNGでのIN時間*次に、trngでFor Each Loopを実行し、重複する行があるかどうかを確認し、重複する行がある場合はそれを赤色で強調表示します。
結論:このようにして、マクロコードを使用して重複する値を見つけ、後で削除することができます。
私たちのブログが気に入ったら、Facebookで友達と共有してください。また、TwitterやFacebookでフォローすることもできます。
_私たちはあなたからの連絡をお待ちしております。私たちの仕事を改善、補完、または革新し、あなたのためにそれをより良くする方法を教えてください。 [email protected]_までご連絡ください