- ベストアンサー
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円 になります。 ご存知のかたがいらっしゃいましたらよろしくお願い致します。
- みんなの回答 (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列が"消す"の行を抽出して削除する。
その他の回答 (3)
- zap35
- ベストアンサー率44% (1383/3079)
#02です。D3セルの式は以下に訂正します。 =IF(OR(AND(A3=A2+1,B3=B2,C3=C2),AND(A3=A4-1,B3=B4,C3=C4)),1,0)
お礼
ありがとうございます!大変参考になりました。
- zap35
- ベストアンサー率44% (1383/3079)
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)
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)を選択して実行します。
お礼
ありがとうございます!マクロについて勉強しようと思います。大変参考になりました。
お礼
ありがとうございます。望んでいたことができました!お早いご対応感謝致します。