【Excel関数小技】重複をはじいて一意にするには?―データベース上のユニークな値を抽出する方法
データベースを数多く取り扱っているビデオリサーチでは、日々データの収集や分析・解析業務を行っています。
このシリーズでは、当社の日々の業務で使用している【エクセル関数】を使った『小技』を紹介します。
【事例】ウェブサイトのアクセスログから、ユニークなユーザーIDのみを抽出したい
ウェブサイトのアクセスログのように、同じユーザーがウェブページをアクセスするたびにレコードが起きるデータの場合、データが重複することが多々あります。
たとえば、ウェブサイトにアクセスしてくれたユーザーのIDを特定し、一意(ユニークにする)にしたい場合には複数の方法が考えられます。
①UNIQUE関数を使用する
②「重複の削除」機能を使用する
③ピボットテーブルを使用する
今回は、①のUNIQUE関数を用いた方法を紹介します。
=UNIQUE(B2:B8)
=セルB2~B8の範囲で重複しない一意の値を抽出する
UNIQUE関数は、サブスクライセンスであるMicrosoft365・Excel2021で利用できる比較的新しい関数なので、Excel2015や2019では利用できません。
UNIQUE関数を用いることで、E2セルに「=UNIQUE(B2:B8)」と入れるだけで一意のユーザーIDが抽出できます。
UNIQUE関数はスピル(数式を入力したセルだけでなく、隣接するセルにも自動で関数を入力してくれる便利機能)する関数になりますので、非常に簡単に重複を排除することができます。
ユーザーID以外にも、
・期間内にアクセスのあった日時の一覧を作りたい
→A列でUNIQUE関数を使用
・期間内にアクセスされたページURLの一覧を作りたい
→C列でUNIQUE関数を使用
することで実現できます。
簡単に一意のデータが抽出できるため、汎用性の高い関数です。
<応用>重複しているレコードそのものを特定するには?
重複しているレコードを特定し、修正等を加えたい場合はIF関数とCOUNTIF関数を組み合わせる方法がおすすめです。
=IF(COUNTIF($B$2:$B$8,B2)>=2,"重複","OK")
=セルB2~B8の範囲内に、B2と同じものが2セル以上ある場合"重複"、そうでない場合"OK"と表記する
COUNTIF関数は、「★★の範囲の中で、◎に一致するセルの数を数値で返す」という関数です。
セルE2では、「$B$2:$B$8の範囲の中で、B2に一致するセルの数」を調べているので、返す数字は「2」となります。
なお、オートフィルしたセルE6では「$B$2:$B$8の範囲の中で、B6に一致するセルの数」を調べているので、返す数字は「1」になります。
そしてIF関数は、「もし●●にあてはまる場合は"A"とし、あてはまらない場合は"B"とする」という関数です。
COUNTIF関数と組み合わせることで、セルE2では「もしCOUNTIF関数で数えた結果の数字が2以上なのであれば、"重複"という文字列を、そうでない場合は"OK"という文字列を表記する」という結果を導き出せます。
いかがでしたか?
関数には無限の組み合わせや使い方があり、今回紹介した例はその一例にすぎません。
本連載は今後も不定期で更新予定です。日々の業務の効率化にお役立ていただけましたら幸いです。