• ベストアンサー

2個の数字をひと塊として同じ塊を探してセルの塗潰し

いつもお世話になっております。 ご存じの方がお見えでしたら回答をよろしくお願い致します。 【質問】  添付図の様に各列2行分の数字(破線で囲った部分)をひと塊と捉え、  5列×20行の中で同じ塊が重複して存在したら黄色に塗潰す方法が  知りたいです。 【注意事項】  ・5列×20行に入る数字は1~31迄で重複してランダムに入ります。  ・ひと塊の重複は最低1つは存在します。  ・使用するエクセルは2016です。  以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1633/2478)
回答No.7

No3の微妙な変更です こちらの方が微妙に早いと思います。 Sub Test() Dim c As Range, d As Range Application.ScreenUpdating = False For Each c In Range("A1:E20") If c.Row Mod 2 = 1 Then For Each d In Range("A1:E20") If d.Row Mod 2 = 1 And c.Value = d.Value And c.Address <> d.Address _ And c.Offset(1, 0).Value = d.Offset(1, 0).Value Then c.Resize(2, 1).Interior.Color = vbYellow End If Next End If Next Application.ScreenUpdating = True End Sub

sazanami0422
質問者

お礼

何度も回答いただきありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

noname#252332
noname#252332
回答No.6

訂正ですすみません。最後の行。 【誤】あと下と右にコピー 【正】あと下と右に書式をコピー

sazanami0422
質問者

お礼

回答頂きありがとうございます。 関数でもできるのですね。 勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。
noname#252332
noname#252332
回答No.5

関数だけの方法を書いておきます。シートは汚れますが。 すぐ右に、上の数を100倍して下の数を加えた表を作ります。 G1は、=A1*100+A2 あと1行飛びに下にコピー。 右にコピー。 そのさらに右に、先ほど作った表の重複する数の表を作ります。 M1は、=COUNTIF($G$1:$K$19,G1) M2は、=COUNTIF($G$1:$K$19,G1) あと下と右にコピー。 最初の表に戻って、ホームタブの条件付き書式で新しいルールで「数式を使用して、書式設定するセルを決定」で、 A1の条件付き書式は、=M1>1 あと下と右にコピー

この投稿のマルチメディアは削除されているためご覧いただけません。
全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

補足してほしい。 (A)2行分のセルの値を考える (B)隣接したセルの値を考える ようだが ーー (1)隣接したセル(縦方向らしい)縦2セルで6-2を考えるとき、順序が逆の、2(上のセル)6 (下のセル)は対と考えるのか? (2)第三のペアーは存在するとするのか? (3) 2セルのマスを考えたとき、6-2(隣接2セル)とx-6,2-Y(隣接マス、4セルの中)(X,Yは何でも)は該当すると考えるのか? (上下2セルの組み合わせは固定か?便宜的なものか?) ーー 関数では複雑になり、VBAでやらざるを得ないような気がする。

sazanami0422
質問者

補足

回答頂きありがとうございます。 1)6-2の逆となる2-6はペアになりません。 2)第3のペアというのがいまいちわかりませんが、添付図に示したとおり、5列×20行の中に   6-2という組み合わせ(重複)がある分、セルを塗り潰します。 3)6-2(隣接2セル)とx-6,2-Yは、別の組み合わせと考えます。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1633/2478)
回答No.3

No1の訂正です。 質問の添付図と同じ結果となります。 Sub Test() Dim c As Range, d As Range Application.ScreenUpdating = False For Each c In Range("A1:E20") For Each d In Range("A1:E20") If c.Row Mod 2 = 1 And c.Value = d.Value And c.Address <> d.Address _ And c.Offset(1, 0).Value = d.Offset(1, 0).Value Then c.Resize(2, 1).Interior.Color = vbYellow End If Next Next Application.ScreenUpdating = True End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1633/2478)
回答No.2

No1は勘違い 1列2行ずつのブロックと気がつきませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1633/2478)
回答No.1

VBAで以下でいかがですか。 なお追加で A2A3とA8A9 1と6 A12A13とB4B5 3と9 E6E7に 6と2 が重複しています。 Sub Test() Dim c As Range, d As Range Application.ScreenUpdating = False For Each c In Range("A1:E20") For Each d In Range("A1:E20") If c.Value = d.Value And c.Address <> d.Address _ And c.Offset(1, 0).Value = d.Offset(1, 0).Value Then c.Resize(2, 1).Interior.Color = vbYellow End If Next Next Application.ScreenUpdating = True End Sub

sazanami0422
質問者

お礼

早速のご回答頂きありがとうございます。 A2A3とA8A9 1と6 A12A13とB4B5 3と9 E6E7に 6と2 が新たに黄色になるのも質問文とは違いますが参考になります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 縦列で数字が重複していたら色分けしてセルを塗り潰す

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がおみえでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また、私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】 添付図のとおり、A列~Y列の5行のセルがあります。 セルの中には数字がランダムに入っています。 A列から縦5つの数字を見たとき、 数字が重複しているならそのセルを塗り潰して、 Y列までそれを繰り返す。 最初に見つけた重複数字は「黄色」、 2つめに見つけた重複数字は「青色」に分けて塗潰す方法が知りたいです。 【注意事項】   ・A列からY列に入る数字は毎回異なります。   ・重複数字が無い列も存在します。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 塗りつぶしたセルの対称となるセルの数字を抜き出す2

    いつもお世話になっております。 もう1つよろしければ回答をお願いいたします。 【質問】 添付図の様にA1~G30までに1~37迄の数字が重複有りで入っています。 それを、I2~O2の数字で検索します。 検索できたらそのセルを赤く塗り潰します。 赤く塗りつぶしたセルがD列以外の場合、 対称(A列の対称はG列、B列の対称はF列、C列の対象はE列)となる数字を I5から下に並べる方法が知りたいです。 【注意事項】 ・使用するエクセルは2016です。 ・I2~O2に入る数字は1~37迄で重複無しです。 ・添付図は途中の4行目迄のサンプルとなっております。 以上、よろしくお願いいたします。

  • 【再】連続する同じ数字のセルの塗り潰しがしたい。

    先程は、質問の添付図が添付されていなかたので再掲載します。 @@@@@@@@@@@@@@@@@@@@@ このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたら回答よろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、4行×25列の中に数字が1~31まであり、重複して入っています。  この中にある数字で、同じ数字が縦・右斜め・左斜め(横は無い)のいずれかに該当すれば  その数字のセルを黄色で塗り潰す方法をVBAで実現する方法が知りたいです。   【注意事項】   ・4行×25列の中にある数字の並びは毎回異なります。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 重複数字の数に応じてセルに色をつける。

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、1列×25行の中に数字が1~31まであり、  重複数字を含んで昇順に並んでおり、それが4列あります。  1列毎に数字を見て以下の条件にあえばセルを塗り潰します。   2個重複⇒セルを黄色に塗り潰す。   3個重複⇒セルを青色に塗り潰す。   4個重複⇒セルを緑色に塗り潰す。   5個重複⇒セルを赤色に塗り潰す。   上記を実現する方法をVBAで実現する方法が知りたいです。   【注意事項】   ・1列×25行の中にある数字の並びは毎回異なります。   ・1列×25行の中に重複数字が無い場合があります。(例:A列)   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 塗りつぶしたセルの対称となるセルの数字を抜き出す

    いつもお世話になっております。 よろしければ回答をお願いいたします。 【質問】 添付図の様にA1~E20までに1~31迄の数字が重複有りで入っています。 それを、G2~L2の数字で検索します。 検索できたらそのセルを赤く塗り潰します。 赤く塗りつぶしたセルがC列以外の場合、 対称(A列の対称はE列、B列の対称はD列)となる数字を G5から下に並べる方法が知りたいです。 【注意事項】 ・使用するエクセルは2016です。 ・G2~L2に入る数字は1~31迄で重複無しです。 以上、よろしくお願いいたします。

  • 連続する同じ数字のセルの塗り潰しがしたい。

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたら回答よろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、4行×25列の中に数字が1~31まであり、重複して入っています。  この中にある数字で、同じ数字が縦・右斜め・左斜め(横は無い)のいずれかに該当すれば  その数字のセルを黄色で塗り潰す方法をVBAで実現する方法が知りたいです。   【注意事項】   ・4行×25列の中にある数字の並びは毎回異なります。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 同じ列に2個の連続数字が2個以上ある場合に塗潰す

    いつもお世話になっております。 ご存じの方がお見えでしたら回答をよろしくお願い致します。 【質問】  添付図の様にA列~E列、それぞれ20行の中に1~31までの数字が重複あり  で入っています。それぞれの列で連続する数字を見た場合、  同じ数字の並びがありそれが2個以上ある場合にセルを塗潰す方法が知りたいです。  ※1列に連続する数字が2個無い場合もありますし、最大3個ある場合もあり   ます。 【注意事項】  ・使用するエクセルは2016です。  ・セルの中の1~31までの数字は毎回ランダムに変わります。 以上、よろしくお願いします。

  • 同じ数字を2個使用している重複行の数字の出力方法3

    いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】 2020/02/29 15:35に質問No.9718103として 『同じ数字を2個使用している重複行の数字の出力方法2』という質問を させて頂き、SI299792様から回答を頂きました。 動作としては添付図のとおり5列×20行の数字の中から、 2個の数字が重複していたら黄色でセルを塗り潰し、 重複する行に重複した行を実際に重複した2個の数字をH列~AA列に書き出し、 重複数字1~重複数字10の2列×20行の数字をAB列・AC列に縦に並べた後、 昇順に並び変えて重複数字を削除し、重複数字1~重複数字10の2列×20行の数字をAE列のみに縦に並べた後、昇順に並び変えて重複数字を削除する。 ここから今回の質問です。 (1)AB列・AC列に縦に並べた後、昇順に並び変えて重複数字を削除されるはずですが、添付図のとおりAB19・AC19、AB21・AC21に「22 30」が残っています。 この重複を削除するにはどうすればよいですか? 以上、よろしくお願いします。

  • 同じ数字を3個~4個使用している重複行の塗り潰し

    いつもお世話になっております。 ご存じの方がお見えでしたら回答をよろしくお願い致します。 【質問】  添付図の様にA行~T行の第一数字から第五数字まで1から31の数字が重複して 入っています。(1行だけで見れば重複はしておらず、第一数字から昇順に第五数 字まで並んでいます。)初めにA行からB行~T行を1行ずつ見ていき、  A行の5つの数字のうち3個~4個同じ数字を使用している行があればどちらの行  の数字も黄色に塗り潰す、次にB行からC行~T行を1行ずつ見ていき・・・  と、最後はS行からT行を見るまでを繰り返し、5つの数字のうち3個~4個  同じ数字を使用している行があればどちらの行の数字も黄色に塗りつぶす方法が  知りたいです。  ◎添付図の結果として黄色に塗り潰される行は   (1)A行とG行・・・2、7、19、23が重複   (2)B行とH行・・・3、6、14,22が重複   (3)C行とI行・・・4,15、17,21が重複   (4)D行とJ行・・・8、9、18、25が重複   (5)M行とQ行・・・12,14、23,28が重複   (6)N行とS行・・・5,19,31が重複   (7)O行とT行・・・1,6,21が重複 【注意事項】   ・使用するエクセルは2016です。   ・A行~T行に入る数字は毎回異なります。    但し使用数字は1~31で、1行でみれば重複無しで左から昇順です。   ・3個~4個の数字が重複する行が存在しないことはありません。 以上、よろしくお願いします。

  • 塗潰されたセルと同じ色の数字同士を抽出して並べる

    いつもお世話になっております。 ご存じの方がお見えでしたらご回答をよろしくお願いします。抽出 【質問】  添付図の様に5×5マスが4つあり、それが縦に3つあります。  5×5マスの4つの中には、黄色、緑色、赤色、青色の4色のいずれかでセルが  塗り潰されています。M列に4色それぞれの色があり、  その右側に左側の5×5マスの4つの中で同じ色で塗潰されたセルの数字を  左から右に昇順に並べる方法が知りたいです。 【注意事項】   ・5×5マスが4つの中で、4色全ての塗り潰しがある訳ではありません。    ※最低、黄色のみという場合があります。   ・5×5マスが4つの中で、塗り潰されるセルは毎回異なります。   ・同じ色で同じ数字(重複数字)がでてきてもそのまま並べます。   ・使用するエクセルは2016です。 以上、よろしくお願いします。

専門家に質問してみよう