アカサタナのインデックス(索引)を作る 【Excel活用術】

解説記事内の画像はExcel 2010のものですが、操作方法は下記のバージョンで同じです。
  • Excel 2010, 2007, 2003

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像26 名簿などに「ア」「カ」「サ」「タ」「ナ」のインデックス(索引)を作りたい!

左のような名簿の場合、D列のフリガナの先頭文字を基準にアカサタナと振り分けたいわけですが、「ア」の他に「イ」でも「ウ」でもア行として認識させなければいけない・・・。
この処理をどうすべきか結構悩みました。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像03 試行錯誤した末に「ア」から「ン」までの、カタカナの50音の文字コードを、めっちゃ地味〜に(笑)、CODE関数を使って調べてみたんです。

そうすると、ア行の文字は、文字コード「9506」〜「9514」、カ行は「9515」〜ということが分かり、

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像02 文字コードでこんな風に分類できることが分かりました。
ちなみに、どうでもいいかもしれませんが、文字コード「9571」は、「ヤ」ではなく「ャ」、そうです小さい「ャ」なんです。
大きい「ヤ」の文字コードは「9572」なんですが、小さい「ャ」もヤ行ということで、「9571」からヤ行ということにしてみました。
文字コード「9582」も同様です。

そして、上の図のように、この文字コードの分類表を、「コード」というシートに作り、後々の作業が楽になるように、文字コードの分類表 A1番地からB10番地までに「文字コード表」という名前を設定しました。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像01 実際に索引を作りたい名簿自体は、今回の例では「名簿」シートにあります。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像04 この名簿シートに、索引を表示する列を作り、更に索引を作るために1段階作業しなければならないのですが、その作業を行う列も作っておきます。

早速、索引を作っていきます!
今回はフリガナを元に索引を作っていくわけですが、フリガナは全角のカタカナであることを前提として進めていきます。

また、Excel 2010・2007をお使いの方で、索引を作りたい名簿が、既にテーブルに変換されている方は、作業を始める前に、このページの一番最後の項目を読んでからスタートしてください。

「索引の作業用」列の考え方

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像27 まずはB2番地には、D2番地に表示されているフリガナの、先頭文字の文字コードが、

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像02 アカサタナ・・・のどの行に当てはまるのか、「文字コード表」から探し出し、表示させます。

そうです、対応するものを一覧表から探し出すわけですから、VLOOKUP関数を使います!

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像27 実際の操作の前に、B2番地に入れる数式がどんな風になるのか、VLOOKUP関数の引数に照らし合わせながら考えてみます。
D2番地の先頭文字の文字コードを
(検索値)

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像02 「文字コード表」から探し出し、
(範囲)

対応したものの左から2列目のデータを
(列番号)
答えとして表示してね、となります。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像27 ところがここで、引数[検索値]に注目します。
D2番地の先頭文字の文字コードを

もうお気づきですね?
引数[検索値]は、
「D2番地」ではなく、
「D2番地の先頭文字の文字コード」なんです!

この名簿の中には、D列に表示されているフリガナの、文字コードを表示させている欄はありません。
というわけで、D2番地に表示されているフリガナの、先頭文字の文字コードを調べつつ、VLOOKUP関数を使います!

さっそく「索引の作業用」列を操作!

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像05 考え方が整理できたので、さっそく操作していきます!

B2番地を選択し、VLOOKUP関数を選びます。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像06 引数[検索値]は、「D2番地の先頭文字の文字コードを」です。
ここでD2番地の先頭文字の文字コードを調べなければなりません。
それはCODE関数を使ってできるので、[検索値]の欄にCODE関数を入れていきます。
[検索値]にカーソルがある状態で、

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像07 数式バーの左にある[▼]をクリックし、一覧からCODE関数をクリックで選択します。
一覧に無い場合は、[その他の関数]をクリックし、表示されたダイアログボックスでCODE関数を選択します。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像08 ダイアログボックスがCODE関数のものに変わりました!
先頭文字の文字コードを知りたいのは、D2番地なわけですから、引数[文字列]には「D2」を指定します。

ここで注意です!
この時点でダイアログボックスの[OK]ボタンを押してはいけません

なぜなら、VLOOKUP関数の引数の設定が、すべて終わっていないからなんです! というわけで、今はCODE関数のダイアログボックスになっていますが、これをVLOOKUP関数のダイアログボックスに戻します。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像09 数式バーで「VLOOKUP」の文字のところでクリックすると、ダイアログボックスがVLOOKUP関数のものに戻りました!
引数[検索値]には、先程までの操作で、「D2番地の先頭文字の文字コードを」という指定ができているのがわかります。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像10 残りのVLOOKUP関数の引数を設定していきます。
引数[範囲]は「「文字コード表」から探し出し、」です。
[範囲]の欄にカーソルを移し、[F3]キーをポンッと押すと、

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像11 この文書内に設定されている名前の一覧が表示されるので、(って、今回の例では1つしか名前を設定してないですが)、「文字コード表」を選択し、[OK]ボタンをクリックすると、

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像12 引数[範囲]を簡単に設定できました。

続いて、引数[列番号]の欄にカーソルを移します。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像02 今回は、D2番地の先頭文字の文字コードを、この「文字コード表」から探し出し、それに対応する索引(ア、カ、サ、タ、ナ・・・)、つまり、この「文字コード表」の2列目の文字を表示させたいわけですから、

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像13 引数[列番号]は、「2」となります。

引数[検索方法]は、「1」となるのですが、
【Excel 2003】
引数[検索方法]は、[検索の型]となります。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像14

これは、対応するものを「文字コード表」から探し出す際に、キッカリ検索するのか、あいまい検索するのかを指定する引数です。
今回はあいまい検索をしたいので「1」としたわけですが、「どうして?」という方は、本家Be Cool Usersの下記のページで違いを解説しています!

これで、VLOOKUP関数の、

[検索値] D2番地の先頭文字の文字コードを
[範囲] 「文字コード表」から探し出し、
[列番号] その表の2列目のデータを答として表示してね
[検索方法] 探し出す方法は、あいまい検索ですよ

というすべての指定が終わったので、今度こそ(笑)ダイアログボックスの[OK]ボタンを押します。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像15 B2番地に数式を入力することができました!

あとは、オートフィルで、残りのセルにも数式を入れれば、

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像16 「索引の作業用」列の操作は完了です!

「索引」列の考え方

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像22 先程までの作業で、B列には、フリガナの先頭文字がア・カ・サ・タ・ナ・・・のどの行に当てはまるのかを振り分けて表示させました。
でも、実際には、B列のように、全部のセルにア・カ・サ・タ・ナ・・・が表示されているとかえって見づらいので、左の図のように、ア行・カ行・サ行・・・それぞれの先頭にだけ索引が表示されるようにします。

この「索引」列に関しては、数式を入力する先頭である、A2番地で考えるより、もっと下のセルで考えた方が分かりやすいので、そうしてみます。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像17 ここで、5行目の阿部寛子さんの索引(A5番地)がどうなるか考えてみましょう。
阿部寛子さんの索引の作業用に表示されているデータ(B5番地)と、その一つ上のセル(B4番地)に表示されているデータが同じだった場合、上の図の完成例のように、「索引」には何も表示させたくありません。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像18 今度は10行目の筧利代さんの索引(A10番地)で考えてみます。
筧利代さんの索引の作業用に表示されているデータ(B10番地)と、その一つ上のセル(B9番地)に表示されているデータが違う場合、ア行からカ行に変わったところなので、B10番地のデータをそのまま「索引」として表示させたいわけです。

ここまでをまとめると、

もし、「索引の作業用」に表示されているものが、その一つ上のセルと同じだったら、
空欄
そうじゃなければ、「索引の作業用」に表示されているものをそのまま表示

となります。
もうお分かりですね?IF関数を使います!

IF関数の引数にあてはめると、こうなります。

[論理値] もし、「索引の作業用」に表示されているものが、
その一つ上のセルと同じだったら、
[真の場合] 空欄
[偽の場合] そうじゃなければ、「索引の作業用」に表示されているものをそのまま表示

さっそく「索引」列を操作!

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像19 では早速、操作を開始します。
数式を入れたい「索引」列の先頭、A2番地を選択し、IF関数を選びます。

[論理値] もし、「索引の作業用」に表示されているもの(B2番地)が、
その一つ上のセル(B1番地)と同じだったら、
[真の場合] 空欄
[偽の場合] そうじゃなければ、
「索引の作業用」に表示されているもの(B2番地)をそのまま表示

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像20 A2番地に入力するIF関数の引数は、上の表にまとめた通りなので、引数の設定は左の図のようになりますネ。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像21 数式を入力することができました!
あとは、オートフィルで、残りのセルにも数式を入れれば、

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像22 「索引」の完成です!

B列は、この「索引」を作るための作業用の列なので、非表示にするといいと思います。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像23 A列の「索引」は数式でできているので、後々並べ替えを行ってもちゃんと機能します。
左の図は「フリガナ」で降順で並べ替えをしてみた状態です。

「索引」を作りたい名簿がテーブルに変換されている場合

Excel 2010・2007をお使いの方で、索引を作りたい名簿がテーブルに変換されている場合は、ちょっとだけコツが必要です。
まず、「索引」のための列を挿入すると、挿入した列がテーブルとして認識されていなかったりします。
その場合は、[テーブルのサイズ変更]を行って、挿入した列もテーブルとして認識されるようにします。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像24 それから、数式を設定している際に、セル番地を指定しようとセルをクリックで選択すると、左の図のようにセル番地ではなく、クリックしたセルの項目名のようなものが表示されます。

これは、「構造化参照」という、テーブルの便利な機能の一つです。
構造化参照についての説明は、先に進みたいので(笑)ここでは省きます。

アカサタナのインデックス(索引)を作る 【Excel活用術】の操作画像25 今回の場合は、セル番地で指定した方が分かりやすいので、数式中にセル番地を指定したい時には、セルをクリックで選択する方法をとらず、キーボードで「D2」という風にセル番地を入力します。

また、テーブルに変換されている表では、先頭のセルに数式を入れると、オートフィルをしなくてもその下のセル全てに自動的に数式が入りますので、楽ちんです。
これは便利な機能なので、ビックリしなくて大丈夫ですヨ。

スポンサーリンク