[EXCEL] リスト入力⑪ 都道府県⇒市町村選択の2段階リスト別解(タテヨコ表不要版・1セルのみ有効)~入力表作成レッスン~
▶目次>様式/入力表の作成>プルダウンリスト
▶関連記事:プルダウンリスト
【まとめ】
・都道府県名選択⇒市町村名選択の2段階プルダウンリストの別解

本来は別シートにすべきものですが
分かりやすいようい同一シートにしています
・都道府県×市町村のタテヨコ表も「名前の定義」もINDIRECT関数も不要
・ただし1セルのみ限定(複数セルへの適用方法はあるが、今回はパス)。
【説明】
先日(1か月も前ですね・・・)、こんな記事を書きました。
都道府県×市町村の縦横リストを作って、都道府県選択⇒市町村選択、という2段階のプルダウンを作る、というものです(市町村名は常に一番上が表示される)。
今回の方法は、「都道府県×市町村の縦横リスト」の作成が不要で、都道府県選択⇒市町村選択、と同じことが出来るプルダウンリストです。
ただし、とりあえず「1つのセル限定」です。
このままでは、市町村の入力欄が縦に並んでいる表には向きません(やり方はありますが、今回はパス)。
データは、いつも通り、総務省の市町村コード表を使います。
地方行政のデジタル化|全国地方公共団体コード - 総務省
「都道府県コード及び市区町村コード」
(令和6年1月1日更新)Excelファイル
シート名を「市町村シート」にし、「都道府県名(漢字)」「市町村名(漢字)」の「(漢字)」は消しておきます(政令指定都市のシートは削除)。

1 元データの2行目に空欄を設けておく
(この空白を、プルダウンリストの「初期値」とするため)

2 プルダウンリスト用のデータを作る
①「入力表」を作成
*本来は「リスト」というシートを作り、そこで作業した方がいいのですが、今回は説明用に「リスト」と「入力表」を同じシートに作成します。
*エクセルのバージョンによっては、プルダウンリストが自動で重複を排除するため、この作業は不要になります(設定しても問題はない)。
① A1セルに「=UNIQUE(市町村リスト!B:B)」と入れる。
*セルに =UNI と入力⇒関数候補から「↓」で「UNIQUE」を選んでTabで確定⇒市町村リストのB欄を選択)⇒ENTER

⓶ A列を「セルの書式設定」(Ctrl+1)で「0」を非表示にしておく。

⇒ 0が消える

③ E,Fセルに、入力欄を作る。
*本来は別シートに作る。

④ B1セルに「市町村」と入れる。
⑤ B2セルに以下を入れる。
=FILTER(市町村リスト!C:C,市町村リスト!B:B=入力表!E2)
*セルに=FIL と入力 ⇒ 関数候補から ↓ で「FILTER」選択⇒Tabで確定 ⇒ 市町村リストのC列選択 ⇒ 「 , 」入力 ⇒ 市町村リストのB列(都道府県の列)を選択⇒「=」入力⇒ 入力表のE2(都道府県名を入れるセル)を選択 ⇒ ENTER

3 E2の都道府県欄にプルダウンリストを設定する。
① E2を選択して、「データの入力形式」を開く(Alt⇒A⇒V⇒V)
⓶「入力値の種類」で「リスト」を、「元の値」でA列を選ぶ。

③ E2セル右の▼をクリック(又は Alt+↓)すると、都道府県名が出る。

④ 都道府県を選ぶと、B列に該当の市町村が表示される

4 F2(市町村名を入れる欄)に以下を設定する。
①「セルの入力規則」(Alt⇒A⇒V⇒V)で以下を入力(選択)する。
・入力値の種類:リスト
・元の値: =$B:$B


⓶ F2セル右の▼(または Alt+↓)クリックで、該当の都道府県の市町村が表示される

以上
これで、都道府県×市町村のタテヨコ表がなくても、都道府県選択⇒市町村選択が可能となります。
ただし、これができるのは1つのセルのみです。
市町村入力欄が縦に並んでいくような入力様式には不向きです。
OFFSET関数等を使って適用させる方法もあるようですが、私の苦手分野です。そのやり方もいずれ載せるかもしれませんが、別のやり方もあります。そちらは後日。
とりあえず「1セル限定」としておきますが、検索等では使えるかと思います。例えば・・・
例1)XLOOKUP関数で読み方を出す

*市町村名(漢字)だけだと、同一のものがあるので選べない。

例2)全て取り出す
市町村名だけでFILTER関数を使うと、同じ漢字の市町村名が括りだされてしまう。
=FILTER(市町村リスト!A:E,市町村リスト!C:C=入力表!F2)

右下の表のように
他県の同一漢字表記の市町村名も括り出してしまいます
そのため、都道府県+市町村名とする必要がある。
=FILTER(市町村リスト!A:E,市町村リスト!B:B&市町村リスト!C:C=入力表!E2&入力表!F2)

FILTER関数に入れると
その市町村だけが括り出せます
(同一都道府県内に同一市町村名はないため)
というわけで、とりあえず1セル限定でどこまで使える場面があるかは分かりませんが、ご参考までに。
