• ベストアンサー

Excelの並べ替えの方法

Excel for Mac2011です。 

Excelのデータを日付をに添って並べ替えを試みたのですが、以下の様になります。


 2013.06.10(月)
 2013.07.09(火)
 2013.07.10(水)
 2013.07.21(日) 
2013.01.06(日)
 2013.02.08(金) 要は1月、2月…という順番にしたいのですが、なぜか6月、7月、1月、2月… となります。 改善の方法を具体的に教えて下さい。 お願いいたします。

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

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

No6の回答の補足です。 例示のデータを吟味したところ、文字数14の日付は文字列の最後に、文字数15の日付は文字列の最初と最後に目に見えない不要の文字コードが挿入されていることがわかりました(最後の文字コードはすでに提示した置換操作で削除できています)。 No6では先頭の文字コードを手動で削除する方法を提示しましたが、これらのセルを一括して日付データにしたいなら、提示した置換操作に加えて最後に、以下のような置換操作を追加してください。 検索する文字列に「*2013」、置換後の文字列に「2013」と入力して「すべて置換」してください。

avalokita
質問者

お礼

ありがとうございます。 解決しました。

その他の回答 (6)

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

>要は1月、2月…という順番にしたいのですが、なぜか6月、7月、1月、2月… となります。 例示のデータを手入力したなら、基本的に問題なくご希望の順番に並ぶはずです。 このようなケースでは、データが同じ形式で入力されていない場合や他のアプリケーションからコピー貼り付けしたデータなど不要な文字コードが混入しているようなパターンが考えられます。 実際に例示のデータを調べて見ると、「2013.01.06(日)
」のデータには「2」の数字の前に不要な文字コード(添付画像C列の数字)が付いています数式バーでカーソルを「2」の前においてBackSpaceキーをクリックすれば先頭の不要な文字コードを削除できます。 また文字数(B列の数字)はすべて13のはずですが14や15のデータが混入しています(文字列の途中にも目に見えない文字コードが混入している)。 >2013.06.10 を 2013/6/10 とひとつひとつ打ち直す方法しかありませんか? 例示の文字列の日付データを日付シリアル値に変更したいなら以下のような手順になります。 日付データ範囲を選択し、Ctrl+Hで置換ダイアログを出して、検索する文字列の欄に「(*」と入力し、置換後の文字列には何も入力せず「すべて置換」します。 そのまま検索する文字列の欄に「.」と入力し、置換後の文字列に「/」と入力し「すべて置換」します。 このようにすると日付シリアル値でないものは左寄せで表示されますので、上記の先頭文字の前にカーソルを置いてBackSpaceキーをクリックしてください。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

回答No2です。 返事が遅れましてすみません。 例えばお示しのデータがA2セルから下方に有るとしたらB1セルには次の式を入力します。 =IF(A1="","",SUBSTITUTE(LEFT(A1,10),".","/")*1) セルにはシリアル値が表示されますので、セルを右クリックして「セルの書式設定」の「表示形式」のタブで「ユーザー定義」を選択し、種類の窓には yyyy/mm/dd(aaa) と入力してOKします。####が表示されたらセルの幅を広げます。 その後にA1セルの右下隅の■をクリックして下方にドラッグコピーします。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.4

例えば、元の日付(もどき)がA1セルから下ににあるとして。 どこか適当な表外のセルに   =DATEVALUE(SUBSTITUTE(LEFT(A1,10),".","/")) とし、必要分、行方向にフィル。 フィルした範囲を選択した状態のまま、コピー。 A列に「値を貼り付け」。 A列の表示形式を「yyyy.mm.dd(aaa)」に設定。 並べ替え。 以上で完成。 添付図) A列・・元の日付 B列・・上記式によりシリアル値に変換した値 C列・・B列をコピー・値を貼り付けた後、     表示形式を「yyyy.mm.dd(aaa)」に設定

回答No.3

それらの「日付データ」のセルをすべて選択して、表示形式を「標準」にしてみましょう。 添付画像は「並び替えすると順番がおかしくなるデータ」を再現した物です。 「A列」の表示形式を変えると「C列」のように変化します。 1~2行目は「4万1千くらいの数値」になりましたが、3~4行目は「そのまま」です。 これは「1~2行目は、日付が日付データとして入力されていて、3~4行目は、日付が文字列として入力されている」から、このようになります。 エクセルは「数値(日付データ)は、文字列よりも小さい」と判定しますから、日付データとして入力されている物が前へ、文字列データとして入力されている物が後ろに並びます。 表示形式を「標準」に変えれば「文字列データなのか、日付データなのか」が見て判りますから、確認してみましょう。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

並べ替えがうまくいかないということなのでつぎのようにデータを入力してから試験してみてください。 例えば日付をA1セルに2013.06.10(月)と入力するのではなく、2013/6/10と入力します。A2セル以降にも2013/7/9のように入力します。 日付を入力したセルを例えばA1セルからA10セルを選択して右クリックして「セルの書式設定」から「表示形式」タブを選択します。 「ユーザー定義」を選択してから種類の窓には yyyy.mm.dd(aaa) と入力してOKします。 自動的に曜日も表示されて 2013.06.10(月) のように表示されます。 このようにしたデータを昇順で並べることでお望みの結果が得られるでしょう。 エクセルを使った日付の入力ではパソコンに2013/6/10のように入力することで数値として理解されますが、2013.6.10のように入力した場合には文字列として理解され、いろいろな日付の計算が出来なくなります。 例えばA1セルに2013.06.10(月)と入力した日付に1日を加えた日は =A1+1で求めたいところですがA1セルが文字列であるためにエラーとなってしまいます。2013/6/10と入力した場合には2013/6/11と計算することができます。 上の問題とは全く別でお示しのデータがB列などに有って、並べ替えがA列を重点に行われているなどのことではないですよね。

avalokita
質問者

補足

ありがとうございます。 お尋ねいたします。 2013.06.10 を 2013/6/10 とひとつひとつ打ち直す方法しかありませんか?

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.1

前の質問でも問題になってましたが、シリアル値ではないという事でいいんでしょうか? 実際のデータがどうなっているかがとても重要なのですが… とりあえず、 ホーム→編集→並べ替えとフィルタ→ユーザー設定の並べ替え→オプション →ふりがなを使わないを選択→OK とするとどうなりますか?

関連するQ&A