No.3ベストアンサー
- 回答日時:
以下のマクロを標準モジュールへ登録してください。
Option Explicit
Public Sub 重複チェック()
Dim maxrow As Long
Dim row As Long
Dim dicT0 As Object
Dim dicT1 As Object
Dim key1 As Variant
Dim key2 As Variant
Dim key As Variant
Set dicT0 = CreateObject("Scripting.Dictionary") ' 連想配列の定義
Set dicT1 = CreateObject("Scripting.Dictionary") ' 連想配列の定義
maxrow = Cells(Rows.Count, "H").End(xlUp).row 'sheet H列 最終行を求める
'既存の色を解除
Range("A2:W" & maxrow).Select
With Selection.Interior
.Pattern = xlNone
End With
For row = 2 To maxrow
key1 = Cells(row, "H").Value
If key1 = "日本" Then
key2 = Cells(row, "V").Value
Else
key2 = Cells(row, "W").Value
End If
If key1 = "日本" Or key2 <> "除外" Then
key = key1 & "|" & key2
If dicT0.exists(key) = True Then
dicT1(row) = True
dicT1(dicT0(key)) = True
Else
dicT0(key) = row
End If
End If
Next
For Each key In dicT1
Range("A" & key & ":W" & key).Select
With Selection.Interior
.Color = 65535
End With
Next
MsgBox ("完了")
End Sub
No.5
- 回答日時:
すみません。
No3の回答ですが、
>3)日本以外の場合は、重複判定ですが、 ①「国名+W行の文字列」が重複の場合、重複とする。 (この場合、青色部分は重複しない。)
> ②W行の文字列のみで、重複の判定をする。 (この場合、青色部分は重複する) ①②のどちらでしょうか。
>の設問に対する回答は「 ①「国名+W行の文字列」が重複の場合、重複とする。 (この場合、青色部分は重複しない。)」でした。
①の仕様で作成していました。(②ではありません)
したがって、結果的にNo3がそのまま使えます。
できました!
こういう場合はkeyを使うのですね。
他にも応用できそうなので、
色々と悩んでみたいと思います。
ありがとうございました。
No.4
- 回答日時:
3)日本以外の場合は、重複判定ですが、 ①「国名+W行の文字列」が重複の場合、重複とする。
(この場合、青色部分は重複しない。) ②W行の文字列のみで、重複の判定をする。 (この場合、青色部分は重複する) ①②のどちらでしょうか。の設問に対する回答は「 ①「国名+W行の文字列」が重複の場合、重複とする。 (この場合、青色部分は重複しない。)」でした。
>特にこの部分が分からなくて悩んでいるので、
>よろしければ教えていただけますでしょうか。
判らないというのは、①と②の違いが判らないという意味ですか?
それとも①を実装するには、どうすれば良いかわからないという意味ですか?
どちらの意味でしょうか?
No.1
- 回答日時:
補足要求です。
1)1行目は見出しですか。(添付図のグレー部分)
2)W行が除外の場合、無視するとなってますが、国名が日本でも同様ですか。
①日本でも無視するなら、緑の部分は重複しない。
②日本は無視しないなら、緑の部分は重複する。
①②のどちらでしょうか?
3)日本以外の場合は、重複判定ですが、
①「国名+W行の文字列」が重複の場合、重複とする。
(この場合、青色部分は重複しない。)
②W行の文字列のみで、重複の判定をする。
(この場合、青色部分は重複する)
①②のどちらでしょうか。
4)日本の場合は、V列に除外という文字があっても、通常の文字列として扱う。
従って、オレンジの部分は重複する。・・・これであってますか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) Excel 文字列を結合するときに重複をなくしたい 関数・VBA 2 2022/12/12 10:40
- Excel(エクセル) エクセルでフィルタ後の列の重複を回避したい 6 2022/10/13 12:50
- Excel(エクセル) VBAで条件付き書式を設定 3 2023/07/14 17:52
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセルマクロ:複数列 重複があった場合、メッセージと印入れる方法
Excel(エクセル)
-
エクセルVBAで複数列の重複チェックをするには
Excel(エクセル)
-
複数セルの値が重複しているかどうかを調べたい
Excel(エクセル)
-
-
4
離れた2列を比べて重複しないデータを隣の列に表示させる方法 Excel
Visual Basic(VBA)
-
5
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
6
EXCEL VBA Dictionaryで複数の値を格納→離れた位置に出力する方法
Excel(エクセル)
-
7
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
8
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「言う通り」と「言った通り」...
-
サクラエディタは複数行に渡る...
-
「**者のかた」って言いますか?
-
chrome起動したら「uBlock Orig...
-
問題文で「傍線部ⓐⓑⓒⓓⓔの主語を...
-
「仰せの通り」は「仰る通り」...
-
【VBA】特定の範囲で同じ値を含...
-
100MBとは0.1GBのことですか?
-
PDFデータ A-2サイズの2つの...
-
world wind はwindows98では使...
-
サン・ピエトロ大聖堂について
-
アドレスブックのカードの重複...
-
kindle本ってAmazonの電子書籍...
-
年金について
-
4/1000とは、0.4ですか?
-
高1です。選択科目の理由って...
-
±10%や±5%ってどうやって計算す...
-
英検の筆記80~100字だったんで...
-
「m^2+n^2が奇数ならば、m、nの...
-
教科傍用。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「言う通り」と「言った通り」...
-
サクラエディタは複数行に渡る...
-
重複しないグループ分けをエク...
-
kindle本ってAmazonの電子書籍...
-
「**者のかた」って言いますか?
-
【VBA】特定の範囲で同じ値を含...
-
「仰せの通り」は「仰る通り」...
-
脳内イメージに逆らうと脳ぼん...
-
100MBとは0.1GBのことですか?
-
VBAを使用した、複数条件での重...
-
問題文で「傍線部ⓐⓑⓒⓓⓔの主語を...
-
異なる色の9個の玉を3個ずつ3つ...
-
PDFデータ A-2サイズの2つの...
-
硬貨を投げて続けて表が2回でな...
-
「○○極まりないことこの上ない...
-
「過信し過ぎ」はtoo muchの意...
-
重複フォルダ検索
-
サブスクで月2万ってどうなんで...
-
重複しない組み合わせのプログラム
-
表または行内の重複する数値の削除
おすすめ情報
回答いたします。
1)1行目は見出しですか。→見出しです。
2)W行が除外の場合、無視するとなってますが、国名が日本でも同様ですか。→①重複しない(日本の場合はW列に「除外」という文字列は発生しない&その他の文字列が重複しても判定は不要です。そのためV列で判定したいです。)
3)日本以外の場合は、重複判定ですが→ ②でお願いします。(国名ごとに、W列の文字列を判定)
4)日本の場合は、V列に除外という文字があっても、通常の文字列として扱う。→重複でお願いします。判定したくないところに「除外」と入力しており、通常の文字列内に「除外」という文字列はありません。
追加補足要求です。 1)行はどのくらいありますか→3000行程度ですが、可変です。
tatsu99様
早速のご対応ありがとうございました。
コードを拝見いたしまして、
まだ実行はできていませんが
一点、私の回答ミスに気がつきました。
3)日本以外の場合は、重複判定ですが、 ①「国名+W行の文字列」が重複の場合、重複とする。 (この場合、青色部分は重複しない。) ②W行の文字列のみで、重複の判定をする。 (この場合、青色部分は重複する) ①②のどちらでしょうか。
の設問に対する回答は「 ①「国名+W行の文字列」が重複の場合、重複とする。 (この場合、青色部分は重複しない。)」でした。
特にこの部分が分からなくて悩んでいるので、
よろしければ教えていただけますでしょうか。
宜しくお願いいたします。