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

このQ&Aのポイント
  • 同じ数字を2個使用している重複行の数字の出力方法3について質問です。
  • 質問No.9718103でSI299792様から回答をいただきましたが、AB19・AC19、AB21・AC21に重複が残っています。
  • 重複を削除する方法についてご教示ください。
回答を見る
  • ベストアンサー

同じ数字を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」が残っています。 この重複を削除するにはどうすればよいですか? 以上、よろしくお願いします。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (713/1473)
回答No.1

本当だ。バグってた。 Option Explicit Option Base 1 ' Sub Macro1()   Const Max = 31   Dim Cell As Range   Dim Points(2 To 21, Max) As Integer   Dim Row1 As Integer   Dim Row2 As Integer   Dim Col1 As Integer   Dim Col2 As Integer   Dim Index As Integer   Dim Count As Integer   Dim Col1S(5) As Integer   Dim Col2S(5) As Integer '   [B:F].Interior.Pattern = xlNone   [G2:AA21].ClearContents   [AB:AE].ClearContents   Application.ScreenUpdating = False '   For Each Cell In [B2:F21]     Points(Cell.Row, Cell) = Cell.Column   Next Cell '   For Row1 = 2 To 21 '     For Row2 = Row1 To 21       Count = 0 '       For Index = 1 To Max         Col1 = Points(Row1, Index)         Col2 = Points(Row2, Index) '         If Col1 > 0 And Col2 > 0 Then           Count = Count + 1           Col1S(Count) = Col1           Col2S(Count) = Col2         End If       Next Index '       If Count = 2 Then         ColorPoint Row1, Row2, Col1S(1), Col1S(2)         ColorPoint Row2, Row1, Col2S(1), Col2S(2)         Col1 = Col1S(1)         Col2 = Col1S(2)         Col1 = Cells(Row1, Col1)         Col2 = Cells(Row1, Col2)         Index = Col1 * Max + Col2 - Max         Cells(Index, "AB") = Col1         Cells(Index, "AC") = Col2         Cells(Col1, "AE") = Col1         Cells(Col2, "AE") = Col2       End If   Next Row2, Row1   [AB:AE].SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp End Sub ' Sub ColorPoint _   (RowA As Integer, RowB As Integer, ColA As Integer, ColB As Integer)   Dim BData As String   Dim ColO As Integer '   BData = Cells(RowA, "G")   ColO = BData <> ""   Cells(RowA, "G") = "'" & BData & Left(",", -ColO) & RowB - 1   Cells(RowA, ColA).Interior.Color = vbYellow   Cells(RowA, ColB).Interior.Color = vbYellow   ColO = Cells(RowA, "AA").End(xlToLeft).Column   Cells(RowA, ColO + 1) = Cells(RowA, ColA)   Cells(RowA, ColO + 2) = Cells(RowA, ColB) End Sub 図のAB列の最後、26、27が気になったのですが、旧プログラムを動かしてみても、これは出ませんでした。

sazanami0422
質問者

お礼

前回、うれしくて確認不足でした。 22・30が1つになった事を確認しました。 26・27は前回、今回も最後に1つだけでてくるだけなのでよいです。 ありがとうございました。

関連するQ&A

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

    いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】 2019/12/20 22:51に質問No.9692415として 『同じ数字を2個使用している重複行の数字の出力方法』という質問をさせて頂き、 nishi6様から回答を頂きました。 動作としては添付図のとおり5列×20行の数字の中から、2個の数字が重複していたら黄色でセルを塗り潰し、重複する行に重複した行を、実際に重複した2個の数字をH列~AA列に書き出します。)この時の質問から発展して、『同じ数字を2個使用している重複行の数字の出力方法2』が今回の質問です。 具体的には下記2つです。 (1)重複数字1~重複数字10の2列×20行の数字をAB列・AC列に縦に並べた後、昇順に並び変えて重複数字を削除する。 (2)重複数字1~重複数字10の2列×20行の数字をAE列のみに縦に並べた後、  昇順に並び変えて重複数字を削除する。(又は、(1)で重複数字が削除された数字をAE列に1列に並べた後、昇順に並び変えて重複数字を削除する。) 以上、よろしくお願いします。

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

    いつもお世話になっております。 ご存じの方がお見えでしたら回答をよろしくお願い致します。 【質問】  2019/12/08 22:31 に質問No.9687909 として  『同じ数字を3個~4個使用している重複行の塗り潰し2』という質問をさせて  頂き、SI299792様とnishi6様から回答を頂きました。  この時の質問から発展して、『同じ数字を2個使用している重複行の数字の出力  方法』が今回の質問です。添付図のとおり、5列×20行に絞り、2個の数字が  重複していたら黄色でセルを塗り潰し、”重複している行”をG列に書き出す事は  前回の回答から対応できましたが、実際にどの2個の数字が重複しているか塗潰  されたセルでは分かり難い場合があるため、H列~AA列に書き出す方法が知り  たく質問させて頂きます。 以上、よろしくお願いします。

  • セルの数字を昇順に並び替えて重複削除する方法

    いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】  添付図のとおり、2列×20行の数字が【入力値2列】欄に入っています。  この数字を昇順に並び替えて重複数字を削除したものを【重複チェック済2列】に  出力します。また、【入力値2列】欄の数字を【入力値1列】に縦1列にして数字 を昇順に並び替えて重複数字を削除したものを【重複チェック済1列】に出力しま す。具体的には下記(1)~(4)の手順です。質問は2列×20行での場合ですが、  2列×200行の場合でも上記のことができるようにしたいです。    *********************************** (1)入力値2列(A列・B列)に2つの値をセットします。 (2)入力値2列(A列・B列)の値を重複チェック済2列(D列・E列)に並べて昇順に並び替えて重複数字を削除します。 (3)入力値2列(A列・B列)の値を入力値1列(G列)に1列にセットします。 (4)入力値1列(G列)の値を重複チェック済1列(I列)に並べて昇順に並び替えて重複数字を削除します。 以上、よろしくお願いします。

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

    いつもお世話になっております。 ご存じの方がお見えでしたら回答をよろしくお願い致します。 【質問】  2019/09/29 22:13 に質問No.9662014 として、  『同じ数字を3個~4個使用している重複行の塗り潰し』という質問をさせて  頂きました。その時に、SI299792様とnishi6様から回答を頂きました。  この時の質問は5列×20行でしたが、  今回は添付図のとおり、7列×30行に増やした場合の改造の仕方を  知りたく質問させていただきます。その他条件は前回の質問(質問No.9662014  と同じです。 以上、よろしくお願いします。  

  • 同じ数字を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個の数字が重複する行が存在しないことはありません。 以上、よろしくお願いします。

  • 複数行をまとめて縦に昇順に並び替える方法

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

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

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

  • 塗潰されたセルと同じ色の数字を重複無しで縦に並べる

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

  • 重複数字の塗潰しとその結果をまとめるには?

    いつもお世話になっております。 ご回答頂けたらありがたいです。 添付図の様に6×7のセルが5つあります。 1~37迄の数字が重複有りで入っています。 重複が2個、3個、4個あれば、黄色、緑色、赤色で その数字のセルを塗潰し、最後にまとめとして、 実際に重複した数字を右側に左から昇順で並べるにはどうすればよいですか? 尚、最大重複は4個迄とします。 よろしくお願いします。

  • 重複数字を除いて数字を表示する方法。

    どなたかご存じでしたらご回答をよろしくお願いします。 【質問】  A列~U列に数字が左から右に昇順で入っています。(数字は重複があります)   V列以降に重複を除いた数字を表示する方法が知りたいです。 ●実行前 1 1 4 6 10 10 16 19 21 24 25 27 29 30 33 33 35 38 38 39 42 2 3 5 6  7 9 10 13 14 18 21 23 27 27 28 31 32 33 39 41 42 3 4 5 6  9 11 12 17 18 19 20 24 25 26 28 34 36 37 38 38 39                           :                           : ●実行結果(Z列以降に重複した数字を除いた数字を表示する。) A列~U列の数字:1 4 6 10 16 19  21 24 25 27 29 30 33 35 38 39 42 A列~U列の数字:2 3 5 6  7  9  10 13 14 18 21 23 27 28 31 32 33 39 41 42 A列~U列の数字:3 4 5 6  9  11 12 17 18 19 20 24 25 26 28 34 36 37 38 39                              :                           : ●注意事項  ・使用するエクセルは2010です。  ・A~U列に入る数字は、1~43です。 以上、よろしくお願いします。

専門家に質問してみよう