• ベストアンサー

値の比較について

Excelにおいて 1  1 3  3  4  4 7  5 6  6 3  2 というように数値が並んでおり、同じ行の値を比較して、値がそれぞれ異なった場合にのみその値の順番を返す、というようなプログラムをexcelのVBを利用して書きたいと思っています。 上の例でいくと、4行目と6行目の値が異なっているので、4、6というような回答をしてくれるプログラムを組みたいです。 プログラムに関しては全くの素人ですので、どうか回答よろしくお願いいたします。

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

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

数値がA列とB列にあるものとして、 Sub test() Dim r As Long For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(r, 1).Value <> Cells(r, 2).Value Then MsgBox "値が異なるのは" & r & "行目です" '(a) Cells(Rows.Count, 3).End(xlUp).Offset(1).Value = r '(b) End If Next r MsgBox "終了" End Sub 見つかるごとにメッセージが要らなければ(a)の行を削除してください。 C列への書き込みが要らなければ(b)の行を削除してください。 どのように「返す」のかが解らなかったので、適当に予想して作りましたが、これ以外の返し方を望むのであれば、詳細を書いてください。

paeriaerea
質問者

お礼

ご丁寧に本当にありがとうございます。 動作の仕方は私のまさに望んでいたものです。 値の返し方についてですが、値のことなる行の番号を隣の列辺りに 4 6 というように次々と羅列していくものが理想です。 手取り足取り本当にすみません…

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

その他の回答 (1)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

Cells(Rows.Count, 3).End(xlUp).Offset(1).Value = r '(b) を Cells(r, 3).Value = r に変更してください。

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

関連するQ&A

  • 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で実現したいと思います。 何卒、宜しくお願い申し上げます。

  • 0~9まで入力させ、前に入力された値と比較する

    以下のようなJavaプログラムを作りたいですが、どこから着手するかわからない、教えていただきませんか ・0~9まで野数値を入力されて、0~9以外の場合は「不可」  なお、初回は「比較できない」と表示 ・前に入力された数値より大きい時「大」、小さいとき「小」と表示する ・大が3回二逹するか10回入力したら終了し、入力された値をカンマ区切り1行表示します。

  • excelを用いた数列比較について教えてください!

    仕事で求められたもののexcelでのプログラミングに疎く、困っています。 何卒ご回答をお願いいたします。 ---------------------------------------------------------------- 【例】 A列    B列 1    1 2    -- 3    2 4    -- 5    9 --   4 --    5 ---------------------------------------------------------------- 上記のように、数字と記号の混じった数列が二つあります。 上の行から順番に、記号は関係なく数字を比較していき、異なっている数字の両方をわかるようにしたいのです。 上の例でいえば、左の列の「3」と右の列の「9」をチェックしたいです。 皆様、どうぞよろしくお願いいたします。

  • 値の比較方法

    VBをはじめて2週間の新人です。よろしくお願いします。 早速質問させていただきたいのですが、 データグリッドに入力した列の値(複数)をすべて比較するというプログラムを作りたいのですがどうすればいいのかわかりません。 たとえばデータ列に[A][B][C][D][E]・・・という風にどんどん入力されていき、その値を比較、[A]=[B],[A]=[C],[A]=[D],[A]=[E], [B]=[C],[B]=[D],[B]=[E]・・・・ という感じですべての値が同一にならないよう(同一の場合はエラーを発生)にしたいのです。 ループを使うのだろうなぁとはおもうのですが、うまくいきません。 お助けいただけますでしょうか、よろしくお願いします。

  • ゼロでない値のうち最後のものを返す

    上から順に数値を入力する1列30行の表があります。 数値はすぐ上の値を更新した値を入力していきます。 31行目には最終値として、最後に入力された値を出したいです。 例えば16行目までしか入力されなかった場合、17~30行目は空白のまま残しつつ、31行目には16行目の値を出したいです。 これらを自動で判別して値を返してくれるようにするには、どんな関数を使えばよいでしょうか?

  • VBAを使って、2つのファイルを比較したい

    OS Windows98 Excel2000 下記のとおり、2つのファイルがあるとします。 aaa.xls(比較元) bbb.xls(比較先) 内容はほとんど同じなのですが、 行や列が追加、或いは削除されている場合もあります。 1)追加されている場合 bbb.xlsよりaaa.xlsへコピペをする。 2)削除されている場合 aaa.xlsからセルの値を削除し、 それ以下の値を上へ詰める。 ここで問題なのは、 1)ページ毎に行数が決まっていない。 2)アイテム毎に1行ずつ空白の行がある。 3)追加或いは削除の場合のコピペを行う場合、   ページブレイクをどう扱うか。 4)連番等といったLOOP等を使ってできる基本になる   値が全くない。(わざわざ手動で追加してもよいが、   全部で20ファイル(比較元)、各ファイルには300以   上の行がある。) 5)セルによって、2つ以上のセル(上下どうし、或いは   隣どうし)が結合している場合もある。 以前、Excel98でVBAを使ってプログラムを書いたことはあ るのですが、Excel2000は初めての初心者同様のものです。 プログラムの内容を書いてもらえれば1番うれしいのです が、多分これだけの説明ではそういう訳にはいかないと思 います。 ですから、何らかのきっかけとなるアドバイスでも頂けれ ばと思ってここへ質問にきました。 よろしくお願いします。

  • アセンブラの数値比較

    Z80のアセンブラで数値比較を行うにはどのような記述をすればよいのでしょうか? 例)変数に入っている値「10」と変数に入っている値「20」を比較するような場合 よろしくお願いいたします。

  • 2つのセルに入力された異なる数値同士を比較して、もっとも近い値のある行

    2つのセルに入力された異なる数値同士を比較して、もっとも近い値のある行を検索する。 EXCELに関して表題の件で皆様の助言を何卒よろしくお願いします。 以下のようなサンプルがあるとします。 【A表】 #     x      y 1     13     712 2     22     1277 3     22     1559 4     22     2158 5     30     692 6     33     2294 7     34     1205 8     36     177 9     40     1851 10     52     762 ・ ・ ・ ・ これに対しての検索するデータが以下です。 【B表】 2#     2X      2Y 2     17.38    421.735 3     29.504   419.711 4     12.254   419.922 5     32.509   417.048 6     32.412   415.276 7     32.131   413.79 8     28.439   416.012 9     28.105   172.226 10    38.55    262.927 13    58.727   10.303 14    50.327   11.811 15    35.978   104.821 ・ ・ ・ ・ A表とB表のそれぞれ 【x ⇔ 2x】 【y ⇔ 2y】 の部分と比較し もっとも近い値から上位3つくらいまで一致したA表の行を抽出するための 関数、マクロを作成したいと思っていまして、過去ログ等調べて 色々試してみましたがなかなかうまくいきません。 【x 、 y】と【2x 、 2y】はそれぞれ同じ行同士の物で検索しなければならないというのが ネックになっているのでしょうか? あとA表、B表の総項目数は一致していません。 もっとも近い値を検索し、その行の【#】の数値を抽出するという関数は 過去ログから検索して作成することは出来たのですが、 2番目、3番目に近い値を検索し、#の数値を抽出することが出来ません。 言葉足らずで理解に苦しむかと思われますが、何卒皆様のご助力を よろしくお願い致します。 ※本文では分かり辛いので画像添付しました。ご参照下さい。

  • VBScriptで値の比較をするには?

    VBScriptで値の比較をするには? VB.NETはかじった程度いじったことがあるのですが、今回、ASPに兆戦する必要があり (既存のプログラム回収)ちょっと困っています。 まず、以下のようなメソッドをaspファイルに追加しました。 引数から、Caseで返すべき値を判定するメソッドです。 <% Function get_name(ByVal arg1,ByVal arg2) dim retVal retVal = "" If arg1 = CONST_NAME_ARI Then Select Case arg2 Case CONST_CD1 retVal = CONST_NAME1 Case CONST_CD2 retVal = CONST_NAME2 End Select ElseIf then …(略) End if get_name = retVal End Function %> 別ファイルで、const.incというファイルあって、その中に値が定義されており (CONST_NAME_ARI = "1"とか、CONST_NAME1 = "名前"とか)それとの比較を したいと思っています。 引数は、文字列が入るとは限らず、DB上INT型で定義されている値がきた場合、 VB.NETだと比較する値の型を揃えるためにCASTが必要かと思うんですが、 VBScriptでは必要ないのでしょうか? 上記のメソッドを追記しただけで、エラーが発生してしまい(呼び出していなくても)、 比較の仕方に問題があるような気がしているんですが…。 初歩的なところで申し訳ないのですが、問題点をご教授いただけないでしょうか。

  • 白血球の値について教えてください!

    こんにちは! 白血球の値についての質問をさせて頂きます! ネットなどで、みたところ 「白血球の通常の値」は3000~9000くらいと書かれてありました。 素人ながらに、この数値の幅が結構広い??・・のかなぁ?? ・・などと思ったりしていますが、 仮にこの値が10000だとした場合、通常値より +1000ですよね? ということは「異常値」となるわけですか? そしてこの10000という数値自体が、非常に高いものなのか? それとも、9000より1000多いだけなので、 またまた、素人ながら(数値的に考え) 異常値だけれども・・大きな病気にはまだ至らない? それとも、この +1000という数値だけでも・・ 大変な病気、に関わっている可能性が大きい? 上にも書きましたが「通常値」の幅が広かったのでイマイチ判らないので質問させて頂きました! (病気の種類によってもも色々あると思うのですが・・) このあたりを教えていただきたいのですが。 どうぞ宜しくお願い致します!!

このQ&Aのポイント
  • 昨年、お見合いパーティーでマッチングした女性との関係についてアドバイスを頂きたいです。
  • 自分自身の恋愛経験の少なさと相手との価値観の違いから自然消滅することになりましたが、もう一度チャンスが訪れるでしょうか?
  • 自分自身も相手自身も真剣に向き合える関係を築くために、新たな出会いが欲しいです。
回答を見る