エクセルのソートで文字列がうまく並ばない

このQ&Aのポイント
  • エクセルのソート機能を使ってデータを整理している際に、同じ名前のデータが別名として扱われてしまうことがあります。
  • 氏名が漢字で表記されているため、おそらくコード順に並ぶと思われますが、実際には50音順に並んでいるようです。
  • この問題を解決するためには、名前の表記を統一するか、データを手動で修正する必要があります。
回答を見る
  • ベストアンサー

エクセルのソートで文字列がうまく並ばない

スポーツの記録集計をしています。 A列に氏名,B列以降に記録,試合名,日時,順位などの個人のデータが入ったワークシートがあります。 試合ごとに記録を入力しているので,元々は試合名,日時順になっており,約90人分のデータが1年間で1700行余りになりました。一人が複数の試合や種目に参加しているので,これを個人別にまとめようとA列の氏名でソートしました。 すると,同じ名前なのに別名と判断されてうまく並ばない箇所がいくつかあります。 氏名は漢字なのでおそらくコード順に並ぶのだと思いますが,ほぼ読みの50音順に並んでいる感じです。ところが,たとえば「山田」さんだったら音読みの「さん」と訓読みの「やま」の2カ所に分かれて出てきたりします。一方のセルを他方のセルにコピーしてやり直せばもちろんうまくいきますが,データ数が多く,手作業はしていられません。またソートした後「山田」さんのデータが一つだけ別のところに飛んでいたりすると気がつかないことも考えられます。 スペースが入っていたりもなく,IF関数で同一のセル内容かどうか判断させると「同じ」という結果になります。どう見ても同じセルがソートで違うものと扱われるということはあるのでしょうか。また,こういうときはどう対処すれば良いのでしょうか。 エクセルに詳しい方,このような経験がおありの方,アドバイスをお待ちしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

データタブ(Excel2003以前を使っている場合はデータメニュー)の「並べ替え」を開始, 現れたダイアログのオプションボタンをクリック, 「フリガナを使わない」にマークして並べ替えます。 #確認の方法 A列に氏名が並んでいます。 たとえばF列に F2: =PHONETIC(A2) と記入して下向けにコピー このときにF列に「漢字のまま」現れたA列の氏名には「フリガナ」のデータが含まれていないため,並べ替えたときに弾かれます。 フリガナが表示された(フリガナデータを持っている)「山田」をコピーし,貼り付けてやることでデータを統一できます。 ○エクセルに手で「山田」と打ち込んだ場合はフリガナデータを持っています ○フリガナを持った「山田」をコピーしたセルにもフリガナがあります ●他の何かからコピーして貼り付けた「山田」にはフリガナがありません ●フリガナを持った「山田」を数式で参照したセル,および数式の結果を値に変換したセルにもフリガナはありません。 #セルの書式でA列セルに「ふりがなを表示」しても確認できます。

masayanco
質問者

お礼

早速回答いただきありがとうございました。漢字に自動的にふりがながついていたとはびっくりです。対処法がわかったのもよかったのですが,エクセルの奥深さにちょっと感動してしまいました。とても勉強になりスッキリしました。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

一部のデータにふりがな情報が無いデータ(他のアプリケーションからコピーしたりインポートしたデータ)が含まれているためです。 五十音順にこだわらないのであれば、並べ替えを行うときに、並べ替えダイアログで「オプション」ボタンをクリックして「ふりがなを使わない」にチェックを入れてください(文字コード順の並び順になります)。 五十音順に並べ替えたいなら、ふりがな情報のないデータは並べ替えで最後にひとまとまりになりますので、この範囲を選択して、Alt+F11でVBEを起動して、Ctrl+Gでイミディエイトウィンドウを表示し、「selection.setphonetic」と入力してEnterしてください。 上記のマクロ操作で付けられたふりがなは必ずしも正しい読みとは限りませんので、右クリックから「ふりなを表示する」(2003以前なら「表示」「ふりがな」)で確認してください。

masayanco
質問者

お礼

早速回答いただきありがとうございました。対処法がよくわかり助かりました。「ふりがなを使わない」にチェックでうまくいきました。以前からこういうことはたまにあり不思議に思っていました。とてもすっきりしました。

関連するQ&A

  • 文字列のソート

    Mysql5を使用しています。 nameというレコードがあったとして、内容が ・year2008 ・year2006 ・year2007 ・year2005 というデータが格納されているときに、 この文字列から判断して年代順にソートすることはできますでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • エクセルで隣同士の列の文字を合わせたい

    こんにちは。 いつもこちらで助けていただいてありがとうございます。 今日の質問は。。題名のとおりなのですが 2列でそれぞれの 列に入った文字を1列の中で合わせたいのです。 たとえばA列の一つのセルに「対象者」と入っていて、B列の隣のセルに 「山田太郎」などと入っている場合で、「対象者山田太郎」と A列のセルの中に一つにまとめたいのですが 関数などで処理できるでしょうか?初歩的な質問ですみません。 データが膨大にあるので何かいい方法があったらと思っています。 よろしくお願いいたします(><)!  

  • sortコマンドの使い方

    一列目はクラス、二列目はテストの点数、三列目は氏名からなるデータ: # data.txt ---------- 1 80 安倍 1 100 小泉 1 90 小沢 2 80 松坂 2 70 松井 2 100 鈴木 ------------- があります。 これを sortコマンドで (1) 1列目昇順 (2) 2列目降順 で並び替えて # data2.txt ---------- 1 100 小泉 1 90 小沢 1 80 安倍 2 100 鈴木 2 80 松坂 2 70 松井 ------------- のように、クラスごとに得点順に並び替えたいと思っています。 sort のオプションは -k が並び替えの基準の列の指定 -r が逆順 -g が数値データ なので cat data | sort -grk2 | sort -k1 としてみましたがうまく行きません。 一つめ「sort -r -k2」でせっかく二列目降順に並び替えているのに、二つめ(右)の sort -k1 でその結果が無くなってしまって 1 100 小泉 1 80 安倍 ← !! 1 90 小沢 ← !! 2 100 鈴木 2 70 松井 ← !! 2 80 松坂 ← !! のようになってしまいます。 どうすればよいでしょうか?

  • エクセル 複数列選択して一列にソートできますか?

    エクセル 複数列選択して一列にソートできますか? sheet1 A1~G10 のセルに文字列(名前)がランダムに入力されているとします。空白もあります。このデータは他ファイルからコピーしたものとします。これをsheet2のA列にソートすることはできますか?

  • excel ソート(容量大?)すると 2分割でソートされるけど解決方法は

    500行25列くらいのデータを、ある列の種別順でソートすると全部の行が一度にソート出来ずに、途中まで行くとそこから再度ソートされます (例)名前あいうえお順でソート 1 青山 2 木村 ー 200 和田 201 青木 202 川村 ー 500 和久 本当は1~500行まで通じてソートしたいのですが、なぜか途中でソートが分割されてしましいます。何か一度にソート出来る容量等の制限が有るのでしょうか。初心者なので出来るだけ簡単に教えてください 宜しくお願いします。

  • vlookup関数と文字列の足し算

    こんにちわ。 別シート(Sheet2)に住所録を作成し、作成シート(Sheet1)にVlookupで住所等をひっぱってこようと思っています。 (住所録は「データ」として名前登録しています) Sheet2 郵便番号 住所   氏名1   氏名2 999-9999 東京都~ 山田太郎 山田花子 その際、別々のセルにある氏名(2名分)を表示させる計算式として =VLOOKUP(B3,データ,3,FALSE)&"様"&" "&VLOOKUP(B3,データ,4,FALSE)&"様" として下記のような結果を出しています。 山田太郎様 山田花子様 このとき、氏名2に名前が入っていないと、 山田太郎様 様 となってしまうのですが、この「氏名2に文字列が入っていないときは”様”を表示しない」ということはできるのでしょうか? どなたかご教示ください。 よろしくお願いします。

  • エクセルのソート(行)について

    エクセルで作成した行単位のデータを、ある列の値 でソートしようとしたら、以下の様なエラー表示が でました。 「この操作には、同じサイズの結合セルが必要す。」 どの行にも同じ列を対象に結合セルがありますが、 このような場合はソートできないのでしょうか? (各行ともセルの書式は同じです。) エクセルのバージョンは、EXCEL2000 9.0.3821 SR-1 です。 ご存知でしたら教えて下さい。

  • フォルダー名の順序について

    フォルダーに漢字の名前を付けて保存しますが、名前の順番が「音読み」の順に表示されます。 しかし「音読み」では直観的に分かりにくく、「訓読み」の順に並べたいのですが、その方法が分かりません。 フォルダー名の「並べ替え」という項目を見ても、 I-P とか漢字となっていて、この漢字が「音読み」しかありません。  「訓読み」の順に表示させる方法はあるのでしょうか? 例えば、 秋山(あきやま)-池田(いけだ)-加藤(かとう)-永井(ながい)-羽鳥(はとり)-山田(やまだ) の順に表示したいのですが、 現状では 羽鳥(う)-永井(え)-加藤(か)-山田(さ)-秋山(し)-池田(ち) となってしまします。

  • エクセルで、異なる文字列を抽出するには。

    エクセルで、A1からA10に文字列のデータがあるとします。 10個のセルのデータは「あああ」が4こ「いいい」が3こ「ううう」が2こ「えええ」が1こ順不同であった場合、B1に「あああ」B2に「いいい」B3に「ううう」B4に「えええ」と異なる文字列のみ1個ずつ抽出するにはどうすればいいでしょうか。

  • エクセル2000で数字のソートについて

    以下は、エクセル2000でソートした結果です。 先頭はタイトル行で、各セルの[']は削除済みです。 ------- 図形ID 1410619 → (1) 1410620 → (2) 0010101 → (3) 0010102 → (4) 1550719 → (5) 1550720 → (6) ------- 期待した結果(右の番号で言えば3,4,1,2,5,6の順)とは異なります。 (1)と(2)のセルで、[F2]KEYを押してセル内で編集可能にしてから 何もせずに[Enter]を押し、再度ソートすると何故か期待通りの結果が 得られます。 数百行ある場合、いちいちセルごとに「[F2]を押して何もせずに[Enter]」 などやってられませんので、他に何かいい方法はないでしょうか? ※表示形式=文字列 です。先頭の"0"は必要です。

専門家に質問してみよう