• ベストアンサー

EXCELの行の演算:同じデータかの判定

(前提) 10列からなるデータが1行~10行まであるとします。 (したいこと) 1行目のデータとまったく同じものが2行から9行の中にあるかどうかを判定しあればその行を知らせるというようなことを行うにはどのように式をかけばよいでしょうか。 マクロ、VBAの式でもなんでもいいです、教えてください。

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

  • ベストアンサー
  • yuhki_f
  • ベストアンサー率32% (32/99)
回答No.2

2行目以下のデータと一緒に判別用の値を表示させる方法では駄目でしょうか。 2行目の横のセルに IF(2行目のデータ=1行目のデータ、1,0) 3行目の横のセルに IF(3行目のデータ=1行目のデータ、1,0)    ・    ・    ・ こうすれば、1行目と同じデータを持った行には1が、そうでない行には0が表示され判別できます。

taktta
質問者

お礼

おかげでうまくいきました.どうもありがとうございました

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

(1)A1にa、B1にb、C1にcと入力する。   Msgbox Range("a1:c1”).Valueを実行するとエラー。   1行全体となると、Rangeで表すほかないのだから、2つの行の    Range同士を1回で単純比較できない。 (2)それでは各行のセル同士を1つ1つ比較するしかない。 A1~C10に下記データを入れました。 a b b a c c a b c b a a a b b a c c c b b a c c c a b a b b モジュール1に下記を組みました。 Sub test01() retu = 3 gyou = 10 Dim fnd(10) For i = 1 To gyou   For j = i + 1 To gyou   If fnd(j) = "f" Then GoTo p01     For k = 1 To retu      If Sheets("sheet1").Cells(i, k) <> Sheets("sheet1").Cells(j,      k)    Then 'この行前行の右に続けること       GoTo p01      End If     Next k     MsgBox i & "行と" & j & "行は同じ"     fnd(j) = "f"     p01:   Next j Next i End Sub 上記テストデータでは上手く行っていますが。

taktta
質問者

お礼

おかげでうまくいきました.どうもありがとうございました力作どうも。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

行単位(10列分)での一致不一致の検証でしょうか。その前提で回答します。 質問のデータがA1~J10の10列10行にあるとします。 K2に  =IF(AND($A$1=A2,$B$1=B2,$C$1=C2,$D$1=D2,$E$1=E2,$F$1=F2,$G$1=G2,$H$1=H2,$I$1=I2,$J$1=J2),"一致","") として、下方向にコピーします。 力技になっています。列が増えれば判定を分割すれば可能です。 下はユーザー定義関数で行ってみました。 1行目に対して、2行目をチェックする場合、 =RowCheck(2) または、 =RowCheck(Row()) とします。(2行目に算式を入力する場合です。Row()=2 なのでこう書けます) これを応用して、メッセージを出すようなこともできます Function RowCheck(rw As Long)   Dim chkRow As String '1行目   Dim curRow As String 'チェックする行   Dim c As Integer   Application.Volatile   '項目をセパレータ(下はカンマ)付きで連結   For c = 1 To 10     chkRow = chkRow & "," & Cells(1, c)     curRow = curRow & "," & Cells(rw, c)   Next   '判定   If chkRow = curRow Then     RowCheck = "一致"   Else     RowCheck = ""   End If End Function

回答No.1

MATCH関数を使うといいと思います。 例: =MATCH(A1,A2:A9,0)    一致したデータがA1から何行あとにあるかが算出されます    A5に一致したデータがあれば、4になります。 ただし、2つ以上あっても、A1に一番近いものしか 検出されません。

taktta
質問者

お礼

どうもありがとうございました。

関連するQ&A