同じ数字を見つける方法

このQ&Aのポイント
  • エクセルシートで重複する数字を見つける方法を教えてください。
  • エクセルシートのA列からF列に数字が入っています。A列の数字がG列からL列までの数字と一致した場合、M列からR列に一致した値を出力する方法を知りたいです。
  • 使用するエクセルは2010です。A列からF列の数字が重複している場合やG列からL列に同じ数字が存在しない場合も考慮してください。
回答を見る
  • ベストアンサー

同じ数字を見つける方法

どなたかご存じでしたらご回答よろしくお願いします。 【質問】  エクセルシート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です。 以上、よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! VBAになってしまいますが、一例です。 データは1行目からあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, cnt As Long, c As Range, myArea As Range Application.ScreenUpdating = False Range("M:R").ClearContents For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Set myArea = Range(Cells(i, "G"), Cells(i, "L")) cnt = 12 For j = 1 To 6 Set c = myArea.Find(what:=Cells(i, j), LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing And WorksheetFunction.CountIf(Range(Cells(i, "M"), Cells(i, "R")), Cells(i, j)) = 0 Then cnt = cnt + 1 Cells(i, cnt) = Cells(i, j) End If Range(Cells(i, "M"), Cells(i, "R")).Sort key1:=Cells(i, "M"), order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight Next j Next i Application.ScreenUpdating = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

moguo4649
質問者

お礼

回答ありがとうございます。 いつも丁寧な説明と別の角度から回答ありがとうございます。 教えていただいたVBAソースで1発で得たい結果が出ました! ありがとうございました。 またよろしくお願いします。

その他の回答 (1)

回答No.1

>・A列~F列の数字は重複する場合があります。 G列~L列に重複がないとしてM1セルに =IF(COUNT(1/COUNTIF($A1:$F1,$G1:$L1))<COLUMN(A1),"", INDEX($G1:$L1,SMALL(IF(ISNUMBER(1/COUNTIF($A1:$F1,$G1:$L1)),{1,2,3,4,5,6}),COLUMN(A1)))) [Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる 右へ 下へオートフィル

moguo4649
質問者

お礼

早速のご回答ありがとうございます。 実行結果までつけて頂きありがとうございます。 やってみて同じ結果になりました。 また、下記の説明不足ありました。 失礼しました。 >G列~L列に重複がないとして

関連する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

  • 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です。 以上、よろしくお願いします。

  • 数字が一致した場合に文字色を変更する方法。

    どなたかご存じでしたら回答をよろしくお願いします。 【質問】  エクセルの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です。 以上、よろしくお願いします。

  • 同一数字の重複を”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です。 以上、よろしくお願いします。

  • 入力された数字と一致する数字の値を取得する方法。

    どなたかご存じでしたらご回答をよろしくお願いします。 【質問】  A1~G1に1~43の数字のうち任意の数字をひとつずつ入力すると、  A2~AQ2に1~43迄の数字があり、入力された数字と一致した場合、  A3~AQ3に入っている値を、H1~M1にセットする方法が知りたいです。 ●質問のイメージ  A B C D E F G H I  J  K L  M  N  O P Q R S T U ~ AO AP AQ  5 15 22 24 29 36 4 9 ・・・・・・・・・・・・・  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ~ 41 42 43  0 1 8 7 4 1 1 2 7  8 9 10  11 2  9 8  2  3  4  7 8  ~ 5  8 10  ※ A1に5を入力すると、その下にある1~43迄の数字と一致する5に入っている値(4)をG1に    セットする。B1に15を入力すると、値(9)をH1にセットする。以下、22、24、29,36を繰り返す。 ●注意事項    ・使用するエクセルは2010です。 以上、よろしくお願いします。         

  • 重複数字と空白を除いた数字の数をカウントする方法。

    どなたかご存じでしたらご回答をよろしくお願いします。 【質問】  A列~U列に数字が左から右に昇順で入っています。  (数字は重複がありますし、U列まで数字が入っていない場合があります。)  V列に重複した数字と空白を除いた数字の数のカウント合計を表示する方法が知りたいです。 ●実行前 1 1 4 6 10 10 16 19 21 24 25 27 29 30 33 33 35 38  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                            :                           : ●実行結果(A~Uの重複した数字と空白を除いた数字の数のカウント合計をV列に表示する。) 1 1 4 6 10 10 16 19 21 24 25 27 29 30 33 33 35 38        15<-15個の数字  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      19<-19個の数字                           :                           : ●注意事項  ・使用するエクセルは2010です。  ・A~U列に入る数字は、1~43です。   ・空白はA~U列の途中にはありません。 以上、よろしくお願いします。

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

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

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

    いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】  添付図のとおり、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列)に並べて昇順に並び替えて重複数字を削除します。 以上、よろしくお願いします。

  • 重複数字を切り取り空いた隙間を右詰めするには?

    どなたかご存知でしたら回答をお願いします。 【質問】 下図の様に5×5のセルが2つあり、それぞれ1~99迄の数字がランダムに 重複有りで入っています。5×5のセルの中には行の連続数字(例:02 03) が入っています(1個も無い場合もあります。1行全部(5個)の場合もあります。)。 行の連続数字を見つけたら、その連続数字を切り取り「◎重複数字」の下に順番に 並べていき、切り取られた空白箇所を埋めるために左側にある数字を右に詰める 方法が知りたいです。 【例題】 A B C D E  F  G H I J K   1 0107091122     0310203031 2 0412141523     0102070922 3 0713171825     0411121415 4 0616212426     0213171823 5 0819272829     0607080910 【実行後】 A B C D E F  G H I J K   1 0107091122          031020 2   041223          070922 3   071325            04 4 0616212426          021323 5    0819           ◎重複数字 14 15         30 31 17 18         01 02 27 28 29       11 12               14 15              17 18              06 07 08 09 10       【注意事項】  ・使用するエクセルは2010です。  ・セルの中の数字は2桁で表しています。(例:1ではなく01)  ・5×5のセルの位置は下記のとおりです。    1個目の5×5マス・・・A1~E5    2個目の5×5マス・・・G1~K5     ※F列は空白列として空けています。   ・回答はVBでも関数でも構いません。 以上、よろしくお願いします。

  • EXCELで範囲内にある値を検索してA列の値を返す

    タイトル通りなのですが、OSはXPでEXCEL2000を使用しています。 シート内ですが 1.A列には文字列が入っています。200行まで空白は無いです。 1.B列からL列の200行までに数字がランダムに入っています。 2.数字は1~500までです。 3.行によってはL列まですべてのセルに値が入ってません。  数字の入っていないセルは空白です。 4.数字の重複はありません。 やりたいことは 別のシートのA列に1~500までの数字を入れ、B列に上記範囲の中からその数字を検索して、その行のA列の値を返したいのですが、出来ません。 どの関数を組み合わせれば出来るのでしょうか? vlookupの検索範囲は1列だけなのでダメでした。 よろしくお願いします。

専門家に質問してみよう