• ベストアンサー

エクセルで行を比較して結果を獲る

宜しくお願いします。 A列、B列、C列それぞれの列に200~250行のデータ(データは6~7桁の数字)があります。 で...このデータを列ごとに比較して求めたいのが、 *A列にあって、B列とC列にないデータの値 *B列にあって、A列とC列にないデータの値 の2点の条件をクリアするデータのリストを作りたいのですが、(リストはD列でもどこでも構いません) どの様にしたら求めれるでしょうか? VBAはあまり自信がありませんが少しかじってますので、最悪はVBAでもいいので宜しくお願い致します。

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

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.2

こんばんは! 簡略的な方法 データ範囲がA2:C250として *A列にあって、B列とC列にないデータの値 D1に"A列非重複データ” D2に  =IF(AND(ISERROR(MATCH(A2,B$2:B$250,0)),ISERROR(MATCH(A2,C$2:C$250,0))),A1,"") と入力後 D250まで複写 E1に"B列非重複データ” E2に  =IF(AND(ISERROR(MATCH(B2,A$2:A$250,0)),ISERROR(MATCH(B2,C$2:C$250,0))),B1,"") と入力後 E250まで複写 D2:E250を選択 コピー 同位置で 編集 形式を選択して貼り付け 「値」 OK D列のみで ソート E列のみで ソート

rurucom
質問者

お礼

Comvさん! ありがとうございました。何をするにでも、VBAでなくても手段はいっぱいありそうですね! 本当に助かりました。 お礼がおそくなってすみませんでした。

その他の回答 (1)

  • tyom77
  • ベストアンサー率57% (68/119)
回答No.1

あまり効率はよくないかもしれませんが、以下の方法はいかがでしょうか? 1.まず1行目はタイトル用の行にします。行の比較用にD列、E列、F列を使用します。 2.D、E、Fの列のタイトルを仮にAB、BC、CAと命名します。 ここでABというのは、A列とB列を比較した結果と言う意味です。 3.ABの列の2行目に=IF(A2=B2,"○","×")を入力   BCの列の2行目に=IF(B2=C2,"○","×")を入力 CAの列の2行目に=IF(C2=A2,"○","×")を入力 IF関数を使って比較します。値の一致の時は○、不一致の時は× 4.オートフィル機能を使って3行目以降に3で入力したものをコピー 5.A1セルの左上にある灰色の空白をクリック 6.メニューバーから【データ】→【フィルタ】→【オートフィルタ】を選択。 そうすると、1行目のセルのとなりに▼がでてくると思います。 7.A列にあって、B列とC列にないデータの値を求めます。これは、ABとCAがともに×を抽出すればいいですよね? 8.AB、CAの▼をクリックして2つの列それぞれ×を選択。すると、A列にあって、B列とC列にないデータの値がでてくると思います。 9.でてきたものをコピーして空いてるセルか別シートにコピー。 10.あとはコピーしたものからB列にあって、A列とC列にないデータの値をとります。これについては、1から8の作業をすれば条件にあうものがでてくると思います。 私はVBAとかはあまり知らないので、この方法しか思いつきませんでした。  

rurucom
質問者

お礼

tyom77さん!ありがとうございました。 お礼がおそくなってすみません!

関連するQ&A

  • エクセルでセルの行番号を検出し、比較したいんですが…。

       A  B  C  D 1   7   9  10  ● 2   8  12  11  ○ 3   6   8  10  ○ 4  14   9   9  ● 5   7  12  10  ○ 6   12   8  12 このようなA列~D列があるとします。 A列~C列は値が、D列には○や●の記号が入るとします。 ここで、D1には、 「A2以降のA列で、C1より大きい値が最初に出る行番号」 と 「B2以降のB列で、C1より大きい値が最初に出る行番号」 を比較したときに、 A列の方が早ければ○、B列の方が早ければ●と表示させたいのですが、 どのようにすればよいでしょうか? (たとえば、D1は、A列では4行目、B列では2行目にC1より大きい 値がでるので、●といった感じです。) 引き続いて、D2は 「A3以降のA列で、C2より大きい値が最初に出る行番号」 と 「B3以降のB列で、C2より大きい値が最初に出る行番号」 を比較… といった感じで進めて行きたいのです。 非常に困っています。 どなたかご教授ください。 よろしくお願いします。

  • エクセルのデータの表を1行ごとに用意したレイアウトで1ページづつ印刷し

    エクセルのデータの表を1行ごとに用意したレイアウトで1ページづつ印刷したい。 シート1の A列に商品名(数字とアルファベットの組み合わせ) B列に数字4桁 C列に数字4桁 D列に数字とアルファベットの組み合わせで3ケタ が入っていて5,000行のデータが有ります。 シート2のB1にシート1のA1の値 シート2のB2にシート1のB1の値 シート2のB3にシート1のC1の値 シート2のB4にシート1のD1の値 シート2のC1にシート2のB1~B4の値から作成されるバーコードを表示 (エクセルにアドオンしたアプリケーションで生成されます) シート2のB5にシート1のA2の値 シート2のB6にシート1のB2の値 シート2のB7にシート1のC2の値 シート2のB8にシート1のD2の値 シート2のC5にシート2のB5~B8の値から作成されるバーコードを表示 改ページをシート2のA4で1ページになるようにして (よって2ページ目の終わりはA8) シート1の5,000行分をシート2に同じように 貼り付ける一番簡単な方法は有りますか?

  • エクセルのデータ比較

    シート1のA行のデータとB行のデータをすべて比較して、同じデータがあれば C列にそのデータを書き出したいのですが、どうすればよろしいのでしょうか。 行数(比較するデータの数)はそれぞれ数千行あります。 例(a~hはデータです) シート1     A列 B列 a c b d  c f d h の場合、比較した結果をC列に次のように表示させます。 A列 B列  C列 a c c b   d d c f d h どなたかよろしくご教示くださるよう、お願いします。

  • Excel VBAでの値の比較

    お世話になります。 Excel VBAでの値の比較方法についてご教授頂きたく存じます。 下記のような値がセルに入っていると仮定しまして、 セルA1とセルG1を比較する セルA2とセルG2を比較する セルB1とセルH1を比較する セルB2とセルH2を比較する 値が違う場合のみ、A列、又は、B列のセルの色を変更したいのですが・・・。 下記例の場合であれば、B1とA2がセルの色が変われば良いです。    A列 B列    G列 H列 1行  1  1     1   2 2行  2  2     3   2 VBAで実現したいと思います。 何卒、宜しくお願い申し上げます。

  • エクセルマクロで比較して消去したり 残したりを

    皆様よろしくお願いします。 1行目にタイトルが入っています。 A列とB列にそれぞれ数字が入っていて その数字を比較してアル規則に基づいて 列をずらしたり 消したりしたいのです、 A   B 2   1 4   2 5   3 6   5    を A   B 2   2 5   5  こういう結果にしたいのです。 A列にもB列にも数字が小さいほうから大きいほうに 並んでいて それぞれ同じ数字もあれば欠番もあります (隙間無く並んでます) 同じ行で比較して同じ数字であればそのまま残し 違っていれば上にずらして比べて・・・ という作業です。ちなみにデータ数はAが2000ほど Bが50000ほどです。 なにか良い方法があればお願いいたします。

  • エクセルの2つのシートを比較

    エクセルで2つのシートのA列に値が入っています。 それぞれのA列を比較して同じ値であればシート1のB列をコピーしてシート2のB列に貼付。 ということはVBAで可能でしょうか? ※行番地はばらばらです。 ※A列の値がダブルことはありません。 例) シート1       シート2 A列   B列     A列   B列 111   あああ    111 222   いいい    333 333   ううう    555 444   えええ    444 555   おおお    666 結果 シート1        シート2 A列   B列      A列   B列 111   あああ    111   あああ 222   いいい    333   ううう 333   ううう    555   おおお 444   えええ    444   えええ 555   おおお    666 よろしくお願いします。

  • エクセル 行の200~ をクリアにしたい

    Win8のエクセル2013を使っています。 A列をリンク貼り付けしたら、データがかなり重くなってしまったので、数値の入っていない「行200~最後まで」を数字や値をクリアにしたいのですが、行をドラッグしながら一番下まで持っていくのは、とても時間がかかります。 何か一発で「行200~」をクリアにする方法はないでしょうか? 詳しい方いらっしゃいましたら、教えて下さい。 よろしくお願い足します。

  • エクセル 複数行にまたがっているデーターを一つの行

    以前に似たようなVBAの質問を元にさらにやりたいVBAがあるのですが、 (前の質問者のURL:http://okwave.jp/qa/q4955096.html)       A列  B列   C列   D列   E列 ~ R列 1行目  佐藤 北海道 りんご S 100 105 2行目  佐藤 北海道 ばなな M 100 105   3行目 伊藤  東京  いちご S 100 105 4行目  伊藤  東京  ばなな M 100 105 上記のようなデーターがあります。これを2行目と4行目を削除し下記のようにしたいのですが       A列  B列      C列      C列 1行目  佐藤 北海道  りんご,ばなな  S,M 2行目  伊藤  東京   いちご,ばなな  S,M A列とB列とE列~R列のデーターが同じでC列,D列,のデータが異なる場合、上記のように一行にまとめたいのです。関数やVBAで上記の処理を出来る方法がありますでしょうか。 

  • Excel 列と列の比較

    過去の質問を調べたのですが、分からなかったので教えてください。 ExcelでA列とB列を比較し、A列にもB列にもなかった数字を抽出したいです。 具体的には、 A列 B列 101 101 102 103 104 105 105 106 106 107 という値だと、 102 103 104 107 という数字を、C列とかに抽出したいのですが、どうすれば良いか分かるでしょうか?

  • エクセル 複数行にまたがっているデーターを一つの行にまとめたい

          A列  B列   C列 1行目  佐藤 北海道 りんご 2行目  佐藤 北海道 ばなな   3行目 伊藤  東京  いちご 4行目  伊藤  東京  ばなな  上記のようなデーターがあります。これを2行目と4行目を削除し下記のようにしたいのですが       A列  B列      C列 1行目  佐藤 北海道  りんごばなな 2行目  伊藤  東京   いちごばなな A列とB列のデーターが同じでC列のデータが異なる場合、上記のように一行にまとめたいのです。関数やVBAで上記の処理を出来る方法がありますでしょうか。 

専門家に質問してみよう