- ベストアンサー
年月日+時刻の表示方法と空白置換の方法
- 年月日+時刻の表示方法と空白置換の方法について説明します。
- セルの書式設定により、年月日と時刻を表示する場合と、年月日のみを表示する場合で表示方法が異なります。
- 年月日のみを表示する際に、時刻部分を空白に置き換える方法をご紹介します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>年月日だけの入力の場合に、この"00:00"を空白に置き換えるにはどうしたらいいでしょうか? 条件付き書式で対応可能と思いますが入力値の時刻が00:00の場合も空白になります。 Excelでの日付と時刻は1900年1月1日を数値の1とし、時刻は小数で24分の1を1時間としています。 条件付き書式で1未満の値がある場合は時刻が入力されていると判断して”00:00着"の書式を付加すれば良いでしょう。
その他の回答 (2)
- masnoske
- ベストアンサー率35% (67/190)
Execl から見た場合、2020/1/1 と 2020/1/1 00:00 は同じ値です。 [No.1] の方も書いておられますが、00:00着の時にどうするか。。。 もしも、00:00着がないのであれば、A1に日付が入力されているとして MOD(A1,1) の値を条件にして、条件付き書式を設定します。 00:00 の場合には、この値が 0 なので、 条件 =MOD(A1,1)=0 書式 mm"月"dd"日( "aaa" )着" もしも、00:00着がある場合は、日付を入力するセル(A1)と日付を表示するセル(B1)を分けます。 A1セルは、書式を文字列とします。 B1セルには以下の数式を設定します。 =IF(COUNTIF(A1,"*:*")>0,TEXT(DATEVALUE(A1),"mm月dd日(aaa)") & TEXT(TIMEVALUE(A1),"hh:mm着"),TEXT(DATEVALUE(A1),"mm月dd日(aaa)着"))
お礼
masnoske さん、回答ありがとうございます。 [No.1] の方の回答をヒントにとりあえず以下のような対応に行きつきました。 ◆時間表記がない [条件] =(($A$1-ROUNDDOWN($A$1,0)) = 0) [書式] mm"月"dd"日( "aaa" ) 着" ◆時間表記がある [条件] =($A$1-ROUNDDOWN($A$1,0))>0 [書式] mm"月"dd"日( "aaa" )"hh:mm"着" ですが、masnoske さんのMOD関数を使った条件式のほうが、とてもすっきりしていて見やすいです。 >[No.1] の方も書いておられますが、00:00着の時にどうするか。。。 ご指摘の通り、対応に悩んだのですが、今回は通販の配送時間の指定ということで、00:00着という指定はないだろうと判断し、進めることにいたしました。 余裕があれば、後学のために対処方法を考えてみたいとは思います。
- imogasi
- ベストアンサー率27% (4737/17069)
表示形式(日付+時刻)でWEBを照会してしらべたが、 (1)日付だけの入力の時 日付までで時刻部分は空白 (2)日付+時刻まで入力の時 日付のあとに時刻も表示 ニーズはありそうで、関連記事は見つけられなかった。 ーー ふと「条件付き書式」の書式について、普通は塗りつぶしの色の質問ばかり多いのだが、「表示形式」の指定もあったな、と思い出して、下記をやってみた。 ーー その前にエクセルの日付、時刻は、日付・時刻シリアル値で管理されている ことも知らない人が多いが その場合、小数点以下部分の数値が、時刻を決めるのだ。 ーー この部分が、0の場合を捉えるのは A2-int(A2)=0で判定できると思いやってみた。 この場合A2-int(A2)>0と A2-int(A2)=0 の場合の「2ルール」設定になることに注意。 === 適用範囲をセル範囲指定しておいて A2:A12時 とした例 ホームー条件付き書式ー新しいルールー数式を指定して・・で、 「次の数式を満たす・・」のボックスの中に、関数を入れる。そのとき 先頭に=を入れて始めるのはご存じだろうね。 第1ルールは 式は =A2-int(A2)>0 書式ボタンをクリックー表示形式ーユーザー定義 yyyy"年"mm"月"dd"日" hh"時"mm"分" OK-OK ーー 第2ルールは 第1と同じ、適用範囲をセル範囲指定しておいて 式は =A2-int(A2)=0 こちらは0とする 書式ボタンをクリックー表示形式ーユーザー定義 yyyy"年"mm"月"dd"日" 時刻部分を00時00分とか出さないようにする OK-OK ==== これでいかが、かな。 この20年間OKWAVEで同類の質問が思い出せない、タイプの質問なので、もし、今く行かないケースなど見つかって、間違いがあればすみません。 固定挿入文字の「着」の表示は省いたが、必要なら質問者で補ってください。 ーーー 例テスト・データ 下記の内容の日付や時刻 下記は表示形式は、適当でない例なので、日付時刻の値だけ、どういうものを入力してテストしたか、見てください。 2020年03月12日00時00 2020年03月13日23時54分 2020年03月23日 00時00分 2020年03月23日 12時34 2020年12月01日 00時00分 2020年03月12日 00時00 2020年03月15日00時00 2020年02月11日00時00 2020年03月12日13時15 2020年01月20日00時00 2020年03月23日 12時34 2020/3/12 12:15 2020/5/23 12:25 ーー 適用後 日・時刻 略 ここへ貼り付けると見てくれが変化するようなので、実際にテストしたシートの見てくれを見てください。
お礼
imogasi さん、回答ありがとうございます。 imogasi さんの回答に気づくより先に、他の方の回答をヒントにとりあえず以下のような対応に行きつきました。 違いはINT関数で小数点以下を切り捨てるか、ROWNDDOWN関数で切り捨てるかであるかと思います。 ◆時間表記がない [条件] =(($A$1-ROUNDDOWN($A$1,0)) = 0) [書式] mm"月"dd"日( "aaa" ) 着" ◆時間表記がある [条件] =($A$1-ROUNDDOWN($A$1,0))>0 [書式] mm"月"dd"日( "aaa" )"hh:mm"着" imogasi さんの回答によって、行きついたやり方が間違ってはいないということが確認できましたので、とても助かりました。 そして、今回、シリアル値というのを初めて知りましたので、大変勉強になりました。 ありがとうございました。
お礼
bunjii さん、回答ありがとうございます。 回答をもとに、条件付き書式にて試行錯誤してみたところ、 一応、以下のように対応することができました。 ◆時間表記がない [条件] =(($A$1-ROUNDDOWN($A$1,0)) = 0) [書式] mm"月"dd"日( "aaa" ) 着" ◆時間表記がある [条件] =($A$1-ROUNDDOWN($A$1,0))>0 [書式] mm"月"dd"日( "aaa" )"hh:mm"着" 今回、シリアル値というのを初めて知りましたので、大変勉強になりました。 ありがとうございました。