• ベストアンサー

EXCELでの複数条件に合う行の削除

以下のようなEXCELデータがあるのですが、 A列が連番(上のセルに+1したものが下のセル)でかつB列が上のセルと下のセルが同じ値、かつC列が上のセルと下の値が同じ値だった場合にその連続する行を削除したいのですが具体的にはどのような式をつくればよいのでしょうか? A B   C     1 6個  100円 3 2個  200円 4 4個  50円 5 4個  50円 1 9個  100円 2 8個  400円 4 1個  400円 1 2個  200円 この場合、求めたい最終的な表は A B   C     1 6個  100円 3 2個  200円 1 9個  100円 2 8個  400円 4 1個  400円 1 2個  200円 になります。 ご存知のかたがいらっしゃいましたらよろしくお願い致します。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

4 4個  50円 5 4個  50円 の2行が消えればいいのですか? D2=IF(OR(AND(B2=B3-1,C2=C3,D2=D3),AND(B2=B1+1,C1=C2,D1=D2)),"消す","") としてD2の数式を下方にコピーして「データ」「フィルタ」「オートフィルタ」でD列が"消す"の行を抽出して削除する。

masya1999
質問者

お礼

ありがとうございます。望んでいたことができました!お早いご対応感謝致します。

その他の回答 (3)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#02です。D3セルの式は以下に訂正します。 =IF(OR(AND(A3=A2+1,B3=B2,C3=C2),AND(A3=A4-1,B3=B4,C3=C4)),1,0)

masya1999
質問者

お礼

ありがとうございます!大変参考になりました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

D3セルに以下の式を入れて他のセルにコピーすると条件に合うセルは1になります オートフィルタで1の行を抽出して行削除すればよいでしょう。 =IF(AND(OR(A3=A2+1,A3=A4-1),OR(B3=B2,B3=B4),OR(C3=C2,C3=C4)),1,0) ただしD2セルはこのままだと#VALUE!エラーとなります。A1セルのタイトルをダミーの数値にすれば回避できます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

VBA(マクロ)を使えば一発です。 簡単ですから試してみてください。ただし、必ずバックアップをとってからにしてくださいね。 手順は以下の通りです。 1.AltキーとF11キーを同時に押してVisualBasicEditorを呼び出します。 2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコード(Sub~End Sub)をコピペします。 Sub test01() With ActiveSheet x = .UsedRange.Cells(.UsedRange.Count).Row For i = x To 2 Step -1 If .Cells(i, 1) - 1 = .Cells(i - 1, 1) _ And .Cells(i, 2) = .Cells(i - 1, 2) _ And .Cells(i, 3) = .Cells(i - 1, 3) Then .Rows(i & ":" & i - 1).Delete Next End With End Sub 3.再度Alt+F11キーでワークシートへもどります. 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(test01)を選択して実行します。

masya1999
質問者

お礼

ありがとうございます!マクロについて勉強しようと思います。大変参考になりました。

関連するQ&A