Googleスプレッドシートで都道府県を含む行を一瞬で抽出・削除する方法
住所録やキーワードリストの整理で「都道府県名が含まれる行だけを残したい」「逆に都道府県名が入っている行を削除したい」という場面は意外と多いものです。手作業で1行ずつ確認していると時間がかかりますが、正規表現を使ったカスタム数式を活用すれば、数千行のデータでも数秒で処理できます。
この記事では、REGEXMATCH関数とREGEXEXTRACT関数を使った3つの方法を、実際の手順画面とともに解説します。
方法1:カスタム数式フィルタで都道府県を含む行を抽出・削除する
まずは、フィルタ機能とREGEXMATCH関数を組み合わせて、都道府県名を含む行だけを表示(または非表示に)する方法です。

手順1:フィルタを有効にする
対象列(例:A1セル)を選択し、上部メニューの「データ」→「フィルタを作成」をクリックします。または、ツールバーの漏斗アイコン(フィルタボタン)を押してください。

手順2:カスタム数式を入力する
列見出しのフィルタアイコンをクリックし、「条件でフィルタ」→「カスタム数式」を選択します。表示された入力欄に、以下の数式をコピー&ペーストしてください。

都道府県名を含む行を抽出する場合
=REGEXMATCH(A:A,"北海道|青森|岩手|宮城|秋田|山形|福島|茨城|栃木|群馬|埼玉|千葉|東京|神奈川|新潟|富山|石川|福井|山梨|長野|岐阜|静岡|愛知|三重|滋賀|京都|大阪|兵庫|奈良|和歌山|鳥取|島根|岡山|広島|山口|徳島|香川|愛媛|高知|福岡|佐賀|長崎|熊本|大分|宮崎|鹿児島|沖縄")
この数式を入力してOKを押すと、都道府県名を含む行だけが表示されます。「|」(パイプ記号)は「または」を意味し、47都道府県のいずれかにマッチする行を抽出します。
都道府県名を含まない行だけを残す場合(削除準備)
逆に、都道府県名が含まれていない行だけを表示したい場合は、数式の先頭にNOTを付けます。
=NOT(REGEXMATCH(A:A,"北海道|青森|岩手|宮城|秋田|山形|福島|茨城|栃木|群馬|埼玉|千葉|東京|神奈川|新潟|富山|石川|福井|山梨|長野|岐阜|静岡|愛知|三重|滋賀|京都|大阪|兵庫|奈良|和歌山|鳥取|島根|岡山|広島|山口|徳島|香川|愛媛|高知|福岡|佐賀|長崎|熊本|大分|宮崎|鹿児島|沖縄"))
この状態で表示された行を選択して削除すれば、都道府県名を含む行だけが残ります。
方法2:行政区分付きの数式で精度を上げる
「東京」という文字列だけでは、「東京タワー」や「東京駅」といった地名以外もヒットしてしまう場合があります。より正確に抽出したい場合は、「都・道・府・県」を含めた数式を使用してください。
行政区分付き数式(完全版)
=REGEXMATCH(A:A,"北海道|青森県|岩手県|宮城県|秋田県|山形県|福島県|茨城県|栃木県|群馬県|埼玉県|千葉県|東京都|神奈川県|新潟県|富山県|石川県|福井県|山梨県|長野県|岐阜県|静岡県|愛知県|三重県|滋賀県|京都府|大阪府|兵庫県|奈良県|和歌山県|鳥取県|島根県|岡山県|広島県|山口県|徳島県|香川県|愛媛県|高知県|福岡県|佐賀県|長崎県|熊本県|大分県|宮崎県|鹿児島県|沖縄県")
この数式を使えば、「和歌山」と「和歌山県」のような表記揺れがあっても、確実に「和歌山県」だけを抽出できます。用途に応じて使い分けてください。
方法3:REGEXEXTRACT関数で都道府県名だけを別セルに抽出する
フィルタではなく、住所データを「都道府県」と「市区町村以降」に分割したい場合は、REGEXEXTRACT関数が便利です。
都道府県名だけを取り出す
A2セルに「東京都新宿区西新宿2-8-1」のような住所が入っている場合、B2セルに以下の数式を入力すると「東京都」だけが抽出されます。
=REGEXEXTRACT(A2, "^.+?[都道府県]")
仕組み:文頭(^)から、最初に出現する「都・道・府・県」までの文字列を取り出します。神奈川県のように4文字でも、東京都のように3文字でも、自動で正しく判別します。
都道府県より後ろの住所を取り出す
市区町村以降だけを分けたい場合は、以下の数式を使います。
=REGEXEXTRACT(A2, "[都道府県](.+)")
「都・道・府・県」の後ろにある全ての文字列を取得します。例えば「東京都新宿区西新宿2-8-1」なら「新宿区西新宿2-8-1」が返されます。
よくあるトラブルと解決方法
「東京」と「東京都」の両方を抽出したい
略称版の数式(「東京」のみ)を使用すれば、「東京」を含む全てのパターンにマッチします。「東京都」も「東京」という文字列を含んでいるため、両方とも抽出されます。
フィルタを適用したらデータが消えた?
フィルタは行を「非表示」にしているだけで、削除しているわけではありません。フィルタを解除(データメニュー→「フィルタを削除」)すれば、すべてのデータが再表示されます。
エラーが表示される場合
対象セルが空白だと、REGEXEXTRACT関数がエラーを返すことがあります。その場合は、以下のようにIFERRORで囲んでください。
=IFERROR(REGEXEXTRACT(A2, "^.+?[都道府県]"), "")
これでエラーが発生した場合は空白として扱われます。
まとめ
- フィルタで抽出・削除:REGEXMATCH関数とカスタム数式を組み合わせる
- 精度を上げる:行政区分(都・道・府・県)を含めた数式を使用
- 住所を分割:REGEXEXTRACT関数で都道府県名とそれ以降を別セルに抽出
正規表現を使えば、数千行のリストでも数秒で整理が完了します。コピー&ペーストですぐに使えるので、ぜひ試してみてください。


コメント