以前、重複行を網掛けにする処理で質問を載せましたが、
もう少し深くやりたくて試しているのですが、
無限ループが発生して困っております。
A B
1 aaa
1 aaa
1 aaa
2 aaa
2 aaa
2 aaa
3 bbb
3 bbb
4 aaa
4 aaa
上記データがあって結果を
A B C
1 aaa 重複
1 aaa 重複
1 aaa 重複
2 aaa 重複
2 aaa 重複
2 aaa 重複
3 bbb パス
3 bbb パス
4 aaa パス
4 aaa パス
B列の値が同じの場合は、A列の番号が大きいもののみパスと
するように処理を作成しようと思っております。
下記でまずはどのように値が返ってくるか試したのですが、
無限ループになってしまいました。
Dim i As Integer
Dim n As Integer
LastRow = Range("A65356").End(xlUp).Row
For i = 1 To LastRow
A_retsu = Cells(i, 1).Value
B_retsu = Cells(i, 2).Value
For n = 1 To LastRow
If A_retsu = Cells(n, 1).Value And B_retsu = Cells(n, 2) Then
MsgBox "パス"
Else
MsgBox "重複"
End If
Next
Next
End Sub
最終結果は、
3 bbb パス
3 bbb パス
4 aaa パス
4 aaa パス
上記だけを残して他は削除させる処理を作りたいです。
すいませんがお願いします
No.1ベストアンサー
- 回答日時:
C列に(C2セルに)
=IF(A2=MAX(IF(B$2:B$11=B2,A$2:A$11,"")),"パス","重複")
入れて Ctrl+Shift+Enter を押して決定します。
{=IF(A2=MAX(IF(B$2:B$11=B2,A$2:A$11,"")),"パス","重複")}
と{}で囲まれて配列関数になります。
そのセルを下までコピイすると
A B C
1 aaa 重複
1 aaa 重複
1 aaa 重複
2 aaa 重複
2 aaa 重複
2 aaa 重複
3 bbb パス
3 bbb パス
4 aaa パス
4 aaa パス
となりますので 後はマクロの記録で
オートフィルター 重複のみを表示
行を2行目からたっぷりと下まで選択
削除
オートフィルターに解除
マクロの記録の終わり
VBエディターで確認すると
Row("3:100").Slectとかありますので
Row("2;1000")とかに変更すればOKかと思います。
No.2
- 回答日時:
VBAで処理をするということだよね。
これは処理ロジックとして、経験から下記の処理をお勧めする。
(1)空き列に上行から連番を振る。元の順序に復帰させるためのもの。
(2)B列(昇順)+A列(降順、ここが肝心)でソート
(3)データ第2行から最終行までに着いて繰り返し。For Nextなど
データ第1行は「パス」とし、直前行B列を保持する変数と、直前行A列を保持する変数にデータ第1行のそれらをセット。
(4)今処理している行において、直前行のB列と変わったら「パス」と入れる。
(5)直前行とB列+A列が同じなら「パス」
(6)B列同じでもA列が変わったら、「重複」
(7)最後に(1)の連番でソートし元の順序に戻す。
==
上記は、まあ「ソート法」というべきやり方。
なぜこれを使わないとややこしいかというと、
質問例のaaaの4(最高値)に当たるものは、理論上データの最後まで探さないと決まらない。決まった段階(最終行)では、aaaで4(最高値)のあった行を行過ぎている。aaaごと最高値のあり場所(行)を記憶する方法もあるが。それでaaaごと毎回全レコードを総なめして探さないといけない。ロジックがややこしくなる。
ーーー
こういうのはいきなり我流のコードを挙げるのではなく、半日ぐらいロジックはどうすればよいかということを考えてみるべきだとおもう。
ロジックは自由なもので、思考の鋭さを反映するものなので、上記よりよいものがあるかも知れないと自省してはいるが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
パワーポイントの表
-
音声マークを一括非表示にしたい。
-
PowerPointVBAでスライドマスタ...
-
エクセル・パワーポイントなど...
-
PowerPointでスライドマスタの...
-
パワーポイント「スライドショ...
-
パワーポイントで、プレゼン用...
-
COUNTIFのやり方を教えてくださ...
-
みなさん、こんにちわ! パワー...
-
パワーポイントで資料を作る時 ...
-
パワーポイントで、シートをコ...
-
パワーポイント2019 図の透...
-
PowerPointのアニメーションで...
-
ホワイトボード 油性マジックの...
-
パワーポイントの研修が明日9時...
-
you tubeにパワポで作った動画...
-
Accessで Tabキーを押したとき...
-
PowerPointのオプションの設定...
-
パワーポイント。2つの矢印のワ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
音声マークを一括非表示にしたい。
-
パワーポイント「スライドショ...
-
パワーポイントの表
-
PowerPointでスライドマスタの...
-
エクセル・パワーポイントなど...
-
PowerPointVBAでスライドマスタ...
-
PowerPointのアニメーションで...
-
PowerPointで、作成されたファ...
-
エクセルでA3の大きさに資料...
-
ExcelのグラフをPowerPointに貼...
-
パワーポイントで資料を作る時 ...
-
パワーポイントのアニメーショ...
-
【パワーポイントのフォントが...
-
プレゼン時のポインター
-
PowerPoint2010、2021のスライ...
-
パワーポイントで、全てのスラ...
-
パワーポイントで説明しながら...
-
PowerPointのオプションの設定...
-
PowerPointの背景について
おすすめ情報