• 締切済み

エクセルの並び替えの質問です。

エクセルのA列とB列に数値が入っているとき、A列にあってB列にない数値若しくはB列にあってA列にない数値を調べるいい方法があれば教えてください。A列とB列に入っている数値が多いとき(A1~A100くらいまで入っているとき)違う数値を拾うのが大変なので・・・

みんなの回答

回答No.4

失礼、、、画像トリミング忘れたので、すごい見難いですね^-^; あと、VBAマクロの設定方法がもしわからない場合 マクロを使ってVBAにチャレンジだ! http://www.sigoto.co.jp/excel/begin/bgmenu04.htm こちらを見てください

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

 C列とD列を作業列として使用し、 E列に「A列にあってB列にない数値」を数値が小さい順番に並べ、 F列に「B列にあってA列にない数値」を数値が小さい順番に並べる方法です。 (データー数がどちらの列が多いかは関係しません)  まず、C1セルに次の数式を入力して下さい。 =IF(AND(ISNUMBER($A1),COUNTIF($B:$B,$A1)=0),$A1,"")  次に、C1セルに次の数式を入力して下さい。 =IF(AND(ISNUMBER($B1),COUNTIF($A:$A,$B1)=0),$B1,"")  次に、E1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT(C:C),"",SMALL(C:C,ROWS($1:1)))  次に、E1セルをコピーして、F1セルに貼り付けて下さい。  次に、C1~F1をコピーして、同じ列の2行目以下に貼り付けて下さい。  以上です。

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

できるなら何でもいいと思うけど、参考までにVBAマクロを使用した記述例でもどうぞ A列とB列のデータの長さはどっちがどっちでもいいです。 A列~C列の1行目には、表のヘッダがあるものとします 記述はちょっと長いですが、やってることは単純です 元データを全てコピー 元データと逆の列の値を参照して同じ値だったら空白にする 空白行を上詰めで削除 C列の罫線を引きなおす これだけです Sub numberCheck() ' 変数 Dim ws1 As Worksheet Dim i, j As Integer Dim checkLength As Integer Dim data1, data2 As Integer ' 初期設定 Set ws1 = Worksheets("sheet1") '使用するシート名 data1 = ws1.Range("A2").End(xlDown).Row 'A列のデータ数 data2 = ws1.Range("B2").End(xlDown).Row 'B列のデータ数 ' 処理 ' 抽出欄にデータを一旦全てコピー For i = 2 To data1 ws1.Cells(i, 3) = ws1.Cells(i, 1) Next j = data1 + 1 For i = 2 To data2 ws1.Cells(j, 3) = ws1.Cells(i, 2) j = j + 1 Next checkLength = ws1.Range("C2").End(xlDown).Row 'コピーされたC列のデータ数 ' 抽出欄と元データのチェック For i = 2 To data2 For j = 2 To data1 If ws1.Cells(i, 2) = ws1.Cells(j, 3) Then ws1.Cells(j, 3) = "" End If Next Next For i = 2 To data1 For j = (data1 + 1) To checkLength If ws1.Cells(i, 1) = ws1.Cells(j, 3) Then ws1.Cells(j, 3) = "" End If Next Next ' 不要な空白セルを削除 i = 2 j = 2 Do While j <> checkLength If ws1.Cells(i, 3) = "" Then ws1.Cells(i, 3).Delete shift:=xlShiftUp Else i = i + 1 End If j = j + 1 Loop ' 罫線を引く checkLength = ws1.Range("C1").End(xlDown).Row With ws1.Range(Cells(1, 3), Cells(checkLength, 3)).Borders .LineStyle = xlContinuous .ColorIndex = xlAutomatic .Weight = xlThin End With End Sub 添付画像では、見やすいようにA列とB列で共通してる値に色をつけてあります

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

こんばんは! 一例です。 A・B列のデータ数は同じかもしくはA列データの方が多い場合です。 ↓の画像のように作業用の列を設けています。 作業列C2セルに =IF(COUNTIF(B:B,A2)=1,ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピー! 結果のE2セルに =IF(COUNT(C:C)<ROW(A1),"",INDEX(A:A,SMALL(C:C,ROW(A1)))) という数式を入れオートフィルで下へコピーすると画像のような感じになります。 これでB列にないA列のデータのみが表示されると思います。 尚、B列データの方が多い場合、作業列C2セルの数式は =IF(COUNTIF(A:A,B2)=1,ROW(),"") としてオートフィルで下へコピー! 結果の数式は同じで良いのですが、表示される結果は 「B列にありA列にないデータ」となります。 参考になれば良いのですが・・・m(__)m

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

関連するQ&A

  • エクセル列の並び替えについて

    エクセルシートのA列の数値を降順で並び替えた場合、B列~も自動的に降順で並び替えられるような方法がありましたらご教授ください。

  • エクセルの並び替えについての質問です。

    エクセルの並び替えですが、例えば列の並び替えで2列(仮にA列・B列)に数値は入れてあり、A列を基準に昇順する場合2003ではその並べ替えをしたい範囲を指定して、「データ」→「並べ替え」→範囲の先頭行をデータにチェックを入れて、最優先されるキーを列Aにして、昇順にチェックを入を入れれば、A列基準で並び替えが完了しましたが、2007ではではその並べ替えをしたい範囲を指定して、「並べ替え」→最優先されるキーを選択すると列A・列Bの選択ではなく、A・B列の1行目の数値の選択となり、それで並び替えると1行目はそのままで、2行目からの並び替えになってしまいます。また1行目を数値のない空欄セルにしておいて1行目から上記作業をすれば、優先されるキーは列A・列Bの選択肢が出ますが、もしその表が1行目が空欄で無い場合はどうするのでしょう?また、2003では並び替えの作業を『繰り返し』で別の表も同じく並び替えの作業が出来ますが、2007では上記の1行目空欄セルにしておいてから並び替えをして『繰り返し』の作業は出来ません。 どの様にすれば、『繰り返し』の作業も出来るのでしょうか?

  • Excelの並び替えについて

    Excel2007を使っています。 A~C列に入っている数値のデータを、上からa1,b1,c1,a2,b2,c2,a3.b3...という風に1列に並べ替えたいのですが、どうしたらいいでしょうか?

  • エクセル2000での質問です。

    エクセル2000で、A列の数値とB列の数値の大きい方の数値を、C列に表示するにはどうすればいいのですか?

  • エクセルに関する質問です

    エクセルの計算式について教えて下さい。 例えば、以下のようにエクセル上で、A列に日付, B列に時間、C列に数値1、D列に数値2が入力されています。 このシートから、時間ごとにC列のなかで一番大きな数値の時間(B列)とD列の中で一番小さい数値の時間(B列)を抽出する計算式が知りたいです。 ご存知の方がいたら教えて下さい。MAXやMIN関数を利用するのだと思いますが.... A      B    C    D 2011/1/4 9:00:00 10360 10330 2011/1/4 9:05:00 10350 10300 2011/1/4 9:10:00 10380 10310 宜しくお願いします。

  • Excelについての質問です。

    エクセルについての質問なのですが、 A列の数値だけをB列から選び出して、そこから更に選び出したBと同じ行にあるCをDに代入したいのですが、どのようにすればよいでしょうか?    A   B   C   D 1  0.1  0.1  5 2  0.5  0.3  10 3  1.2  0.4  20 4  2.3  0.5  40 5  3.7  0.7  80 6  4.7  1.0  160 7  5.9  1.2  320 わかりにくい表ですが、この場合 A1の「0.1」、B列で「0.1」といえばB1になります。それをBと同じ行のC1の数値「5」をD1に代入。 A2の「0.5」、B列で「0.5」といえばB4になります。それをBと同じ行のC4の数値「40」をD2に代入。 A3の「1.2」、B列で「1.2」といえばB7になります。それをBと同じ行のC7の数値「320」をD3に代入。    D 1  5 2  40 3  320 4  ・ 5  ・ 6  ・ という結果にしたいのですが・・・。 これは可能なのでしょうか? わかりづらい質問ですが、宜しくお願いします。

  • エクセルの並び替え

    エクセルの並び替えをしたいのですが、  最優先させるキー:A列  2番目:B列 のように並べ替えたいので B列を最優先させるキーに指定して並べ替え    ↓ OK   A列を最優先させるキーに指定して並べ替え をしました。ですが、こうなってしまいます   ↓↓ こうしたいのですが↓↓ A列      B列      A列   B列 1       A       1   A 1       B       1   A  1       C       1   B 1       A       1   B   1       B       1   C  1       C       1   C ちなみに本当は数字ではなく文字でユーザー設定リストを使って並べ替えています。分かりにくい質問で申し訳ないのですがお願いします。

  • エクセルでのデータの並び替え

    A列に英単語のデータが1000 あります。 これを  A列   b列   c列 1    1      4 2    2      5 3    3      6 4    7     10 5    8     11 6    9      12 7     13     16 8     14     17 9     15     18 と2列に6つずつのグループに並び替えたいのです。 エクセルの扱いがよくわからないので困っています。 うまい方法を教えてください。よろしくお願いします。

  • Excelについて

    Excelで、A列に複数の数値が入ってて(1~500、数値は日によってバラバラ)、 B列にも数値(同じ桁数、毎回違う)が入ってます。A列が同じ数値のところだけ、B列だけを並び替える、というのは可能なんでしょうか。まず手順が知りたいです。 それを手動でやるのは大変なので、マクロも作成するつもりです。 説明がわかりずらくて申し訳ないですが、どなたか教えてください。 宜しくお願い致します。 ネットか本で調べるしか方法がなく、他にExcelについてどうしたら学べるでしょうか。。個人的に知りたいExcelの情報が見つかりません。

  • エクセル出の並び替えについて質問

    エクセルの並び替えにおいて質問させていただきます。  A列  B列  C列   D列 りんご  1  バナナ  4 バナナ  2  みかん  6 すいか  3  いちご  8 みかん  4  もも   3 いちご  5  すいか  2 ドリア  6  ぶどう  1 というものを  A列  B列  C列   D列 りんご  1   バナナ  2  バナナ  4 すいか  3  すいか  2 みかん  4  みかん  6 いちご  5  いちご  8 ドリア  6           もも   3         ぶどう  1 というようにA列にならってC,D列の項目を並び替えて、並び替えられないものは下に列挙させるようなやり方がありましたら教えてください。 どうぞ宜しくお願いします。

このQ&Aのポイント
  • ESETインターネットセキュリティを使用しているアカウント(台数)の確認方法について教えてください。
  • ESETセキュリティソフトウェアシリーズにおいて、現在使用しているアカウント(台数)を確認する方法についてお教えください。
  • ESETインターネットセキュリティのアカウント確認について、具体的な方法を教えてください。
回答を見る