エクセルシートで1行複数列の中にある重複数字を削除する方法-質問
- エクセルシートA列~F列に1~31迄の数字が順不同に入っています。これをG列~L列に「重複数字は1つにして昇順に並べる」方法が知りたいです。
- 質問者はエクセルシートのA列~F列に順不同に1~31までの数字が入っている状況で、「重複数字は1つにして昇順に並べる」方法を知りたいという質問をしています。
- この質問では、エクセルシート内の1行複数列にある重複数字を削除し、昇順に並べる方法を求めています。
- ベストアンサー
1行複数列の中にある重複数字を削除する方法
どなたかご存じでしたらご回答よろしくお願いします。 【質問】 エクセルシートA列~F列に1~31迄の数字が順不同に入っています。 これをG列~L列に「重複数字は1つにして昇順に並べる」方法が知りたいです。 ●エクセルシート A B C D E F G H I J K L 4 14 20 19 4 19 4 14 19 20 ←重複数字は1つになる。 15 5 9 5 9 15 6 12 12 24 6 12 24 ←重複数字は1つになる。 4 26 8 6 4 6 8 26 ●注意事項 ・使用するエクセルは2010です。 以上、よろしくお願いします。
- moguo4649
- お礼率75% (224/296)
- オフィス系ソフト
- 回答数5
- ありがとう数3
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
まず、G1セルに次の関数を入力して下さい。 =IF(COUNT($A1:$F1),MIN($A1:$F1),"") 次に、H1セルに次の関数を入力して下さい。 =IF(G1="","",IF(G1=MAX($A1:$F1),"",SMALL($A1:$F1,COUNTIF($A1:$F1,"<="&G1)+1))) 次に、H1セルをコピーして、I1~L1の範囲に貼り付けて下さい。 次に、H1~L1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。 これで、G列~L列に、重複部分を除いた数字が昇順に並べ替えた形で表示されます。
その他の回答 (4)
- tom04
- ベストアンサー率49% (2537/5117)
No.1です。 > For i = 1 To UsedRange.Rows.Count の部分でマクロが止まってしまうということですので・・・。 ※ 前回のコードはA列最終行に空白ばあった場合最終行の取得をA列で判断できないために あのようなコードにしてしまいました。 とりあえず > For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row に変更してみてください。 A列最終行までマクロが走ります。 (途中の行にA列に空白があっても構いません) ※ A列最終行が空白の場合は >For i = 1 To ActiveSheet.UsedRange.Rows.Count としてみてください。 後者は検証していませんので、うまく動かなかったらごめんなさいね。m(_ _)m
お礼
今度はうまく動きました。 ありがとうございました。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
G1 =iferror(small($A1:$F1,small(index(rank($A1:$F1,$A1:$F1,1)+999*(countif(offset($A1,0,0,1,column($A1:$F1)),$A1:$F1)>1),),column(g1)-6)),"") G1 セルをコピーし、G1:L4 のセル範囲に貼り付け。 本当にこのような操作をする必要があるのか?という点を見直してみるのがお勧め。例えば行に並んでいるのを、行列を入れ替えてコピペすることで列に並べ直し、その列内で、昇順で並べ替えを行ってから重複を削るとかのほうが、ずっと簡単。
お礼
ご回答ありがとうございます。 おっしゃるとおり行列を入れ替えて削除するのが簡単ですね。 今回はそのようなことをせずに並び替える方法が知りたく 質問させて頂きました。
添付図参照 Sheet2!A1: =IF(COUNTIF(Sheet1!$A1:A1,Sheet1!A1),IF(COUNTIF(Sheet1!$A1:A1,Sheet1!A1)>1,"",Sheet1!A1),"") Sheet1!G1: =IF(ISERROR(SMALL(Sheet2!$A1:$F1,COLUMN(A1))),"",SMALL(Sheet2!$A1:$F1,COLUMN(A1)))
補足
ご回答ありがとうございます。 また実行結果を添付いただきお手数をおかけしました。 添付図を見ましたが、シート1とシート2に分かれている意味がわかりませんでした。 添付図のシート1のA列~F列の内容がG列以降に反映されているので 私の質問の回答があった!と思いましたが、 シート2が登場してその役割が理解できませんでした。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! またまたVBAになってしまいますが・・・ 前回同様、シートモジュールです。 Sub 重複削除() Dim i As Long, j As Long Application.ScreenUpdating = False Range("A:F").Copy Range("G1") For i = 1 To UsedRange.Rows.Count For j = Cells(i, Columns.Count).End(xlToLeft).Column To 7 Step -1 If WorksheetFunction.CountIf(Range(Cells(i, 7), Cells(i, j)), Cells(i, j)) > 1 Then Cells(i, j).Delete shift:=xlToLeft End If Next j Range(Cells(i, 7), Cells(i, 12)).Sort key1:=Cells(i, 7), order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight Next i Application.ScreenUpdating = True End Sub ※ 今回も1行目からデータがあるという前提です。m(_ _)m
補足
早速のご回答ありがとうございます。 早速やってみましたがマクロを実行すると”実行時エラー424”が出ます。 デバッグすると下記部分で止まっています。 > For i = 1 To UsedRange.Rows.Count 実行結果?としては、A列の内容がG列に入っていますが、 重複数字はそのまま重複しており、また昇順には並んでいません。 何が悪いのでしょうか?
関連するQ&A
- 重複している数字を表示する方法
どなたかご存じでしたらご回答よろしくお願いします。 【質問】 エクセルのA列~E列に0~9迄の任意の数字が1つだけ入っています。 「A列~E列で重複している数字があればF列又はG列にその数字を出力する」 方法が知りたいです。具体的に下記のエクセルシートのとおりです。 ●エクセルシート A B C D E F G 3 3 1 7 8 3 ←3が2個重複しているので、F列に3が入る。 7 7 7 7 7 7 ←7が5個重複しているので、F列に7が入る。 4 4 4 4 2 4 ←4が4個重複しているので、F列に4が入る。 6 6 6 3 1 6 ←6が3個重複しているので、F列に6が入る。 1 1 8 8 8 1 8 ←1が2個、8が3個重複しているので、F列に1、G列に8が入る。 3 3 2 2 5 3 2 ←3が2個、2が2個重複していうので、F列に3、G列に2が入る。 3 4 5 6 7 ←重複数字は無いため、F列、G列には何も入らない。 ●注意事項 ・使用するエクセルは2010です。 以上、よろしくお願いします。 投稿日時 - 2013-05-04 11:02:06
- ベストアンサー
- オフィス系ソフト
- 同じ数字を見つける方法
どなたかご存じでしたらご回答よろしくお願いします。 【質問】 エクセルシートA列~F列に数字が入っています。 A列の数字がG列~L列迄の数字のいずれかと同じ値の場合、 M列~R列に一致した値を出力する。これをF列まで繰り返し行う方法が知りたいです。 ◎エクセルシート A B C D E F G H I J K L M N O P Q R 4 19 20 27 28 14 5 15 18 20 23 28 20 28 5 9 15 19 30 9 5 9 18 22 24 25 5 9 <= A列~F列で9が重複 5 7 17 25 27 18 5 14 18 23 29 31 5 18 2 3 5 14 24 9 5 9 16 22 29 30 5 9 6 12 21 24 28 15 4 5 11 20 26 29 6 8 9 21 26 4 4 8 13 19 26 27 4 8 26 ●注意事項 ・”数字”とは1~31迄の数字の事です。 ・A列~F列の数字は重複する場合があります。 ・A列~F列の数字がG列~L列に存在しない場合があります。 その場合のM列~R列は空白です。 ・使用するエクセルは2010です。 以上、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 同一数字の重複を”1”としてカウントする方法。
どなたかご存じでしたらご回答よろしくお願いします。 【質問】 エクセルのA列~E列に0~9迄の任意の数字が1つだけ入っています。 これをF列で「同一数字はいくつ重複しても”1”として数字の数をカウントする方法」 が知りたいです。具体的に下記のエクセルシートのとおりです。 ●エクセルシート A B C D E F 3 3 1 7 8 4 ←"3"は同一数字で2個重複するが"1個"とみなして、3178の4となる。 7 7 7 7 7 1 ←"7"は同一数字で5個重複するが "1個"とみなして、7の1となる。 4 4 4 4 2 2 ←"4"は同一数字で4個重複するが "1個"とみなして、42の2となる。 6 6 6 3 1 3 ←"6"は同一数字で3個重複するが "1個"とみなして、631の2となる。 1 1 8 8 8 2 ←"1"は同一数字で2個重複、"8"は同一数字で3個重複するがそれぞれ "1個"とみなして、18の2となる。 3 3 2 2 5 3 ←"3"と"2"は同一数字で2個ずつ重複するがそれぞれ"1個”とみなして 325の3となる。 3 4 5 6 7 5 ← 同一数字の重複は存在しないため、34567の5となる。 ●注意事項 ・使用するエクセルは2010です。 以上、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 複数列を1列に表示させて追加する方法。
どなたかご存じでしたらご回答をお願いします。 エクセルシートのA列~J列に値が入っており、それぞれの最終行に値を追加しております。 【質問】 A列~J列まで値の入ったエクセルシート(各種値)を別エクセルシート(纏め)のA列に 1つに纏め、エクセルシート(各種値)のA列~J列の最終行に追加されるたびに エクセルシート(纏め)の最終行に追加する方法が知りたいです。 ●エクセルシート(各種値) A B C D E F G H I J : 111 222 333 444 555 666 777 888 999 000 123 456 789 112 223 334 445 556 222 778 <= 最終行追加! ●エクセルシート(纏め) A : 111 222 333 444 555 666 777 888 999 000 123 <= A列最終行 456 <= B列最終行 789 <= C列最終行 112 <= D列最終行 223 <= E列最終行 334 <= F列最終行 445 <= G列最終行 556 <= H列最終行 222 <= I列最終行 778 <= J列最終行 【注意事項】 ・A列~J列に入っている値には同じ値が入る場合があります。(重複あり) ・使用するエクセルは2010です。 以上、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 重複数字を除いて数字を表示する方法。
どなたかご存じでしたらご回答をよろしくお願いします。 【質問】 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です。 以上、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 数字が一致した場合に文字色を変更する方法。
どなたかご存じでしたら回答をよろしくお願いします。 【質問】 エクセルのA1列~G1列に数字が入っています。H1列~N5列にも数字が入っています。 A1列~G1列の数字がH1列~N5列の中の数字と一致すれば、H1列~N5列の数字を”赤色”に 変更する方法が知りたいです。尚、A1列~G1列で数字の重複はありませんが、H1列~N5列では 数字に重複があります。 ●質問のイメージ・・・ H1列~N5列にある、5,6,9,21,16,23の色が”赤色”になる。 A B C D E F G H I J K L M N 5 6 9 13 16 21 23 5 10 11 12 15 19 23 9 12 21 25 26 28 36 1 4 8 27 28 33 35 2 6 8 15 26 36 37 7 16 22 23 32 35 36 ●注意事項 ・使用するエクセルは2010です。 以上、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- セルの数字を昇順に並び替えて重複削除する方法
いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】 添付図のとおり、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列)に並べて昇順に並び替えて重複数字を削除します。 以上、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 重複数字を除いて数字の数をカウントする方法。
どなたかご存じでしたらご回答をよろしくお願いします。 【質問】 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 : : ●実行結果(A~Uの重複した数字を除いた数字の数のカウント合計をV列に表示する。) 1 1 4 6 10 10 16 19 21 24 25 27 29 30 33 33 35 38 38 39 42 17<-17個の数字 2 3 5 6 7 9 10 13 14 18 21 23 27 27 28 31 32 33 39 41 42 20<-20個の数字 3 4 5 6 9 11 12 17 18 19 20 24 25 26 28 34 36 37 38 38 39 20<-20個の数字 : : ●注意事項 ・使用するエクセルは2010です。 ・A~U列に入る数字は、1~43です。 以上、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 同じ数字を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列に並べた後、昇順に並び変えて重複数字を削除する。) 以上、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 同じ数字を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」が残っています。 この重複を削除するにはどうすればよいですか? 以上、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
お礼
ご回答ありがとうございました。 教えて頂いた様に入力して 得たい結果がえられました。 ありがとうございました。