見出し画像

[EXCEL] リスト入力⑨ 都道府県⇒市町村の順で選択する2段階プルダウンリストで常に一番上を表示させる~入力表作成レッスン~


目次>様式/入力表の作成>プルダウンリスト
▶関連記事:プルダウンリスト


【まとめ】
都道府県を選んでから、市町村を選ぶリスト
①都道府県×市町村のタテヨコ表を作り、
②都道府県名を名前として付け、
③市町村はINDIRECT関数を使って都道府県名から呼び出す。

*タテヨコ表の道府県名の下に空欄行を設けておけば、常に市町村の一番上が表示される。

★注意★
・大項目(都道府県名)と小項目(市町村名)の関係が変わらないリストに有効な2段階リスト
・大項目(部署)と小項目(所属職員)の関係が変わるようなリストには不向き


【説明】

先日、以下の記事を書きました。

都道府県×市町村のタテヨコ表を作り、都道府県⇒市町村の順で選ぶことで、市町村を選びやすくする2段階リストです。
しかし、この方法だと、市町村を選ぶとき、かならずしも一番上の市町村が出ません。
これはちょっと不便です。
今回は、上の記事を元に、
1  都道府県×市町村リストの作成
2 都道府県選択⇒該当都道府県内の市町村をリスト表示して選択する2段階リスト(常に一番上の市町村が出る)の作成
について、順を追って説明します。
過去記事と重複するところがありますが、ご了承願います。

1 都道府県×市町村リストの作成

(1)元データ

総務省HPの地方自治体コード
「都道府県コード及び市区町村コード」
(令和6年1月1日更新)
https://www.soumu.go.jp/main_content/000875488.xlsx
*シート名を「市町村リスト」に変更(政令市のシートは削除。今回は非対象)

(2)「タテヨコ表」シートを新規作成

(3)都道府県名一覧リストを作


①「タテヨコ表」リストのA1セルを選択
② =U と入れると、関数候補が出るので、↓ で「UNIQUE」に移動し、Tabキーで選択

③「市町村リスト」のB列(都道府県名の欄)をクリック(「B」の部分)

④ENTER押下
⑤都道府県名一覧が表示される
*UNIQUE関数により、同じ都道府県名の重複は排除されている。また、スピル機能により、A1セルの関数が下のセルにも及んでいる(スピル/溢れる)。

(4)都道府県名を横に並べる
①A列のどこかで、Ctrl+Aで都道府県名一覧を範囲指定して、コピー(Ctrl+C)。

② C1セル(他のセルでもいい)を選択し、Alt ⇒ E ⇒ S ⇒ V(値のみ貼り付け) ⇒ E(行/列を入れ替える) ⇒ OK

③ 都道府県名が横に並ぶ

(5)「北海道」の下に市町村名一覧を並べる

①「北海道」の下のセルに「=Fil」と入れと、関数候補が出てくるので、↓ で FILTER に移動し、Tabキーで選択

②=FILTER( の後で「市町村リスト」のC列(市町村名の列)を選択し(列番号のCをクリック)、「, 」を入れたら、B列(都道府県名の列)を選択(列番号のBをクリック)


③「=FILTER(市町村リスト!C:C,市町村リスト!B:B」の後に「=D1」を入れ(「,」不要)、Enter押下

④ 北海道内の市町村一覧が縦に並ぶ

=FILTER(市町村リスト!C:C,市町村リスト!B:B=D1) の意味:
「市町村リスト」のB列(都道府県名)がD1(北海道)であるものを、C列の市町村から抜き出す。

(6)数式を各都道府県にコピーする

①数式をコピーできるように修正する
=FILTER(市町村リスト!C:C,市町村リスト!B:B=D1)

=FILTER(市町村リスト!$C:$C,市町村リスト!$B:$B=D1)
にする。
*「C:C」「B:B」にカーソルを当てる⇒F4キー押下で「$」が付き、「絶対参照」になる。
これにより、式を横(他の都道府県)にコピーしても、参照にする「市町村リスト」の列は変わらない。ただし、D1 は変わっていいので、そのままの「相対参照」にしておく。

⓶D2セルをコピー(Ctrl+C)し、沖縄県の下まで範囲選択(Ctrl+→)

③ Enter押下で、各都道府県の下に市町村名が並ぶ

④都道府県名の下の2行目が選択された状態になっているので、「Ctrl+1」で「セルの書式設定」を開く。

⑤「表示形式」タブの「分類」欄で「ユーザー定義」を選び、「種類」欄に「#」を入れて「OK」押下

「#」は「0」を非表示にするもの

⑥「都道府県」名の下の「0」が消える

(7)都道府県×市町村リストに名前を付ける

① C2セルの「都道府県」を消す
*「都道府県×市町村」を範囲選択しやすくするため

⓶都道府県×市町村を範囲選択する(「北海道」を選択 ⇒ Ctrl+A)
③ 選択範囲の右下が表示される(何もデータがない部分)

上のグレーの部分が範囲していされている
画面には右下の名にデータがない部分が表示される

④ Alt ⇒ M(数式)(⇒ZN)⇒ C(選択範囲から作成)
*(⇒ZN)はエクセルのバージョンにより入る(以下同じ)

Alt ⇒ M ⇒ C の襦袢押しだと
上の説明は出ない

⑤「選択範囲から作成」ダイアログ(小ウィンドウ)が開く

⑥「上端行」に☑が入っていることを確認する。他のところに☑が入っていたら、外して「OK」押下(特に変化は現れない)。

以上で、「都道府県×市町村リスト」が出来ました。
試しに、Alt ⇒ M(数式)(⇒ZN)⇒ N(名前の管理)を押すと・・・

ずらずらと、都道府県名の下に市町村が並んでいるものに名前(都道府県の名前がリストの名前になっている)が付いているのが分かります。

2 都道府県選択⇒該当都道府県内の市町村をリスト表示して選択する2段階リスト(常に一番上の市町村が出る)


(1)「入力表」シートを作り、「都道府県」「市町村」の入力欄を作る

(2)「都道府県」入力欄にリストを設定する

①B2セルを選択 ⇒ Alt ⇒ A(データ) ⇒ V ⇒ V(データの入力規則)

Alt ⇒ A ⇒ V では上の説明は開かない



②「データの入力規則」ダイアログの
「設定」タブの「入力値の種類」を「リスト」に、
「データ」欄には「タテヨコ表」の都道府県名の部分(北海道のD1から沖縄県のAX1まで)を範囲指定する(「$」が付いて構わない)。

③「OK」押下
④「都道府県」の入力欄の右の▼をクリック(または Alt+↓ )で、都道府県名のリストが出る。
*うまく出なければやり直し

(3)「市町村」入力欄にリストを設定する

①「市町村」の入力欄(C2セル)を選択
② Alt ⇒ A ⇒ V ⇒ V で「セルの入力規則」を開く
③「データの入力規則」ダイアログの「設定」タブの「入力値の種類」を「リスト」に、
「データ」欄には以下を入れる。
=indirect(b3)
*小文字で構わない(確定後、大文字になる)
*「$」が付くのでF4キーを3回押下し「$」を消す(下のセルにコピーできるよう「相対参照」にしておく。「$b3」でも構わない。)
*「=indirect(b3)」は、「B3セルの名前が付いているリストを参照する(呼び出す)」と意味。単なる都道府県名でなく、1(7)で付けた名前のリストを呼び出す、ということ。

④「OK」押下で、下のメッセーが出るので、「はい」を選ぶ

この段階では、都道府県の入力欄が空白なので
上の表示がでる

⑤「都道府県」欄で都道府県を選んだ後、「市町村」欄でセル右の▼(または Alt+↓ )で、該当の都道府県の市町村が出る。
*どの都道府県でも一番上の市町村が表示されていることを確認する。

⑥各都道府県の一番上が表示される理由
「タテヨコ表」シートの都道府県×市町村リストの2行目は全て空欄となっている

A・B列は関係ないが
念のため表示

一方、市町村を選択する欄も空欄となっている。
「セルの入力規則」では、初期値として入っているセルが表示されるようにリストが開く。
この場合は「空欄」が初期値となるので、リストを開くと「空欄」が出ることになる。

従って、どこかの市町村を選んだあと、再度、市町村を選ぼうとすると、その市町村名が出る。

改めて、一番上から選びたければ、市町村欄を削除すると、一番上が表示される。


違う都道府県の市町村を選び直すと・・・
例)埼玉県のさいたま市を選んだ後

千葉県の市町村を選ぼうとすると、千葉県の市町村の一番上が表示される。

⑦ 入力欄を下にコピーする
普通のコピー(Ctrl+C ⇒ Ctrl+V)でも、
Ctrl+D でもいい。

どのセルも同じように選べる。


3 注意:データに変更があった場合


*以下の変更は、まずないが、データ連動の例えとしての説明です。

(1)市町村名が変わる場合(問題なし)

例)「札幌市」が「さっぽろ市」に変わった場合
①市町村リストを変える

②リストも連動して変わる。


(2)市町村の属する都道府県が変わる場合(問題あり)

*実際はほぼないが、職員の所属が変わる場合と同じ想定
例)北海道の函館市が、青森県函館市になる場合
①「北海道」を「青森県」に直す

都道府県のヨミは修正していない

②「青森県」を選んだ後、「市町村」欄を開くと、一番上が出てこない。リストの一番下が出てくる。

③上にスクロールすると・・・
「函館市」が一番上に出てくる

④「タテヨコ表」を見ると・・・
「函館市」が一番上にきて、その下に「0」が表示されている。空欄は市町村の終わった後にあるため、②のように一番下が表示されてしまう。

⑤函館市の下の「0」を「セルの書式設定」(Ctrl+1)で非表示(#)にすると・・・

函館市の下の空欄が初期値として表示される。


このように、市町村が属する都道府県が変わるような場合(職員の所属が変わるような場合)には使いづらい。
対応策はあると思うが、複雑になると思われるので、とりあえず、この方式での2段階リストは、大項目(都道府県名)と小項目(市町村名)の関係が変わらないようなものに使うのが適当と言える。
大項目(部署)と小項目(所属職員)が変わるようなもののは不適当といえる。
*この部分は、私も十分理解できていないので、とりあえずの見解です。


いいなと思ったら応援しよう!