- 締切済み
エクセルで作ったリストの不要な行を削除したい
現在、顧客FAXリストをエクセルで作っており、FAX番号をA列、顧客名をB列、メールアドレスがC列といった構成で作っています。 FAX番号がNGだった場合に、NGリストというものがエクセルで作られます。 質問は、顧客リストからFAXが届かなかったNGリストの番号だけを 一気に削除する方法を教えてほしいです。 顧客リストの中の届かなかったFAX番号のセルのみが消えてくれればとても助かります。 1件1件検索して探すのでは労力がかかりすぎるので 何か良い方法があれば是非教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! VBAになってしまいますので、参考にならなかったら読み流してください。 Sheet1の2行目からデータがあり、Sheet2のA列・2行目から削除したいFAX番号が入っているとします。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、 ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub test() Dim i, j As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("sheet1") Set ws2 = Worksheets("sheet2") For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row For j = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row If ws1.Cells(i, 1) = ws2.Cells(j, 1) Then ws1.Cells(i, 1).Clear End If Next j Next i End Sub 尚、一旦マクロを実行すると元に戻せませんので別Sheetにコピー&ペーストしてマクロを試してみてください。 以上、参考になれば良いのですが・・・m(__)m
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1は顧客リストで1行目には項目名があり、2行目から下方にデータがあるとします。 シート2はNGリストで1行目にはNGリストの項目目が2行目から下方にデータがあるとします。 NGリストの番号だけを削除した顧客リストの表をシート3に作るとして、1行目にはシート1と同じ項目名を入力したのちにA2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(COLUMN()>3,AND(COUNTIF(Sheet2!$A:$A,INDEX(Sheet1!$A:$C,ROW(),COLUMN()))>0,COLUMN()=1)),"",IF(INDEX(Sheet1!$A:$C,ROW(),COLUMN())=0,"",INDEX(Sheet1!$A:$C,ROW(),COLUMN())))
- don9don9
- ベストアンサー率47% (299/624)
顧客リストのシート名をSheet1 顧客リストはA列がFAX番号、B列が顧客名、C列がメールアドレス 1行目が項目名、2行目以降がデータが入っている NGリストのシート名をSheet2 NGリストはA列にFAX番号のみ列記 とします。 Sheet1のD2に =COUNTIF(Sheet2!A:A,A2) と入力し、これを顧客リストの最終行までコピー&ペーストします。 これでD列は、NGリストに含まれないFAX番号の行は0 NGリストに含まれるFAX番号の行は1となります。 (もしNGリストに同じ番号をダブって入力していたら 2以上となる可能性もありますが) あとは、オートフィルタでD列が0以外の行を抽出すればいいです。
お礼
ありがとうございます!!早速試してみます!!