- ベストアンサー
Excelで特定の文字列を含む行を削除する
ある列に入力されている文字の中で、指定の文字列が含まれる行全体を削除して、上方向に詰めたいです。 具体的には、文字列の先頭にスペースがなく、"URL" 、"EMAIL" のどちらかが含まれる場合です。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
URLから始まるセルだけの削除方法は以下のようなワイルドカード検索を利用するのが簡単です。 Ctrl+Fで置換ダイアログを出し「オプション」ボタンをクリックし「セル内容が完全に同一であるものを検索する」にチェックを入れ、検索する文字列に「URL*」と入力し「すべて検索」し、そのままCtrl+Aですべての該当データを選択して、その上で右クリックし「削除」から「上方向にシフト」を選択します。 引き続き、検索する文字列の「URL*」を「EMAIL*」にして同じ処理を行います。
その他の回答 (5)
- msMike
- ベストアンサー率20% (364/1804)
- eden3616
- ベストアンサー率65% (267/405)
No2補足です。 VBAの名前に「列削除」となっていますが、条件に一致する「行」全体を削除します。 紛らわしい名前ですね。「行削除」とでもしてください。
- bunjii
- ベストアンサー率43% (3589/8249)
>ある列に入力されている文字の中で、指定の文字列が含まれる行全体を削除して、上方向に詰めたいです。 行の順番が変わっても良いですか? 対象の列を選択して、置換機能で文字列の置き換えを行ってください。 検索する文字列に URL* と入力して、置換後の文字列には何も入力しません。 「すべて置換」ボタンをクリックすると一挙に置換(削除)され、「置換」ボタンをクリックすると該当するセルを1つずつ文字列を置換されます。 また、置換する文字列に EMIL* と入力して上記の処理を行います。 その後、置換対象の列を基準に「並べ替え」を行い、削除したセルが含まれる行が下位の纏まりますので不要な行を選択して削除すれば良いでしょう。 尚、行の順番を元に戻すときは置換を実行する前に作業用列に連番を付加して置きます。 不要な行を削除後に作業用列の順番を基準に行の並べ替えを行えば元の順番になるでしょう。
- eden3616
- ベストアンサー率65% (267/405)
ALT+F11でVBEを開き、挿入から標準モジュールを挿入 下記のVBAコードをコピーし、右上の「×」でVBEを閉じてください。 指定の文字列が含まれる「ある列」のどの行でも構わないのでセル選択した状態で、 ALT+F8でマクロの実行を開き、「列削除」を選択して実行してください。 指定列の1行目から最終行までの条件に一致する行を削除されます。 ■VBAコード Sub 列削除() Dim i As Long, myCol As Long myCol = Selection.Column For i = Cells(Rows.Count, myCol).End(xlUp).Row To 1 Step -1 With Cells(i, myCol) If .Value Like "URL*" Or .Value Like "EMAIL*" Then Rows(i).Delete End With Next i End Sub
- Safe_Mode
- ベストアンサー率48% (1329/2725)
簡単にやるならフィルターで条件に合ったものを抽出して抽出された行を削除すればいいんじゃないかと思いますけど。 例えばフィルターで「(スペースで始まらない)and(URLを含む)」にして抽出、 その後「(スペースで始まらない)and(EMAILを含む)」で抽出するといった手順では。