こんにちは。Excel VBA講師として長年現場で戦ってきた私ですが、受講生から最も多く寄せられる質問の一つに、「並べ替え(ソート)」に関するものがあります。
「先生、名簿を並べ替えると、ふりがな順になってしまって困るんです。同じ文字で始まるもの同士を固めたいのに、Excelが勝手に気を利かせて読み順にしてしまうんです……」
確かに、Excelの標準機能である「並べ替え」は、セルに入力された「ふりがな情報(PHONETIC)」を優先します。しかし、実務の世界では、必ずしも読み順が最適解とは限りません。例えば、型番の先頭文字で分類したい場合や、特定のコード体系で並べたい場合など、「ふりがな」ではなく「文字そのもの」を基準にしたい場面は多々あります。
今回は、Excelの標準機能で苦戦しているあなたのために、ふりがな順に惑わされず、同じ文字ごとにデータを美しく整理するためのプロフェッショナルな手法を解説します。
1. なぜExcelは「ふりがな順」にこだわるのか?
まず、なぜExcelが私たちの意図に反して並べ替えるのかを理解しましょう。Excelのセルには、私たちが目にする「表示文字列」とは別に、「ふりがな情報」という隠れたデータが保持されています。
並べ替えを実行すると、Excelは内部でこの「ふりがな情報」を参照します。例えば、「亜」と「安」という漢字があった場合、ふりがなはどちらも「ア」であるため、Excelは独自のアルゴリズムで順序を決定します。これが、ユーザーから見ると「なぜこの順番なのか?」という混乱を生む原因です。
この挙動を制御するためには、Excelの標準機能に頼るだけでなく、少しの工夫とテクニックが必要です。
2. 手順①:作業列を使って「文字そのもの」を抽出する
最も簡単で、かつ確実な方法は「作業列」を作成することです。Excelの標準機能は、セルに入力されている値そのものを基準に並べ替えるよう指示すれば、ふりがな情報を無視してくれます。
具体的には、以下の手順を踏みます。
1. 並べ替えたいデータの右隣に新しい列を作成します。
2. その列に「=LEFT(A2, 1)」といった関数を入力し、並べ替えの基準にしたい文字(先頭の1文字など)を抽出します。
3. この作業列を基準にして「昇順」または「降順」で並べ替えます。
こうすることで、Excelは「ふりがな」ではなく「作業列に表示された文字」を基準に並べ替えを行います。これが、最も堅実でミスが少ない方法です。
3. 手順②:並べ替えオプションで「ふりがな」を無効化する
実は、Excelの「並べ替え」ダイアログボックスには、あまり知られていない重要な設定があります。
1. 並べ替えたい範囲を選択し、「データ」タブの「並べ替え」をクリックします。
2. ダイアログの右上にある「オプション」ボタンを押してください。
3. 「並べ替えの方向」や「大文字と小文字を区別する」といった項目の中に、「ふりがなを使う」というチェックボックスがあります。
ここを「オフ」にすることで、Excelはふりがな情報を無視し、文字コード(UnicodeやShift-JIS)に基づいて並べ替えを行うようになります。ただし、文字コード順は必ずしも直感的な「あいうえお順」や「ABC順」とは一致しないため、厳密な順序を求める場合は、やはり作業列を使うのがベストです。
4. 手順③:VBAでソートを完全に制御する
さて、ここからは私のようなVBAエンジニアの出番です。もし、毎日同じようなリストを並べ替える必要があるなら、マクロを組んで完全に自動化しましょう。VBAを使えば、ふりがな情報を一時的にクリアしたり、特定の文字順序をカスタマイズしたりすることが可能です。
以下のコードは、選択範囲のふりがな情報を強制的にリセットし、文字通り「文字そのもの」で並べ替えるためのサンプルです。
Sub SortByLiteral()
Dim rng As Range
Set rng = Selection
‘ ふりがな情報をクリアする
rng.Phonetic.Delete
‘ 範囲を文字通りに並べ替える
With ActiveSheet.Sort
.SortFields.Clear
.SortFields.Add Key:=rng.Columns(1), SortOn:=xlSortOnValues, Order:=xlAscending
.SetRange rng
.Header = xlYes
.Apply
End With
End Sub
このコードのポイントは `rng.Phonetic.Delete` です。これを行うことで、セル内部に潜む「ふりがな情報」を削除し、Excelが余計な推測をできない状態にします。その後で並べ替えを実行することで、純粋な文字コード順でのソートが実現します。
5. 現場で役立つ「ユーザー設定リスト」の活用
もし、「同じ文字ごと」といっても、それが「あ、い、う…」のような単純な順序ではなく、「営業部、人事部、総務部」のように、独自の優先順位がある場合はどうすればよいでしょうか?
そんな時は「ユーザー設定リスト」が最強の武器になります。
1. 「ファイル」タブ > 「オプション」 > 「詳細設定」へと進みます。
2. 下の方にある「ユーザー設定リストの編集」をクリックします。
3. 自分で並べ替えたい順序をカンマ区切りで入力します。
このリストを登録しておけば、並べ替えダイアログの「順序」プルダウンから「ユーザー設定リスト」を選択するだけで、どんな複雑な並び順も一瞬で再現できます。これは、ふりがな順に振り回されないための、最もプロフェッショナルな解決策の一つです。
6. まとめ:Excelを「操る」ために必要な視点
Excelを使っていて「なぜかうまくいかない」と感じる時、その多くは「Excelが気を利かせすぎている」ことに起因します。ふりがな機能は、一般的な名簿作成には便利ですが、今回のような「特定の文字でグルーピングしたい」というニーズには、時に邪魔な存在になります。
大切なのは、以下の3ステップです。
1. **問題の切り分け**:ふりがなが原因なのか、文字コード順で良いのかを判断する。
2. **作業列の活用**:関数を使って、並べ替えの「基準」を明確にする。
3. **自動化への挑戦**:VBAで「ふりがな削除」を組み込み、恒久的な解決策を作る。
Excelは単なる表計算ソフトではなく、あなたの意図を正確に反映させるための「道具」です。ふりがなという自動機能に頼り切るのではなく、必要に応じてその機能を殺し、自分の思い通りの順序を定義する。これこそが、Excel中級者から上級者へと脱皮するための重要なマインドセットです。
皆さんの業務が、このテクニックで少しでも効率化されることを願っています。もし、特定のデータ形式でうまく並べ替えられないといった具体的な悩みがあれば、いつでも相談してください。Excelは、正しく設定すれば必ずあなたの期待に応えてくれます。
次回は、「VBAを使った動的なリスト管理」について深掘りしていこうと思います。お楽しみに!
