• ベストアンサー

Excelで ソートすると同じ項目が全く別の位置に並んでしまうのはなぜ?

仕事上Excelでデータ管理をしています。 以前から気になっていたのですが、ある行についてソートを行った際、 たまに同じ値のはずなのに全く違う位置に並んでしまったりすることがあります。 具体的には… ABCABCABCABCABC  ↓昇順でソート AAAAABBBBBCCCCC 期待される結果はこうですが、 AAAABBBBCCCCABC 実際にはこう並んだりします。 一応自分なりの解決策として、ソートする行をコピーし、新しいシートへ 形式を(値)に選択して貼り付けしてからソートすると、期待通りの結果が 得られる事は見つけました。問題は、「なぜそうなるのか」なのです。 もしご存知の方がいらっしゃれば、宜しくお願いします!

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

  • ベストアンサー
  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.7

今晩は、帰りの電車の中で寝ながら考えました。 このままだと夜眠れそうにないんで(さっき寝たって言ったが~) それはさて置き本題です。結論から言いますとbin-chanさんの意見で正しいです。 では対策です シート2    a      b 1  県名     県番    2 東京都      1 3 神奈川県     2 4 埼玉県      3 シート1    a      b       c 1  県番     県名    県ふりがな名 2        東京都    とうきょうと 3        神奈川県   かながわけん 4        埼玉県    さいたまけん 5        東京都    ひがしきょうと 6        神奈川県   しんなせんけん 7        埼玉県    さいたまけん  注1)c2は計算式PHONETIC(B2) 注2)a2は=VLOOKUP(B2,Sheet2!$A$2:$B$4,2,FALSE) 解説 phonetic関数は、前回答者の通りに振り仮名(入力した通り)を振ります 漢字のエリアのソートは入力した通りにソートするようです vlookup関数はテーブル検索です 第一パラメータは、入力データです 第二パラメータは、テーブルを指定します  例:seet2のa2からb4までをテーブルとしています    $a$2の$はコピーした時に値がずれないようにしています 第三パラメータは、出力データでテーブルの左から何番目のデータを使用するか 第四パラメータは、テーブルの値が順番に並んでいなくても良いという指定です 最後に並び替えを行うときは、AZ↓キーを使わず データ→並び替え→優先されるキーをAに指定して下さい。 こんなもんでどうでしょうか?(^.^) これで眠れる(さっき寝たって言ったが~)オヤスミナサイ

gaillard
質問者

お礼

k_ebaさん、丁寧に考えていただきながら 返事が遅れて申し訳ありません・・・ ううむ、色々関数が出てきて勉強になると思ったのですが 僕の頭が追いつきません… でも何となくですが、書いてある通りで思ったような 並び替えができそうな気がするので、試してみます。 ありがとうございます。

その他の回答 (9)

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.10

まだソート出来ませんか? なにか有ると思いますので 状況の補足をお願いします。

  • himehime
  • ベストアンサー率37% (133/354)
回答No.9

No.8の方に補足です。 Excelは、Excelで「入力したもの」の 読み情報で、ソートします。 ですので、たとえば、Wordから、 コピー&貼り付けした場合などにも、 ただしい読み情報が入っていないので、 ソートすると、希望どおりにならない場合があります。 (WordからExcelに適当なデータをコピーして、 フリガナ表示すると、ふりがな入ってないのが、わかりますよ。 また、Excelのバージョンが違って、 貼り付けた場合も、フリガナ情報は、コピーされていません。) たとえば、人様のお名前で難しい名前を、 別の読みで入力することもよくあるとおもいますが、 そのExcelで、入力した読みでソートされます。 例:「洋子」ってお名前を、ヨウコと、ヒロコで入力して 「洋子」に両方、漢字変換して、 ソートしてみてください。 同じ漢字であっても、 昇順であれば、ヒロコさんが、 降順であれば、ヨウコさんが先にくるはずです。 Excelの読み情報での、ソートの意味がわかるはずです。 なので、漢字が入っている列を、直接ソートするのではなく、 Phonetic関数で、ふりがな表示させてから、ソートするのが、 一番いいとおもわれます。 列の非表示などはできますので。

  • masakaji
  • ベストアンサー率33% (38/113)
回答No.8

フリガナのデータは必ずついているとは限らない。 これが、正解です。 というのは、Excelでデータを作成したタイミングや、データのコピーの仕方によっては、フリガナを持ったまま貼り付けることができないケースがあるのです。 簡単な具体例をあげると、 1.セルA1に「ほっかいどう」と打って「北海道」と入力します。 2.セルA1をコピーしてセルB1にデータを貼り付ける際に、右クリックして、形式を選択して貼り付けを選び、ダイアログボックスが開いたときに、「貼り付け」のなかの「値」にチェックマークをいれて「OK」ボタンを押します。 3.セルA1とセルB1を選択して、「書式」メニューから「ふりがな」→「表示・非表示」を選択します。 結果としてセルA1はふりがながついていますがB1はふりがながついてません。 ふりがながある場合は、ふりがなを基準にソートしますが、ふりがながない場合は、文字フォントのコード順に並びます。 通常の並び替えのときもふりがなを無視してコード順に並べるオプションがちゃんとついていて、「データ」→「並び替え」→「オプション」のなかに、ふりがなを使うか使わないかが選択できます。 データを並び替える際は、そういったExcelの癖を踏まえた上で、ふりがなをすべてにちゃんと振ってあるか、または、ふりがなをすべて取っているか、を確認した上でソートしなければなりません。 用途に応じて、ふりかなの管理もしなければならないのですよ。面倒くさいですが、ちゃんとしていれば、それなりに便利に使えます。 ふりがなの編集もできるので、こだわるのならお勧めですよ。

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.6

あまり大きい表だと上手く動作しないみたいですね 私は、メールのアドレス帖をcsvに変換しエクセルで開いて 一番左端でソートかけましたが上手く行く時と ほんとにソートした??と思える動作をしました やはりエクセルだと限界かなと思いました そこで対策  1)このまま我慢して使用する  2)アクセスでソートする   エクセルはそのまま   アクセスを作成、空のデータベース   ファイル→外部データの取り込み→テーブルのリンク   ファイルの種類をエクセル   アクセスでデータが使えます どちらにしても、逃げだ~(ーー;)あせあせ がんばって下さい。時間が来ました。土、日の両日で考えときます。

gaillard
質問者

補足

> あまり大きい表だと上手く動作しないみたいですね うん、僕も始めはそういう印象をもっていました。 人に聞いても「Excelの限界ちゃうか」という意見は確かにあり、 なんとなく僕もそんな気になってました。 Accessですか、やっぱり使わないといけないかな~ 興味はあるのですが覚える時間が無くて… んで、結局、対象の行などをコピー→新しいシートに値として貼り付け してからソートという原始的なことをしてます。 はあ、時間が欲しい。。。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.5

すみません。関数名を誤ってました。 ただしくは「PHONETIC」です。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.4

全角のデータ入力時に「ふりがな」を自動的に保存しているからです。 [データ]-[並べ替え]のダイアログに[オプション]ボタンがあるので これをクリックすると「方法」ふりがなを使う、がデフォルトのはずです。 これを・・・使わないにする。 中身を見たい場合は全角の値のセルを別のセルから=photonic("セル番号")と すると「どうやって日本語入力したか」が見えると思います。

gaillard
質問者

お礼

うおおっ、こんな関数知りませんでした! 試してみると、同じ北海道でも「ホッカイドウ」と「北海道」がある!! なるほど、これでソートしてたからこうなっていたのか… bin-chanさん、ありがとうございます!! しかし、先程から皆さんが「ふりがな」と言っていたのはこの事だったのですね、 不勉強ですいません、全くわかってませんでした… さて、残る問題はなぜ「ホッカイドウ」と「北海道」になっているかですね。 web上でのプルダウンによる選択記入項目なので、 違いが発生するように思えないのですが…

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.3

そうですか  後考えられる所をあげます   メモリーが足りなく途中で止めてしまう(考えにくいか?)   当初のソートの範囲にデータが入っていない  一回並びが変なものの内一つか二つ入力し直して実施してみるのはいかがですか かんばって下さい。なんの回答にもなってない~(・・;)あせあせ

gaillard
質問者

お礼

> メモリーが足りなく途中で止めてしまう(考えにくいか?) これは辛うじて大丈夫です。(笑) > 当初のソートの範囲にデータが入っていない これもちゃんと指定しています。 範囲指定が出来ていなければ、指定から外れている個所については ソートされませんよね?具体例のケースでは、全てソートされた上で ああなってしまうのです… > 一回並びが変なものの内一つか二つ入力し直して実施してみるのはいかがですか 解決策としては、これも有効だと思います。 実際に行った例としては、 AAAABBBBCCCCABC となっている内、最後の方にあるAを入力し直して 再ソートをかけると、ちゃんと AAAAABBBBCCCCBC となった事もありますし、 逆に始めのAAAAを再入力してソートすると BBBBCCCCAAAAABC と なったりします。もう何が何だか… 一応、自分なりには各Aの入力コードが違うからこうなるんじゃないか、とは 思っているのですが、真相はどうなのでしょう? > かんばって下さい。なんの回答にもなってない~(・・;)あせあせ いえいえ、Methylnさんもk_ebaさんも、お答え頂くだけで感謝です!

  • Methyln
  • ベストアンサー率29% (242/823)
回答No.2

もしかして漢字をソート対象にしていませんか? 漢字の文字コードは、あいうえお順に正確に並んでいるという訳では ないようですので、ソート用に"ひらがな"か何かのキーを作って、 それをソート対象にしてはいかがでしょう?

gaillard
質問者

お礼

ご回答ありがとうございます。 ソートの対象は確かに漢字です。ただ、ソート順とかは あまり問題とは感じておりませんので、かなをソート対象に する必要もないと思います。(折角お答え頂いたのにすいません) お聞きしたいのは、具体例に示したように「なぜ同じAなのに上や下に 分かれてしまうか」なのです。言葉足らずで、質問したい事が うまく表現できてなかったかもしれません。すいません…

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.1

良くあるパターン  全角と半角  書式で文字、数値 などで並び替えが美味くいかないことがあります いろんな人が入力したり、違う日に入力したりするとなります 解決策として漢字のみとか数字だけとかプロテクトするといいと思います がんばって下さい

gaillard
質問者

お礼

早速の回答、ありがとうございます。 全半角は、全角で統一されています。 と言いますか、都道府県の選択入力(漢字のみ)なので、 バラバラになる事はないと思うのですが… プロテクト…ですか?試した事ないですがやってみます。

関連するQ&A

  • Excelソート

    名前のリストを「データの並べ替え」で昇順にソートしたところ明らかに並び順が変でした(阿部より前の行に斉藤がある)。さらに対象の列をコピーして「形式を選択して貼り付け」で値のみ貼り付けて並べ替えを実行しましたが同じ結果でした。 そこで、データをCSVで一度保存して、「外部データの取り込み」で取り込んでデータの並べ替えを実行したところ今度はちゃんと並べ替えることができました。 なぜこのようなことが起きるのでしょうか?データの並べ替えに影響するような設定があったのでしょうか?

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

    エクセルで縦方向(複数列)にデータを入れていっているのですが、 その中の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"は必要です。

  • エクセルのソートのマクロ

    エクセルでのソートのマクロを教えてください。  範囲選択は手動でその都度変更します。優先列、昇順は変更ありません。 例えば、AからE列までデータがあり、第一優先列をD列、第二優先列をA列として、それぞれ昇順でソートします。 範囲はその都度手動で複数行を全列選択します。 つまり、適宜、複数行を選択してからこのマクロを実行すれば常に先の形式でソートできるようにしたいです。  わかりにくい記述で恐縮ですがよろしくお願いします。

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

    エクセルのソートがうまくいきません。 SHP-1 SHP-10 SHP-100 というセルをソートしたいのですが、 文字列がはいっているようです。 文字列の書式を数値に変更し、さらに 空白セルに数値「1」を入力してコピー し、形式を選択して貼り付けの、演算の 乗算。という方法で書式を変更しましたが ソートがうまく出来ませんでした。 何かいい方法はありますでしょうか?

  • エクセル2010のソートには限界がある?

    よろしくお願いします。 エクセル2010を使っていますがエクセルのソートがうまくできません。 100行のデータがあったとして、オートフィルタ⇒昇順または降順 という形でソートしても、50行ぐらいまではソートされているのですが、 それ以降はソートされていなかったりすることがあります。 たとえば 1-1 田中   男性  車所有 1-2 佐藤   女性  土地所有 1-3 角川   男性  車所有 2-1 講談   男性  土地所有 2-2 集英社  女性  車所有 子rを1-1,1-2などの番号でソートしても昇順、降順にならかったり、 男性と女性でデータを分けたいため、キーワードを含む、などで”男性” を入力しても、女性が入力されている行が表示されたりします。 エクセルのソートには制限があるのでしょうか? 上記のような表で男性だけのデータ、女性だけのデータがほしければ、 男性だけのデータを表示して女性のデータが入っているかどうか目検で確認し Alt+; で可視セルだけコピーするしかないでしょうか? 以前のエクセルだときちんとソートできた気がします。。。。 ある表からデータを抽出し、可視セルだけきちんと取り出す方法を 教えてください。

  • ソートをかけて切り取って貼り付けたらおかしなことに!

    エクセルに詳しい方、教えてください。 仕事でエクセルを使っています。 ちょっと説明しづらいのですが、エクセルブックの中にAシート、Bシートがあるとします。 Bシートの方にソートをかけて目的の行を見つけます。(何個も出てくることもあります。)必要な部分を切り取ってAシートに貼り付けるんですが、何個かまとめて切り取ったとき隠れてる行(ソートに引っかからない行)までくっついてきてしまいます。 Aシートに貼り付けた段階では隠れたままで分からなかったのですが、出来上がったAシートを丸々コピーして別のエクセルブックのシートに貼り付けたときに発覚しました。 前に1度あってから左端の行の番号を確認して番号が飛んでないかチェックはしていたのですが、今日はもれてしまったようです。 こんな現象を防ぐ何かよい手立てはないでしょうか? 説明下手でごめんなさい。

  • エクセルのコピペについて

    エクセルにて、値のみコピー&貼り付けをしたいのですが、書式までコピーされてしまいます。 ※形式を選択して貼り付けをしているにも関わらず 同じシートを別のPCで同じ操作をすると、 問題なく値のみコピーされます。 どうぞ、宜しくお願い致します。

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

    エクセルのソートを行なおうとして、下記の手順を行なったのですが ・キーとなる列のセルを 1 つクリック。 ・(昇順で並べ替え) をクリック。 そうしたら「この操作には、同じサイズの結合セルが必要です」と言うエラーメッセージが、出てきました。 どなたか、解決策を教えてください。 何卒宜しくお願い致します。

  • エクセルってファジーに貼り付け出来ないでしょうか

    設備が出力するログの形式はCSV形式で、何列かはどのような検査をしたかなどが入り、何列か空けたところからの列に結果が出るような形式になっています。 1アクションずつ、ログが出るため、1つの製品の1台分のログでも数百行から数千行あります(製品によって違います)。 顧客にこのログを指定されたフォーマットの様式で送らないといけないので、エクセルで作っています。 製品毎にブックを作って運用しています。 ですが、新機種立ち上げとなると、落ち着くまで検査ログが変わります。 ほぼ、行が増えたり、減ったりします。 何列かの内容を確認しながら、必要なデータの位置を調べ、それを参照する計算式を作って、所定のフォーマットになるように、再参照させています。 1シート目は、ログを貼り付け用 2シート目は、ログの参照用 3シート目は、顧客の指定する様式に合わせた表 1シート目にログを貼り付け、3シート目をコピーし、報告用ブックに値貼り付けをしています。 この報告用ブックを顧客に送付しています。 初回は、下記場所が必要なのが入っているセルだとしても AA107 AA137 AA148 AA157 AA231 これが、落ち着くまでは、 AA140に1行入ったり、AA160に2行入ったりします。 これらデータを貼り付けたら、行が増えているので、別の場所を参照してしまい。 見比べながら、行挿入をしたりしています。 落ち着いたら、変更はないので、機械的に貼り付けだけの作業でいいのですが、 落ち着くまでは、これが、ほぼ、毎日です、中には数千行を見比べないとならないため、とても大変です。 エクセルってファジーに張り付いてくれないのでしょうか?

専門家に質問してみよう