« 06・05・27 サシボは軽井沢の山菜の穴か? | トップページ | 06・06・14 さすがの岩城宏之さんも力尽きたか… »

2006.06.11

06・06・11 中国標準Excelのフリガナ機能に翻弄される

高校の同窓会の出席者名簿を作成していてExcelの奇妙な振る舞いに悩まされた。

名簿を卒業年の年号・年・クラスでソートするのだが、どういうわけか部分的に順序が狂う。

名簿は葉書などの回答をExcelに手入力した物と、ホームページで受け付けた結果のCSV形式の物とを1枚のシートに結合させてからソートにかけているのだが、例えば、昭和41年が昭和30年より前に来たりするのである。

サンプルを示すと、こんな現象である。

Excelsorta

そんな馬鹿な!と思うのだが、何度やっても同じ結果になる。何度でも同じ結果を出すことこそがプログラムの便利な特長なのだが、こういう時はそれが恨めしい。何とかしろよとゴネれば治るかも…とは思わないが。

考えてみると、以前にもこういう現象に遭遇したことがある。その時は深く追求せずに放置したのだが、今回ばかりはなんとしてでも原因を究明して解決しなければならない。

なぜかというと、同窓会の参加受付はこれからが本番で、500件前後のデータを処理しなければならず、このいい加減なソートのままでは混乱は必至だから。

結論を説明すると、原因は文字列の「ふりがな」機能だった。下の図をご覧いただきたい。書式の指定でフリガナの有無を表示させることができる。Excelシートに手入力したデータには自動的にフリガナが付くが、外部から取り込むCSV形式のデータにはフリガナがない。

Excelsortb

さて、どうしてソート結果が狂うかと言えば、それは、データの並べ替え機能のオプションが標準では「フリガナを使う」となっているからなのだ。フリガナが付いているデータを優先し、付いていない物は後にしている。

ここまで実態が解明されれば、そもそものソート結果は当たり前の現象だと理解できる。問題は、ソートの対象とされているフリガナが、セルの書式設定では標準表示にはなっていないことだ。

むしろフリガナ機能は隠されているように見える。だから、うかつと言われようとも、私などは10年以上もExcelを使って来て、フリガナ機能を明確に意識したことが一度も無かった。

ちなみに、私はソート機能をExcel VBAから使っていたのだが、フリガナを使うか否かのオプション設定の値を示す名称にはちょっとショックを受けた。

SortMethod:=xlPinYin (ピンイン)とあるではないか。これは中国語を標準として設計されているってことじゃないか。これじゃあ日本語の立場で文句を言っても通じないだろうな…と僻んでしまう。なお、フリガナを外してソートする場合は SortMethod:=xlStroke (画数かな)と指定する。

|

« 06・05・27 サシボは軽井沢の山菜の穴か? | トップページ | 06・06・14 さすがの岩城宏之さんも力尽きたか… »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/4033/10485617

この記事へのトラックバック一覧です: 06・06・11 中国標準Excelのフリガナ機能に翻弄される:

« 06・05・27 サシボは軽井沢の山菜の穴か? | トップページ | 06・06・14 さすがの岩城宏之さんも力尽きたか… »