メインコンテンツへスキップ
見出し画像

[EXCEL] リスト入力 番外 都道府県×市町村のタテヨコ表を作る ~入力表作成レッスン~

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

    【まとめ】
    都道府県×市町村のタテヨコ表の作り方
    1 都道府県名を横に並べる
    2 FILTERで市町村を括り出す
    以上

    【説明】
    前回記事で、2段階リスト(正攻法)の作成方法について記事にしました。
    その前段で、都道府県×市町村のタテヨコ表を作りました。
    元データは、総務省の市町村コード一覧。
    地方行政のデジタル化|全国地方公共団体コード - 総務省

    こちらもどうぞ。
    [EXCEL] 総務省の「全国地方公共団体コード」を見て唖然! トンデモ表だった?(と思うのは私だけ?)

    画像


    都道府県×市町村にしたものがこちら。

    画像

    1行目に都道府県名がヨコに並び、その下に市町村名がタテに並びます。

    こういった表がないと、2段階プルダウンリストができない、というのが多くの記事の説明です。なので私も作ってみました。
    その際、「都道府県別に市町村名をコピペするのは面倒なので、別の方法でやったら5分で出来た」ということを書いたので、念のため、その方法を記載しておきます。


    前提は、
    「各市町村と同じ行(後ろでも前でも離れていても)に該当の都道府県名が記載されている」です。これは当たりまえの条件ですね。

    以下が手順。

    都道府県×市町村のタテヨコ表の作り方

    1 新しいシートを作る。

    シート名は自由(今回は「タテヨコ表」)

    2 「タテヨコ表」シートのA1セルを選択

    実際はどのセルでもいい

    3 UNIQUE関数を入れる

    =UNIと入れると、関数候補が出るので、Tabキーで =UNIQUE を選ぶ

    画像

    4 都道府県・市町村一覧のシートに移って、都道府県名の列を選択

    画像
    B列を選択しています

    5 ENTER押下

    以下のとおりとなる

    画像

    UNIQUE関数は、重複を排除する関数です。
    ユニークとは「独自」「独特」「唯一」と言う意味。「面白い」とはそこからの派生的な意味です。前にも書きましたが、ユニクロも「ユニーク・クロージング」からきています。
    UNIQUE関数は、カッコ内の範囲に同じものがいくつあっても、一つだけ取り出します。
    B列に同じ都道府県名はたくさんありますが、都道府県名をそれぞれ一つだけ取り出すのです。
    従って、47都道府県が並ぶことになります。

    UNIQUE関数は、スピル(溢れる)という機能により、数式を入れたセルは1つにもかかわらず、結果がその下に「溢れて」いきます。

    6「0」を消す・・・この工程、不要でした

    UNIQUE関数で表示された最後の都道府県名は「沖縄県」ですが、その下に「0」が出ています。

    画像

    これは、都道府県の列を選択した際に、空欄も含む列全体を選択したためです。空欄は「0」扱いされています。
    このまままでも構いませんが、ちょっと邪魔なので、この「0」は非表示にしておきます。
    ① A列全体を範囲指定
    ⓶ Ctrl+1で「セルの書式設定」を選択
    ③ 「表示形式」の「分類」で「ユーザー定義」を選び、「種類」欄に「#」を入れる。

    画像
    画像

    ④ 「OK」押下

    これで、「0」が消えます。・・・消しても問題はありませんが、消しても意味はありませんでした。

    画像


    7 道府件名一覧を横一列に張り付ける

    ① 都道府県名のどこかのセルを選択(A1セルが一番わかりやすい)
    ⓶ Ctrl+A で都道府県名一覧の全体を範囲指定
    ③ Ctrl+C で都道府県名一覧をコピー
    ④ C1セルを選択(B1でもD1でも構わない)
    ⑤ Alt ⇒ E ⇒ S ⇒ V ⇒ E 
    「形式を選択して貼り付け」が出たら、「V」を押して「値」に☑が入ったら、「E」を押して右下の「行/列の入れ替え」に☑を入れる。

    画像

    ④ OK押下で以下の通りになる
    *下のようにならなかったら、Ctrl+Z で取り消してやり直す。

    画像

    9 A~D列は削除しておく

    残っていても問題はない


    10 北海道の下にFILTER関数を入れる

    ① A2セル(北海道の下のセル)に=Fiと入れる。
    ⓶ 関数候補が出るので、Tabキーで FILTER を選択
    ③ 都道府県・市町村名のシートで、市町村名の列(C列)を選択
    ④ 「 , 」を入れる

    画像


    ⑤ 都道府県名の列(B列)を選択

    画像

    ⑥「タテヨコ表」シートに戻り = を入れる
    ⑦ 「北海道」(A1セル)を選択
    これで、以下の数式になる
    =FILTER(R6.1.1現在の団体!C:C,R6.1.1現在の団体!B:B=タテヨコ表!A1
    *最後にトジカッコはなくていい(勝手に入る)。

    ⑧ Enter押下
    ⑨ 北海道の市町村名が表示される

    画像


    =FILTER(R6.1.1現在の団体!C:C,R6.1.1現在の団体!B:B=タテヨコ表!A1)
    これは、FILTER関数で、B列がA1セルと同じものをC列から取り出す、という数式。
    以前ならデータがあるシートで「フィルター」を掛けていたことが、数式出来るようになったもの。
    ただし、最近のエクセル(2021以降?)でないとできないので注意。
    便利だけど「もやもや」っというか微妙なところもある。それについてはいずれ。


    11 A2セルの数式をコピー用に修正する

    ① A2セルを選択
    ⓶ F2押下(編集モードになる)
    ③ 数式を修正する(該当の部分にカーソルを当てたらF4押下)

    元
    =FILTER(R6.1.1現在の団体!C:C,R6.1.1現在の団体!B:B=タテヨコ表!A1)
    修正後
    =FILTER(R6.1.1現在の団体!$C:$C,R6.1.1現在の団体!$B:$B=タテヨコ表!A1) 

    R6.1.1現在の団体!シート(都道府県・市町村名リスト)のC列には市町村名が、B列には都道府県名が入っている。これらは固定しておくことで、他のセルにコピーしても変わらない(絶対参照)。
    「タテヨコ表」シートのA1は都道府県名が入っており、これはコピーした際に変わるようにしておく(相対参照)のでそのまま。
    *10の数式を作る段階で、「$」を入れてもいい。

    12 他の都道府県にも計算式を反映させる

    ① A2セルをコピー(Ctrl+C)
    ⓶ B2からAD2(沖縄県)まで範囲指定。
    ③ 貼り付け(Ctlr+V)
    ④ 都道府県ごとの市町村名が並ぶ

    画像

    13 数式を取る

    ① 表全体を範囲指定(Ctrl+A)
    ⓶ コピー(Ctrl+C)
    ③ そのまま、Alt ⇒ E ⇒ S ⇒ V ⇒ OKで「値のみ貼り付け」
    ④ 2行目を削除

    14 出来上がり

    画像

    15 沖縄県の右の「0」も消しておく

    あってもかまわないけど

    画像


    というわけで、説明を書きながらだったので、1時間程度かかりましたが、操作だけなら、5分も掛かりません。

    おまけ:都道府県別の市町村数

    上の表の2行目は削除してしまいましたが、そこに市町村数を入れてもいいかもしれません。
    =COUNTA(A3:A300)
    で市町村数が出ます。
    (範囲指定の最初は3行目から。終わりは念のため300まで入れたが、ここはデータの数によって異なる。想定の最大値より少し大きい数とする)。

    画像

    市町村数が一番多いのは北海道で185、少ないのは富山の15。
    かなりの差です。
    市町村に出す補助金など、小さな市町村は少額かもしれませんが、額の多寡を問わず手続きは同じですから、市町村数の多い都道府県の事務は大変、といえます。
    北海道には「支庁」があるように、市町村数が多い都道府県は「支庁」や「現地地事務所」が対応しているのかもしれませんが、富山県だと、そういう「支庁」よりも対応すべき市町村数が少ないかもしれません。
    となると、職員数も違ってくるのかどうか?
    これはまた別途考察してみたいと思います。


    あなたへのおすすめ