- ベストアンサー
エクセルで漢字がうまく並び替えソートができません。
それぞれ別のシートにあった来場者一覧500名程度を青色と顧客名簿1000名程度赤色を一緒の列にし、会社名の株式会社や(株)などを削除し並び替えをし、青赤並んだところをチェックし顧客がどれだけ来場したか見たいのですが、アルファベットやカタカナはうまく並び替えでき、なぜか顧客名簿の漢字が後ろに溜まって赤色のリストが後ろに続きます。しかし青色と赤色にした。”浦和”から始まる文字など は本来上下に並んで良いはずですが、片方ははるかに上の方もう片方ははるかに下に並びます。シートはすべて文字列で文字のフォントやサイズも合わせていますがなぜうまく並びかわらないのでしょうか?教えてください。もちろん”浦和”以外の漢字も多数うまく並びかわっていません。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
#6お礼について。 大阪市 2091E58DE38E73 大阪市 91E58DE38E73 が現実にあるなら、上のほうは半角スペース(20)が先頭に入っていて下は入っていません。(半角スペースはコードが32番目16×2+0で16進で20に設定されています。) したがって2と9を比べた段階で下の方が後の方にくることが判ります。 上の方の先頭の半角スペースを取り去らないといけません。 上記が本当なら、私の私製関数が役だったわけです。他に納得がいかないのがあれば、それら2つも、#6の関数をかけて、調べて見て下さい。
その他の回答 (6)
- imogasi
- ベストアンサー率27% (4737/17069)
#5です。もしソートキーがセットされている列があるなら(C列と仮にするとして)、その列を対象にして、別の空き列に、=mojihex(C1)と入れて、下方向に+ハンドルを引っ張って見てください。 その前段階として、ツール-マクロ-VBE-挿入-標準モジュールで出てくる画面に下記のコードをコピー貼りつけしておいて下さい Function mojihex(a) s = "" For i = 1 To Len(a) b = Mid(a, i, 1) s = s & Hex(Asc(b)) Next i mojihex = s End Function (例) 大阪市 91E58DE38E73 12大阪市 313291E58DE38E73 大阪市 2091E58DE38E73 の右列ような文字が現れるが(値を16進表示したもの)、半角文字は2文字に、全角文字1字は4文字で表されることを念頭において見ると、「同じ」とか、「近いはず」と思っている2行について、離れてしまう、「違い」が判るかもしれない。
- imogasi
- ベストアンサー率27% (4737/17069)
>青、赤と言うのは文字(フォント)色ですか 並べ替えは、書式(フォントサイズ・色・字体)などを考慮しないはずです。 飽くまで並べ替えの勝ちか負けか(前に来るか後かは)データの値(文字のビット配列の大小)を対象にします。全角・半角は文字コードが違うので、またカタカナ、ひらがなもコードが違いますので、別の場所に並びます。 英字の大文字小文字もコード(ビット配列)が違います。 >シートはすべて文字列で文字のフォントやサイズも合わせていますがなぜうまく・・ 関係ないと思います。 「ひとつのフィールド(列)には同じ書式を使ってないと並べ替えできません。」とおっしゃっていますが、正しいですかね? >漢字がうまく並び替えソートができません。 そもそも漢字順でソートして、人間にとって意味がある並び順に成りません。それは判っておられると思いますので、改まって質問する表現としては不適当です。 通常はフリガナ(エクセルのフリガナでは無く、直接入力のフリガナ)を入力し、それでソートしないと行けません。勿論カタカナ上でも、会社組織名などは省いた方がよくスペースの有無や数もルールを作り規制しないとなりません。全角半角も統一しないとなりません。 アルファベットの全角・大文字。小文字と読みもルールを 設けないと成りません(うとヴなど)。 数字も読みをどうするか、漢字の読みも難しい(ニホンやニッポンなどや読みがバラバラになる惧れは多い)のはご存知のとおり。 またカタカナ半角の場合、濁点の扱いも難しいものです。 考えが両方成り立つので。 ●今までもエクセルのソートの質問(並び順が旨く行かない)が時々ありますが、実例などを上げた質問者は(少)なく、言葉だけの説明で、回答候補者は、データが見えないので、適切な回答を上げ難いですが、実際見れば、単純な理由指摘で終わるはずです。ソートの原理は単一なんですから。 ただエクセルでは、「並べ替えオプション」で、曜日順などの、ひと仕掛けしたものもあるので、その場合も仕掛けをした後は、単純なソートの原理で処理されるはずです。16進表示が出来るエヂタでもあれば、引っ付くはずが、離れてしまう2者を表示すれば一発で判ります。 先頭に近いところでの差が大きくソート後の出現場所を左右します。先頭のスペースなどは特に気をつけましょう。 エクセルのフリガナ機能の利用は便利ではありますが鵜呑みは危険です。 実例をコピーして挙げてください。
- hiro_izushi
- ベストアンサー率40% (72/178)
D-majinさんの回答の補足になると思います。 漢字名のふりがなを表示するには、[書式]→[ふりがな]→[表示/非表示]とし、編集するには、[書式]→[ふりがな]→[編集]としますが、1000件以上のデータとなるとこの操作はとても面倒ですよね。 しかも、このふりがなデータは、コピー&貼付けで、簡単に消えてしまいますから、あまりあてにできません。 そこで、一覧名を表示している列の隣にカナ列を追加し、こちらのデータで並び替えをすることをお薦めします。と言っても、やはり1000件以上のデータを打ち直すのは手間なので、関数を少し使って、少しは楽をしましょう。 1.追加したセル列に =PHONETIC(参照セル) を入力します。これで、現在登録されているふりがなの一覧が完成しました。 2.追加した列を コピー → 形式を選択して貼付け で、値にチェックを入れて、貼り付けます。これで、関数はすべて消え、仮ふりがな列ができました。 3.ふりがなの間違っている箇所を修正し、完成です。
お礼
ありがとうございます。コピーペーストの時に値貼付けにすれば読み方のデータは消えるのですね。ありがとうございました。なんかその方法が一番簡単そうですね。漢字コード順にならんでしまうのかもしれませんが・・(^^)
- goomika
- ベストアンサー率26% (66/251)
Excelでデータベース機能を使う場合、 いくつかの決まりごとがあります。 青色、赤色ってのは、フォントの色ですよねぇ? ひとつのフィールド(列)には同じ書式を 使ってないと並べ替えできません。 フォントやサイズは同じにされてるようですが、 色が違うとだめって事です。
- koma1000nin
- ベストアンサー率30% (342/1133)
アドレス帳の整列が上手く行かないのも同じで、ふりがなを入力すると期待通りに並びません。エクセルの場合も同じ現象と思われます。
そのリストの片方がどこか別のデータベースから貼り付けたものでは? 入力した文字に振り仮名情報が存在するものとしないものとが混在する場合に見られる症状のようです。 [データ]-[並び替え]-[オプション]で[振り仮名を使用しない]にチェックをいれることで文字コード順に並び替えをさせることができるようになると思われます。 が、読み仮名情報がないと50音順には並び替えできないようです。
お礼
ありがとうございます。赤と青と表現したのは背景バックの色で文字は黒色です。これはあまり関係ないのですね。 ちなみに全く同じに見える2つの大阪市の違いはなんですか?やはり読み方なのでしょうか。 大阪市 2091E58DE38E73 大阪市 91E58DE38E73