日本語をふりがななしで並べ替えたいデータ今回の記事では、日本語の並べ替えでふりがなを使わない方法について調べます。並べ替え(ソート)したときに、並び順が微妙に揃わなくて困ったことはありませんか。氏名や会社名などを昇順や降順で並べ替えをすると、同じ文字なのに飛びとびになったり、表によって並び位置が食い違っていたりします。漢字のある日本語データ列でおかしなことになるようです。データ内容の抜け漏れをチェックしたいときなど、これでは使い物になりません。日本語の並び順を一定にすることはできないのでしょうか。並び順のルール日本語データで並べ替えをしてみると、だいたい五十音順(あいうえお順)になっているようです。人名など日本語の漢字の読みは一通りではないので、文字だけから順序を判断できないはずです。何を基準に日本語の順序を決めているのでしょうか。セルの値(文字)だけでなく「ふりがな」を参照しています。「ふりがな」なんて意識して使ったことありますか。漢字の上に小さい文字で読み仮名を表示するセルの機能です。ふりがなはデフォルトで非表示になっています。ふりがなを確認するには、日本語のテキストセルを選択した状態で、「ホーム」タブの「ふりがなの表示」(Alt⇒H⇒G⇒S)を選択します。ふりがなには漢字の読み仮名が設定されています。セル値の文字列よりも、このふりがなを優先して、並び順を決めているのです。して漢字の読み仮名を知っているのでしょうか。みなさんがセルに日本語を入力しているときに、密かにそのカナ漢字変換のカナつづりを記録していて、それをふりがなとしてセルに取っておいているのです。苗字のように、たとえ全く同じ字面の名前でも、読み、つまり入力時のカナが異なれば、ふりがなも異なります。ふりがなは後から編集することもできます。それらを並べ替えれば、並び位置も異なるという結果になります。ふりがなはセルのコピー&ペーストをしても一緒に付いていくので、影響は入力セルだけではありません。逆に言うと、手入力でないセルには、ふりがながありません。ファイルやデータベースから取り込んだデータ、あるいはテキストエディタなどからのコピー&ペーストしたテキストデータでは、ふりがなを表示してみても空っぽのままです。そのようなふりがな無しのセルを並べ替えしてみると、文字の並びはきれいに一定の順番に揃っていて、入れ違いなどはありません。セルの文字の「文字コード順」(シフトJIS)でソートされているのでしょう。文字コードとは、文字ごとに割り振られている固有の番号です。ふりがなの弊害セルによってふりがながあったり無かったりすること、あっても固定ではないこと。これが、日本語での並べ替えの順序が揃わない原因です。取り込んだとしましょう。私は名前に誤植を見つけたので、気を利かせてそこだけちょこっと修正しました。その列を昇順で並べ替えするとどうなるでしょうか。あら不思議、修正したセルが必ず先頭に来ます。トランプの手品のようですね。笑い事ではありません。ソートしただけで深刻な問題が発生するかもしれないのです。検索対象として日本語を照合している場合、間違った結果が出力される危険があります。そのとき検索対象のリストは、昇順に並べておく必要があります。関数はふりがななんて知りません。当てにしている並び順は、セルの値、すなわち文字コード順のみです。リストがふりがなでソートされていると、見当違いな検索結果を出力することになります。日本語を検索値として照合するときには、ふりがなを使わずにリストの並べ替え(ソート)をするよう気を使わなければなりません。(近似値検索)を指定するというのが常道でした。今後はそれも必要なくなるかもしれません。(完全一致検索)のときの検索速度が大幅に向上しているからです。Docs完全一致検索(FALSE)でも、内部的にインデックスを作成・使用するようになりました。インデックスとは、高速検索のために下準備される索引のようなもので、データベースシステムや全文検索システム等でも使用されている技術です。データ行数が多ければ多いほど速度の差がひらきます。検証できていませんが、下記記事の検証よると、その効果はてきめんのようです。指定する意味はなくなり、ふりがなで無用なトラブルを生み出すことも避けられます。ふりがなを使わずに並べ替えをするにはExcelをデータ処理・分析のツールとして扱う仕事の人からすれば、入力データにはない、あずかり知らぬ値によってデータ処理結果が左右されてしまうなんて、たまったものではありません。事故にもなりかねない恐ろしい機能です。あってしかるべきなのですが、調べてもどこにも見つかりません。並べ替え時にふりがなを無視させる方法ならないこともありません。「並べ替えオプション」で「ふりがなを使わない」を指定することができます。【手順例】並べ替えにふりがなを使わないデータがあるセルを一つ選択します(後述)「並べ替え」ダイアログを開きますセルの右クリックから「並べ替え」⇒「ユーザ設定の並べ替え...」を選択します「レベルの削除」ボタンを押して並べ替えリストを空にします「オプション...」ボタンを押して「並べ替えオプション」ダイアログを開きます「並べ替えオプション」の「方法」で「ふりがなを使わない」オプションを選択し、「OK」ボタンを押します「並べ替え」ダイアログでも「OK」ボタンを押して閉じます以降、この表で並べ替えを実行すると、ふりがなを無視してセルの値の文字列のみでソートされるようになります。この設定変更の影響範囲がどこまでかを意識しておく必要があるからです。調べた限り、「並べ替えオプション」の設定対象は「シート」、「オートフィルタ」、「テーブル」ごととなります。シート上のだだのセルで上記設定をすると、シート全体の並べ替えで有効になります。シート上のどのセル範囲で並べ替えをしても、ふりがなを使わない状態になります。表の見出し行にオートフィルタ(「データ」⇒「フィルター」)を追加した場合、それは、シートとは別に、独立した並べ替え設定を持ちます。フィルタ化したリスト上で上記設定後、オートフィルタのどの列を並べ替えしても、ふりがなを使わない状態となっています。オートフィルタの付け替えをすると設定はリセットされるので、その都度設定し直す必要があります。設定したのが青いシマシマのテーブル内のセルだったら、そのテーブル内のフィルタのみが対象となります。テーブル内のどの列でもふりがなを使わなくなりますが、他のテーブルや新規追加テーブルまでには反映されないので、テーブル個別の設定が必要です。値のセルではなく、見出しフィルタのプルダウンからも「並べ替えオプション」を開くことができます。分かり難いことに「色で並べ替え」からたどれます。ふりがなを削除するにはいっそうのこと、シート上の全セルからふりがなを削除してしまえばすむ話のような気もします。ふりがなを削除するには、1セルずつ、「ふりがなの編集」でふりがな文字自体を手作業で削除して空にしてやる必要があります。それはやっていられません。外部に取り出して再度取り込むしかありません。ファイルにしてもいいですが、テキストエディタなを介してコピー&ペーストしたほうが早いでしょう。セルデータをいったんテキストエディタにコピーした上で、それをテキストデータとしてシートに貼り付け戻してやります。【手順例】ふりがなのあるセル範囲(あるいはシート全体)をコピー(Ctrl+C)し、テキストエディタ(メモ帳など)に貼り付け(Ctrl+V)します貼り付けしたテキストデータをテキストエディタから再度コピー(Ctrl+C)し、シート上の元のセル範囲に上書きで貼り付け(Ctrl+V)しますふりがなが削除された状態になりますふりがなの表示をすると、ふりがなが空になっています。うかつにセルを編集すると、そこだけふりがなが追加されてしまうので注意しましょう。オプション」にふりがなを無効にする設定がないのは、おそらく、日本語版だけに追加されている非標準の機能だからでしょう。選択」で「英語」を規定の言語に設定します「英語(米国)」を選択し、「規定に設定」ボタンを押します「編集言語の選択」に「英語」がリストアップされていない場合、「他言語の編集言語の追加」で「英語(米国)」を追加します。「OK」ボタンを押しますExcelを再起動します上記設定以降、ふりがなは使えなくなります。編集言語を英語にしても、リボンやダイアログといったUIは日本語のままで、使い勝手は変わりませんが、「ふりがな」は、リボン自体から削除され、表示も編集もできません。言語変更の影響はふりがなだけではないので、慎重に判断したほうがいいでしょう。規定のフォントが「Calibri」という英語向けのフォントになり、日付の書式も変わります。辞書や文章校正など他の日本語サポート機能も無効になります。生活でどこまで割り切れるかは、使ってみないとわかりません。設定は何時でも日本語に戻せます。ふりがなを無視・削除するマクロ本記事内容に関連したマクロをいくつか作成しました。「並べ替えでふりがなを使わない」マクロ「ふりがなの削除_選択セル範囲」マクロ「ふりがなの全削除_選択シート」マクロ並べ替えで「ふりがなを使わない」を設定するマクロ「並べ替えでふりがなを使わない」マクロを実行すると、以降、そのシート上の並べ替えでふりがなが使われなくなります。手作業で設定すれば、シート、オートフィル、テーブル等で個別に設定する必要がああるところですが、本マクロを使うと、シート全体でセル範囲やオートフィルタのほか、シート上にあるすべてのテーブルを一括で「並べ替えオプション」の「ふりがなを使わない」が設定されます。オートフィルタを付け替えたり、テーブルを新規追加したときには、再度本マクロを実行する必要があります。複数シートでの一括処理も可能です。対象シートを複数選択してから実行してください。ふりがなを削除するマクロふりがなを一括削除するマクロを2つ用意しました。「ふりがなの削除_選択セル範囲」マクロは選択されたセル範囲のみでふりがなを削除します。「ふりがなの全削除_選択シート」マクロはシート内の全てのふりがなを削除します。複数シートが選択状態になっていれば、全ての選択シートでふりがな一括削除します。標準モジュールを追加し、上記VBAプログラムをコピー&ペーストします処理対象のシートを開き、マクロを実行します。「ふりがな削除_選択セル範囲」マクロでは、対象セル範囲をあらかじめ選択状態にしておきます。本マクロの実行後は「元に戻す(Undo)」ことができません。削除されたふりがなは失われ、復活させることはできませんので、あらかじめバックアップをとるなど、細心の注意をもって実行してください。並べ替え機能(オートフィルタやテーブルを含む)は、日本語のソートに「ふりがな」を使っています。ふりがなには、日本語入力時の読み仮名が使用されます。ふりがなによる並べ替えは確かに便利な状況もありますが、Excelでデータ処理する場合、本来データにない値によって不測の事態を招く可能性があります。(ちなみに絞り込みや重複判定ではふりがなを参照することはないようです)本記事ではふりがなを使わずに並べ替えをする方法を検討しましたが、その作業自体、明らかに「余計な仕事」です。英語版にするなどの何らかの手立てが必要でしょう。Excelには、ふりがなの使用・不使用を選択できる設定をぜひ提供していただきたいところです。2019相当)で検証しました。データ複数リストから全ての組み合わせデータを作りたい(2/2)データ複数リストから全ての組み合わせデータを作りたい(1/2)データ広告はてなブログをはじめよう!shegoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。