- 締切済み
【Excel】文字列だと並べ替えができません
書式設定の「数値」で並べ替えをすると普通にできるのですが、数に円などの単位をつけて文字列に設定した場合、並べ替えができません。 文字列では並べ替えができないのでしょうか? もしそうでしたら、数値に単位をつけて並べ替えをする方法を教えてください。 バージョン2019利用です。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- SI299792
- ベストアンサー率47% (774/1619)
直接は無理です。単位を付けて入力すれば、文字列扱いになります。 ・痴漢で「円」を消す。 ・関数で「円」を消す。 どちらかが必要です。 関数で「円」を消す。 A1から下に、「1000円」の様に単位付きで入っているとします。 B1: =SUBSTITUTE(A1,"円","")+0 下へコピペ。 これで、B列に数字に変換した値が出るので、B列で並べ替えます。
- asciiz
- ベストアンサー率70% (6803/9675)
>文字列では並べ替えができないのでしょうか? Excelは「文字列」の並べ替えにも対応しています。 文字列の並べ替えというのは、 ・1文字目を見て、文字コードの小さい順に並べる ・1文字目が同じ場合は2文字目を見て、文字コードの小さい順に並べる ・2文字目も同じ場合は3文字目を見て、文字コードの小さい順に並べる(以下同様) こんな風に、左側から1文字ずつ比較していきます。 半角も全角も「1文字」扱いで、半角文字は全角文字より先に並びます(文字コードが小さい) これは、読み仮名順で並べ替えるときには、ごく当たり前のものとして、理解できるでしょう。 例) あい・あいこ・あいだ・あし・あめ は、この順に並ぶ 数値の場合、1・2・3・10・20・50・100 は、この順で並びますね。 一番右を1桁目として、数としての大小を見ているからです。 しかし「円」を物理的につけた場合、それはセル内に「文字列」が入っていることになります。 そうすると、「文字列しての並べ替え」を行うので、 100円 (↓下と比較した場合、1文字目"1"、2文字目"0"、3文字目"円”より"0"が小さいので、こちらが先になる) 10円 (↓下と比較した場合、1文字目"1"、2文字目"円”より"0"が小さいので、こちらが先になる) 1円 (↓下と比較した場合、1文字目"1"が"2"より小さいので、こちらが先になる) 20円 (↓下と比較した場合、1文字目"2"、2文字目"円”より"0"が小さいので、こちらが先になる) 2円 (↓下と比較した場合、1文字目"2"が"3"より小さいので、こちらが先になる) 3円 (↓下と比較した場合、1文字目"3"が"5"より小さいので、こちらが先になる) 50円 (これらの中では一番「大きい文字列」と判定される) こういう順に並んでしまうわけなのです。 この順に並ぶのは、文字列として正しい仕様です。 ---- では、「円」を付けても数字の大小に従って並ばせるにはどうしたらよいかというと、「セルの書式設定」を使います。 セル自体には、10とか20とか、数字のみを入れます。 そして書式設定で、ユーザー定義→「0円」と入れます。 こうすると、実データが数値のまま、表示だけ「○○○円」と見えるようになります。 実データは数値ですから、これを並べ替えると、数の大小で並びます。 ---- ただし「0"円"」という書式設定は、値段表示としてあまりうまくありません。 1000→「1000円」、2000000→「2000000円」と、桁区切りが無いため、モノの値段としては見づらくなってしまいます。 そこで書式設定に使うと良いのが、「#,##0"円"」というもの。←【この回答のお勧め】 こうすると、3桁区切りのカンマが表示されるようになり、不要な桁は見えません。 10→「10円」、1000→「1,000円」、2000000→「2,000,000円」という感じになります。 ちなみに「0,000円」という指定もできますが、「0」指定は「その桁が0なら0を表示」ということを意味しています。 そうすると、10→「0,010円」、100→「0,100円」、1000→「1,000円」という感じになり、数が小さいと何だか変な表示になってしまうのです。 「#」指定は、「0」指定と同く数値の桁数表示を表すのですが、「その桁が0になるときは表示しない」事となっているので、先ほどの指定ならば、0~999円の時にも都合よく表示してくれます。 その他にもさまざまな書式設定文字列があり、詳しい解説は回答No.1さんの引用したURLの通りです。 >Excel のセルの表示形式で [ユーザー定義] に使用できる書式記号について >https://support.microsoft.com/ja-jp/topic/979767bb-6635-c0f5-5e7f-32c69715ccfa
- Nebusoku3
- ベストアンサー率38% (1465/3824)
文字列に円などの単位を入力するのではなく、エクセルの数字はそのままで、「表示形式」を「円」あるいは「¥」にすれば、元の数字は「数値のまま」ですので、並べ替えができます。 「表示形式」の指定の仕方は分かりますよね。 参考1 ↓ https://kokodane.com/tec1_11.htm#:~:text=%E3%80%8C%E3%82%BB%E3%83%AB%E3%81%AE%E6%9B%B8%E5%BC%8F%E8%A8%AD%E5%AE%9A%E3%80%8D%E3%81%8C,%E3%82%8F%E3%82%8C%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82 参考2 ↓ https://support.microsoft.com/ja-jp/topic/excel-%E3%81%AE%E3%82%BB%E3%83%AB%E3%81%AE%E8%A1%A8%E7%A4%BA%E5%BD%A2%E5%BC%8F%E3%81%A7-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%AE%9A%E7%BE%A9-%E3%81%AB%E4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B%E6%9B%B8%E5%BC%8F%E8%A8%98%E5%8F%B7%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-979767bb-6635-c0f5-5e7f-32c69715ccfa#:~:text=%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%AE%9A%E7%BE%A9%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E7%94%BB%E9%9D%A2%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&text=%5B%E3%82%BB%E3%83%AB%E3%81%AE%E6%9B%B8%E5%BC%8F%E8%A8%AD%E5%AE%9A%5D%20%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0,%E5%AE%9A%E7%BE%A9%5D%20%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%BE%E3%81%99%E3%80%82