プロが教える店舗&オフィスのセキュリティ対策術

次のような1000行ほどのエクセルの表があります。
  A    B    C   D
1 始点  
2
3 終点 消去
4 始点
5 終点 採用
6 始点
7 
8 終点 消去
 
「始点」の行から次の「終点」の行までが1つのデータです。
データの最後に「消去」とあるデータを削除し、「採用」とあるデータだけ残したい。
サンプルでは、1行~3行、6行~8行を削除したい。
手作業以外で、簡単にできる方法をさがしています。
どなたかよろしくお願いします。

A 回答 (4件)

関数を使わない泥縄な方法で...



「始点」から「終点」の前までの行に、「終点」に入力されたデータが入れば、ソート等で簡単に削除できるのですから、下記手順で良いかと思います。

1) C8に
  =IF(A8="終点",B8,C9)
 を入力
2) C1までコピー
3) C列全体をコピーし、C1に「形式を選択して貼り付け」で「値」を選択し貼り付け
4) D1に =row()と入力して行番号を入力し、D8までコピー
5) D列全体をコピーし、D1に「形式を選択して貼り付け」で「値」を選択し貼り付け
6) C列でソートし、「消去」の行を削除
7) D列でソートし、元に戻す

(中身としては、ほとんど 1) の式だけです)
    • good
    • 0
この回答へのお礼

できました。ありがとうございました。
泥縄な方法は大好きです。
私もどうやって「消去」と「採用」をセルに埋め込むか泥縄な方法を考えていましたがこんな方法があったんですね。まったく思いつきませんでした。
どうもありがとうございました。

お礼日時:2006/10/09 19:38

マクロを組んでみました。



Sub 消去()
Dim RowBegin As Integer
Dim Row As Integer

RowBegin = 1

While (Cells(RowBegin, 1).Value <> "")
Row = RowBegin
While (Cells(Row, 1).Value <> "終点")
Row = Row + 1
Wend
If Cells(Row, 2).Value = "消去" Then
Rows(RowBegin & ":" & Row).Delete Shift:=xlUp
Else
RowBegin = Row + 1
End If
Wend
End Sub
    • good
    • 0
この回答へのお礼

出来ました。助かりました。
マクロはあまり詳しくないですが、VBA にコピーして実行したらできました。結果も求めていた結果になっています。
こんなに早く、ほんとうにありがとうございました。

お礼日時:2006/10/09 18:12

「データ」→「フィルタ」→「オートフィルタ」をONにする。


プルダウンから「オプション」→「消去,と等しい」にして一気に消します。

この回答への補足

早速のお答えありがとうございます。
この方法ですと、消すことができるのは、「消去」と書かれた行だけで、消したい行が全部消えることにはならないと思います。
「始点」の行から次の「終点」の行までを1つのデータ集団として、「消去」を含むデータ集団を消したいのです。
サンプルでは、この方法では3行目と8行目が消えると思いますが、
1行~3行、6行~8行を消したいのです。
よろしくお願いします。

補足日時:2006/10/09 17:40
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/10/09 19:41

 


私なら、B列で並べ直し、集まった「消去」の列を削除します。

マウス操作にして3クリック程の作業です。

 

この回答への補足

早速のお答えありがとうございます。
この方法ですと、消すことができるのは、「消去」と書かれた行だけで、消したい行が全部消えることにはならないと思います。
「始点」の行から次の「終点」の行までを1つのデータ集団として、「消去」を含むデータ集団を消したいのです。
サンプルでは、この方法では3行目と8行目が消えると思いますが、
1行~3行、6行~8行を消したいのです。
よろしくお願いします。

補足日時:2006/10/09 17:17
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/10/09 19:41

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