【Googleスプレッドシート | ノート】 あいまい検索を使った置換で大量データを処理する

スポンサーリンク

あいまい検索を使っての置換で大量データを処理する

今回は、Googleスプレッドシートの機能である「検索と置換」で、あいまい検索を使う方法をご紹介します。

※「検索と置換」の基本的な機能については下記記事をご覧ください。

【Googleスプレッドシート | 検索と置換】 大量のデータを一気に書き換えをする
指定範囲の文字列を探したり置き換えたり出来る「検索と置換」 検索と置換 指定した文字列などを、検索範囲のなかから検索したり、違う文字に置き換えたりすることが出来る機能です。「編集」タブの続きを読む
">
【Googleスプレッドシート | 検索と置換】 大量のデータを一気に書き換えをする
指定範囲の文字列を探したり置き換えたり出来る「検索と置換」 検索と置換 指定した文字列などを、検索範囲のなかから検索したり、違う文字に置き換えたりすることが出来る機能です。「編集」タブの続きを読む

「検索と置換」といえば、EXCELでもお馴染みの機能ですね(^o^)

ただ、Googleスプレッドシートの「検索と置換」には、EXCELの時に出来たことが出来ません。

それは、「ワイルドカード」を使ったあいまい検索です。

EXCELでは「*」や「?」といったワイルドカードという記号を使って、「愛知県」や「岐阜県」など、「◯◯県」にヒットさせたい場合「*県」と表記すれば検索出来ますが、Googleスプレッドシートでは、使えないんです。。。(;_;)

※EXCELでのワイルドカードを使ったあいまい検索については次の記事を参考にしてください。

どうしよう??と僕も戸惑った記憶があります。

もちろん、Googleスプレッドシートでもワイルドカードは使えませんが、やりたいことが出来ないわけではありません。

Googleスプレッドシートでは、ワイルドカードではなく、正規表現という方法を使って、あいまい検索を行います。

正規表現を使ったあいまい検索

それでは早速ですが、正規表現を使ったあいまい検索のやり方を紹介します。

次の、47都道府県の一覧をサンプルに説明します。

まずは、機能の場所です。

「検索と置換」は、「編集」メニューからか、ショートカットキーで「Ctrl + H」で出せます。

※後でも指定出来ますが、あらかじめ検索と置換をしたい範囲を選択した状態で行うと後が楽です。

※「検索と置換」の基礎が分からない方は次の記事を先に読んでください。

https://hirachin.com/post-3505/

次のような、画面が出ますので、「正規表現を使用した検索」のチェックボックスにチェックを入れます。※「大文字小文字の区別」も自動的にチェックされます。

後は、次の図のように一番上のボックスに正規表現を入れるだけです。

試しに、「^山」と入力して、検索をしてみましょう。

https://hirachin.com/wp/wp-content/uploads/2020/12/2020-12-03_16h21_25.mp4

動画で分かるように「山形県」「山梨県」「山口県」にヒットしています。

^山

この正規表現は、先頭が「山」なものという意味なので、その3県がヒットしました。

「県」で終わるというのは次です。

.*県$

これも動画で確認してみましょう。

https://hirachin.com/wp/wp-content/uploads/2020/12/2020-12-03_16h26_29.mp4

「県」で終わるものがヒットしていますね。

このように、正規表現を使うことで色々なパターンのあいまい検索を実現出来ます。

EXCELの場合は、ワイルドカードしか使えないので、逆にGoogleスプレッドシートのが複雑なパターンマッチが可能ですね(^o^)

正規表現

正規表現を詳しく説明すると、超長くなってしまうと思いますので、基本的なものだけ紹介しておきます。

とりあえず簡単に正規表現を説明すると

文字列のパターンを記号で表現したもの

ということです。

次のような記号を組み合わせて、色々なパターンを作って行きます。

記号 意味 正規表現の例 マッチする文字列例
. 任意の1文字 . a , b, c なんでも
? 0回または1回の出現 ab?cd

acd → 0回

abcd → 1回

* 0回以上の繰り返しの出現 ab*cd

acd → 0回

abcd → 1回

abbcd → 2回 

abbbcd → 3回 

abbbb・・・cd → 4回以上何回でも

+ 1回以上の繰り返しの出現 ab+cd

abcd → 1回

abbcd → 2回 

abbbcd → 3回 

abbbb・・・cd → 4回以上何回でも

{n} n回の繰り返しの出現 ab{3}cd abbbcd → 3回 
{n,} n回以上の繰り返しの出現 ab{3,}cd

abbbcd → 3回

abbbbcd → 4回

abbbbbcd → 5回

abbbbbb・・・cd → 5回以上何回でも

{m,n} n回以上m回以下の繰り返しの出現 ab{3,4}cd

abbbcd → 3回

abbbbcd → 4回

^ 文字列の先頭 ^abcd abcd → abcで始まる
$ 文字列の末尾 abcd$ abcd → abcdで終わる
| |の左側の文字列もしくは、|の右側の文字列 a(b|c)d

abd

acd

 \w アルファベット、アンダーバー、数字 ab\wcd

abgcd

ab_cd

ab9cd

ab[a-zA-Z_0-9]cdと同じ

\W アルファベット、アンダーバー、数字以外の文字 ab\Wcd

abcd

abcd

ab[^a-zA-Z_0-9]cdと同じ

\s 空白文字(半角スペース,タブ,改行,キャリッジリターン) ab\scd

ab cd

※半角スペース

\S 空白文字以外 ab\Scd

abgcd

ab9cd

\d 半角数字(0~9) ab\dcd

ab8cd

ab5cd

\D 半角数字以外 ab\Dcd

abmcd

abcd

[~] ~のいずれかの1文字 ab[cde]fg

abcfg

abdfg

abefg

[^~] ~のいずれの1文字にも一致しない ab[^cde]fg

abafg

abbfg

abffg

ab1fg

こんな感じです。

過去の別の記事でも触れていますのでこちらも参考にしてください。

おまけ

よく使うかどうかは分かりませんが、「あいうえお【◯◯◯】」みたいなデータの「【◯◯◯】」部分だけ消し去る方法を紹介しときます。

サンプル

使う正規表現

【.*】

【】で囲われていて、中はどんな文字が、何文字あっても良いという意味です。

「すべて置換」を押すと。

【】記号を変えたりすれば応用も効きますね(^o^)

まとめ

正規表現を使った検索と置換について紹介しました!正規表現は奥深いので、まずは簡単なものからやってみてください(^o^)