トップページ > プログラム > 2016年06月13日 > 8U53ckAC

書き込み順位&時間帯一覧

2 位/204 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000001002200000000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part41©2ch.net

書き込みレス一覧

Excel VBA 質問スレ Part41©2ch.net
576 :デフォルトの名無しさん[sage]:2016/06/13(月) 09:25:34.07 ID:8U53ckAC
A列とB列に1以上20以下の整数が200行ほど並んでます(数字は頻繁に更新される)
AセルとBセルの組合せの重複をチェックしたいのですが、どうやれば良いですか。

今はC列に(C1=A1*21+B1)の作業域を設け、n行が更新されるたびに
If Application.CountIf (Range ("C1:C200"), Cells(n,3)) > 1
とやってますが、少しでも時間短縮を図りたいのです。

つまりわかりやすさよりもスピード重視でお願いしますm(_ _)m
Excel VBA 質問スレ Part41©2ch.net
579 :デフォルトの名無しさん[sage]:2016/06/13(月) 12:46:55.80 ID:8U53ckAC
>>577
ありがとうございます!
フィルターオプション&重複でググって解決しました。
初心者故おかしいかも知れませんが、これで求めるチェックができました。
お陰で、作業域(演算)の分かなりのスピードアップが図れそうです。

Range("a1:b9").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
x = WorksheetFunction.Subtotal(3, Range("a1:a9"))

Range("a1:b9").AdvancedFilter Action:=xlFilterInPlace, Unique:=False
y = WorksheetFunction.Subtotal(3, Range("a1:a9"))

MsgBox y - x
Excel VBA 質問スレ Part41©2ch.net
580 :デフォルトの名無しさん[sage]:2016/06/13(月) 12:56:12.13 ID:8U53ckAC
>>578
求める組合せをループ(バックトラック法)かけて延々と調べるものです。
具体的には4列(A-D)あって、次の4条件のしばりがあります。
A<>C
B<>D
A&B C&D 重複無し
A&D C&B 重複無し

力技で判定していたので、長時間かかって終わりそうになかったもので・・
Excel VBA 質問スレ Part41©2ch.net
581 :デフォルトの名無しさん[sage]:2016/06/13(月) 13:01:37.02 ID:8U53ckAC
ちょっと違った・・
An <> Bn
A&B 組合せ重複無し
Cn <> Dn
C&D 組合せ重複無し
A&B C&D 組合せ重複無し
A&D C&B 組合せ重複無し
Excel VBA 質問スレ Part41©2ch.net
582 :デフォルトの名無しさん[sage]:2016/06/13(月) 13:05:35.50 ID:8U53ckAC
すみません・・

An <> Cn
A&C 組合せ重複無し
Bn <> Dn
B&D 組合せ重複無し
A&B C&D 組合せ重複無し
A&D C&B 組合せ重複無し


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。