プロが教えるわが家の防犯対策術!

エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法

表題のとおりですが、エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法について教えてください。

特定の文字(C列にあります)が含まれている行から5行下の先ほどとは違う文字(これもC列にあります)までを削除したいのです。
それがたくさんあり大変困っております。

エクセルを起動してマクロの記録を行い手作業で5回削除し記録終了としたのですが、
5回以上削除したい場合は操作が行われませんでした。

これをマクロで行うにはどういう式を作ればいいでしょうか?

宜しくお願いします。

※添付画像が削除されました。

A 回答 (3件)

添付図が消えてしまったようですので詳細不明ですが勝手に想像して。



こちらの添付図は,ある特定の言葉(仮にIN)から別の特定の言葉(仮にOUT)までの範囲の行を特定し,削除する準備の様子を示しています。
D2:
=IF(C2="in",1,IF(C1="out",0,SUM(D1)))
以下コピー

あとはD列をオートフィルタで絞り込み,まとめて選んで編集の削除で上に詰めてしまえば完成です。
ここまで特にマクロを使うまでもありませんが,繰り返し似た様なデータ処理が出てくるのでしたら「式を入れる」「オートフィルタを取り付けて絞り込む」「行削除する」と3ステップのマクロを用意すれば出来ます。

実際の「特定の文字」の選出部分について少し式を工夫すれば,どんなパターンでもほぼ同じで出来ます。たとえば仮に「INの言葉が複数リストアップされている」「OUTも複数の言葉」だったとしても,COUNTIFなどで判定すればOKです。
「エクセルで特定の文字が含まれる行から特定」の回答画像1
    • good
    • 0

マクロを使わなくても、手動操作でできますよ。

(当然操作を記録マクロにしてもOK)

・C列にオートフィルタを設定する
・オートフィルタ内のオプション項目で「文字列を含む」として絞り込みをする
・ジャンプ機能から表示しているセルだけを選択する(編集→ジャンプ→セルの選択→可視セル→OK)
・選択された範囲(行)を削除する
・オートフィルタを解除(削除)する
この順番でできます
    • good
    • 0

条件をもう少し詳しく補足ください


>特定の文字(Aとします)が含まれている行から5行下の先ほどとは違う文字(Bとします)までを削除したいのです。
・特定のデータ行を含む6行を無条件削除?(Aを含む5行下までの6行)
・特定のデーターから特定のデーター間の行を削除?(A/B間の不特定行)
・削除とは行全体?それともデーターのみを削除?
・AからB間またはAから5行下までの間に再度Aが存在する可能性は?
・また存在した場合の処理は?(2度目のAから再度5行下まで削除?)

このあたりの補足がないと思っていたものと異なる回答が出てしまいます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!