重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel2013で例えば、15日からのデータの若い順にしたいのですが、どうしたらよいですか?15日と4日とあると4日の方が先にきてしまうので、15日からの若い順するにはどうしたよいですか?教えてください。よろしくお願い致します。

A 回答 (10件)

横から失礼します。

pimanmazuiさんは条件付き書式設定で、文字(フォント)の色を変えることができますか?できるようであれば、次の方法をお試しください。

条件付き書式で、日付が15より小さいセルの文字(フォント)を黒に設定してください(自動以外なら何色でも大丈夫です。とりあえず、赤で実験すると分かりやすいです)。
その上で、「ユーザ設定の並べ替え」または、「色で並べ替え」から、次のキーで並べ替えを行うとご希望の順に並びます。

・最優先されるキー 「日付」 「フォントの色」 「自動 上」
・次に優先されるキー 「日付」 「値」 「昇順」
    • good
    • 0
この回答へのお礼

ご返事遅れてすいません。とてもわかりやすい答えありがとうございます。さっそく試してみます。

お礼日時:2016/07/28 12:12

[No.5お礼]へのコメント、


》 ユーザー定義を使わないで入力すればよいということでしょうか?
その逆です。よ~くお読みください。
年/月/日で入力して、ユーザー定義による表示を
月を跨がなければ d だけで構わないけど、
年内の月を跨ぐなら m/d で、
年も跨ぐ(例:12/15から翌年の1/14まで)なら y/m/d で
と言っているのです。
    • good
    • 0
この回答へのお礼

ご返事遅れてすいません。しっかり読んで試してみたいと思います。

お礼日時:2016/07/28 12:19

再びrukukuです。



発想をかえてみては?

「日」だけですと、プログラムが複雑になってしまいます。
「年・月・日」で入力するとプログラムが複雑になってしまいます。
    • good
    • 0
この回答へのお礼

ご返事遅れてすいません。さっそく試してみます。

お礼日時:2016/07/28 12:18

#4です。



> シリアル値というのはユーザー定義を使わないということでしょうか?
いいえ。表示形式のユーザー定義を使うという意味です。シリアル値ですから。

後もうひとつ提案しておきましたが そちらについてはどうなのですか?
締め月は数式で簡単に出ますよね。
    • good
    • 0
この回答へのお礼

ご返事遅れてすいません。さっそく試してみます。

お礼日時:2016/07/28 12:17

>日にちの若い順


この定義が説明不足ですが
年月は無視して、
A. 4日7日15日
B. 15日7日4日
C. 15日4日7日の何れですか?

勝手に C. と想定して、
昇順に並べ替えようとすると、下図が表示されるので
数値とテキスト形式の数値を分けて並べ替えればOKだと思います。
「Excel2013のオートフィルタで日付」の回答画像6
    • good
    • 0
この回答へのお礼

ご返事遅れてすいません。さっそく試してみます。

お礼日時:2016/07/28 12:17

日付の入力は年月日の日付形式(2016/6/22)で入力して、データが月を跨ぐのであれば表示を月日(6/22)形式に、データが年を跨ぐのであれば表示を年月日(2016/6/22)形式にするしかない、と思っています。

    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。ユーザー定義を使わないで入力すればよいということでしょうか?

お礼日時:2016/06/22 14:07

日付(シリアル値)で入力するか 何月締なのかを表示する列を別に設けてそれを


ソートの条件の上位に入れればいいでしょう。
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。シリアル値というのはユーザー定義を使わないということでしょうか?

お礼日時:2016/06/22 14:05

No.2 のチョットだけ説明


・対象の日付入力されているのはB列としています。
 別の列にしたいときは「Const 列名 As String = "B" '対象列名を指定して下さい」の「B」を対象列名に変更してください。
・対象列の入力について
 数字以外の文字はそのまま入力して問題ありません。
 数字は「1」~「31」以外を入力しないで下さい。(動作を保証できません)
・動作について
 「1」~「14」が入力されると「1900/2/1」~「1900/2/14」に自動で変換されます。
 「15」~「31」が入力されると「1900/1/15」~「1900/1/31」に自動で変換されます。
 数字入力されると、書式が「"d"」に変更されます。(見た目は「1」~「31」になります)
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。さっそく試してみます。

お礼日時:2016/07/28 12:15

VBA を使っても良いのならば、


対象のシートモジュールに次のコードを
------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Const 列名 As String = "B" '対象列名を指定して下さい
Const 初日 As Long = 15 '初日を指定して下さい
If Mid(Target.Address, 2, Len(列名) + 1) <> 列名 & "$" Then Exit Sub
If IsNumeric(Target.Value) Then
If Target.Value < 1 Then Exit Sub
If Target.Value > 31 Then Exit Sub
If Target.Value <> Int(Target.Value) Then Exit Sub
Application.EnableEvents = False
If Target.Value < 初日 Then Target.Value = Target.Value + 31
Target.NumberFormatLocal = "d"
Application.EnableEvents = True
Else
If IsDate(Target.Value) = False Then Exit Sub
Application.EnableEvents = False
Target.Value = CDate("1900/1/" & Format(Target.Value, "d"))
If Target.Value < 初日 Then Target.Value = Target.Value + 31
Application.EnableEvents = True
End If
End Sub
------------------------------------------------------------------------
エラーなどでイベントが発生しなくなった時の修復用に、次のコードを標準モジュールへ
------------------------------------------------------------------------
Sub イベント再開()
Application.EnableEvents = True
End Sub
------------------------------------------------------------------------
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。これはVBAを使わないとできませんか?後、VBAはどこから起動するんですか?1個1個プログラムを打たなければいけませんか?

お礼日時:2016/06/22 14:02

こんばんは


補足要求です。

>15日と4日とあると…
ということは、年・月の情報は入っていないと言うことでしょうか?

機密等に関わらない範囲(ダミーのデータでもOK)でもう少し、詳細を教えてください。
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。日付だけです。年と月は入っていません。例えば15と打って、エンターを押した後、セルの書式設定でユーザー定義で日と入れています。15日を先頭に持ってきたいということです。例えば4日とか7日とかのデータがある状態で、範囲指定し、オートフィルタをかけて日付を若い順にするとどうしても15日は先頭にこなくなってしまいます。父親の給料が入る日が15日なので、15日を1日みたいに並び替えたいだけです。

お礼日時:2016/06/22 02:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!