• ベストアンサー

Excel 条件付き書式(行)について

質問させてください。 添付しているExcelファイルにIPアドレス・サブネットマスク・日付があります。 IPアドレスが重複している分に関しては行ごと削除したいと考えております。 ただし、日付の新しい分については残し古い分のみ行ごと削除したいのです。 約1万レコード程ありどのようにすればいいのか困っています。 どなたかご教示いただけないでしょうか。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 失礼しました、先程の方法の説明には、一部抜けが御座いました。 E3セルに =AND(INDEX($D:$D,ROW())<>"",INDEX($D:$D,ROW())=SUMPRODUCT(MAX((OFFSET($B$2,1,):INDEX($B:$B,MATCH(9^9,$D:$D))=INDEX($B:$B,ROW()))*OFFSET($D$2,1,):INDEX($D:$D,MATCH(9^9,$D:$D))))) という関数を入力   ↓ E3セルをコピーして、E4以下に貼り付ける(A列にIPアドレスが入力されている最下段の行まで)   ↓ Excelの[フィルター]機能を使用して、E列の値がFALSEとなっている行のみを表示させる   ↓ E列の値がFALSEとなっている行をまとめて削除する

blueblood-ai10
質問者

お礼

kagakusukiさん ありがとうございました。 見事にできました。 ただ、コピーしただけでできたので理解できていません。 よろしければ解説いただけないでしょうか>< 素人で申し訳ありません・・・。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

お示しの表がシート1に有るとします。 IPアドレスと日付などが予め並び替えで整理されていれば対応も楽などですがそうではないとして行うのでしたら作業列としてE2セルには次の式を入力し、式を確定する段階でCtrl+Shift+Enterキーで確定します。 その後に下方にオートフィルドラッグします。 =IF(D3="","",IF(COUNTIF(B:B,B3)=1,MAX(E$2:E2)+1,IF(MAX(IF(B:B=B3,D:D))=D3,MAX(E$2:E2)+1,""))) お望みのシートはシート2に表示させることとしてB2セルからD2セルにはシート1と同じ項目名を入力します。 B3セルには次の式を入力してD3セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet4!$E:$E,ROW(A1))=0,"",INDEX(Sheet4!$B:$D,MATCH(ROW(A1),Sheet4!$E:$E,0),COLUMN(A1))) 最後にD列についてはセルの書式設定の表示形式で日付を選択します。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 次の様な方法は如何でしょうか。 E3セルに =AND(INDEX($D:$D,ROW())<>"",INDEX($D:$D,ROW())=SUMPRODUCT(MAX((OFFSET($B$2,1,):INDEX($B:$B,MATCH(9^9,$D:$D))=INDEX($B:$B,ROW()))*OFFSET($D$2,1,):INDEX($D:$D,MATCH(9^9,$D:$D))))) という関数を入力   ↓ Excelの[フィルター]機能を使用して、E列の値がFALSEとなっている行のみを表示させる   ↓ E列の値がFALSEとなっている行をまとめて削除する [注]  念のために、前もって、元データをコピーして、別シート等にバックアップを取っておかれる事を御勧め致します。

関連するQ&A

専門家に質問してみよう