この個人的に運営しているブログとは別に仲間と共同で運営しているブログがあるんだけど、重複している投稿記事が多数あるため、最も古い投稿だけを残し、重複したデータだけを抜き出して削除しなければならない事案が発生。
ところが投稿データは5,000個近くあり、1つずつ削除するのは膨大な時間を要するうえにチマチマしたことが大嫌いで、いつも大雑把と言われる自分にとっては苦行そのものの作業。
ブーブー言いながらチマチマした作業をしつつ、楽したいな〜と思っていたところ、ピンとExecelの計算式を使えば早いことに気づいた。
さすが、ほんごう。
初めから計算式使えば良かったやんけ!
なんて野暮なツッコミは置いといてください。
というわけで備忘録として保管することにしました。
同じような悩みの人の解決になればどうぞ。
最初に重複しているデータを抽出する
=IF(COUNTIF($A$1:$A$●●●,A1)>1,”重複”,””)
まずは「重複」している列を選択(この場合A1列)して別列に上記関数を入れます。
これは重複しているデータと、そうでないデータを振り分ける必要があるため。
新旧関係なく重複しているデータを抜き出していきましょう。
●●●は一番下のデータ行番号を入力。(例:5,000行あるならタイトルを除いて5,000)
オートフィルタで「重複」しているデータを抜き出して、別シートなりに貼り付け。
重複しているデータの分だけ連番にする
=COUNTIF($A$1:A1,A1)
次にまた別列に上記関数を入れます。
これは重複しているデータの分だけ連番を割振りふってくれる関数。
2つだけ重複しているときもあれば、3つ、4つ重複している場合もありますので、その分だけ連番を振ってくれる便利な関数です。
これで重複している数の分だけ、連番を振ってくれました。
古いデータだけ残してあとは削除する
上記列をオートフィルタで連番1のチェックのみを外して表示。
これで重複しているデータが分かったので、別に新規ファイルを作って保存。
あとはプラグインなりCSVインポーターなりで取り込み、重複している投稿データ削除します。
まとめ
実際にまとめてみると、上記処理だけであっという間に終わるから楽勝じゃん!
と思うだろうけど、ここにたどり着くまで検索したり試行錯誤したりと、すごく骨が折れたんです。
やっぱり先人は偉大だね!
コメント