[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付の表示形式を2003/ 1/ 2に』(ちゅうねん)
初めて投稿させて頂きます。
日付の表示で、表示書式に「yyyy/m/d」を使って日付を表示させると、2003/1/2や2003/11/22の様に、月や日の桁数によってズレが生じます。「yyyy/mm/dd」を使うと桁は合いますが、2003/01/02という表示になります。ゼロを使わず、2003/ 1/ 2の様にスペースで位置を合わせたいのですが、そのような書式はありませんか?よろしくお願いします。
ただ、この質問は結構見ます。 結論から言うと、表示形式のみでは不可能ですね。 入力用と、表示用でセルを沸けることが出来るのであれば、関数を使って可能です。 表示用セルに、=TEXT(A1,"yyyy/")&TEXT(A1,IF(MONTH(A1)>9,"m"、" m"))&TEXT(A1,IF(MONTH(A1>9,"/d"、"/ d"))
と、言う事でしょうか。 フォントは、等幅フォントにしてください。 どうしても、同一セルに表示したいのであれば、VBAを使えば、出来ると思います。 VBAは、得意ではないので、m(__)m
(たまに見る人)
確認しました。ちょっとミスタイプがありました。正しくは =TEXT(A1,"yyyy/")&TEXT(A1,IF(MONTH(A1)>9,"m/"," m/"))&TEXT(A1,IF(DAY(A1)>9,"d"," d")) ですね。 今までは、入力をA1とし、B1、C1には =A1 を入れ、それぞれのセルの書式を yyyy/ と m/ と d にして、最後に見栄えのために列の幅を調整していました。 たまに見る人さんの方法は、私にとって新しい方法でした。 表示形式のみでは不可能とのこと。納得しました。 ホントありがとうございました。<感謝!> (ちゅうねん)
右側から2桁取り出す裏技もあります。 うーん、少しだけ短いかな。
セルA1に表示したい日付が入っているとして、 =YEAR(A1)&"/"&RIGHT(" "&MONTH(A1),2)&"/"&RIGHT(" "&DAY(A1),2) (kazu)
kazuさん、ありがとうございました。 動作確認 & 理解しました。 <感謝^2!>(ちゅうねん)
解決済みのようですが、 以前私が作ったユーザー関数が手元に帰ってきたので、紹介します。 (kazu)
セルA1に今日の日付が入っているとして、 セルB1に =gymd2(A1)と入力すると 2003/ 7/ 2 になります。 セルB1などのフォントをMSゴシックにすれば、複数並べたとき桁が揃います。
Gymd2が西暦用、Gymdが和暦用です、どちらか一方をコピーしてVBEの世界で 標準モジュールを挿入して、貼り付けて使ってください。
Function Gymd2(ymd) ' 年月日表示桁をそろえる(西暦用) fmty = "yyyy" fmtm = "m/" fmtd = "d" fmt = "yyyy/" If Month(ymd) > 9 Then fmt = fmt & fmtm Else fmt = fmt & " " & fmtm End If If Day(ymd) > 9 Then fmt = fmt & fmtd Else fmt = fmt & " " & fmtd End If Gymd2 = Format(ymd, fmt) End Function
Function Gymd(ymd) ' 年月日表示桁をそろえる(和暦用)
fmty = "ggge年" fmtm = "m月" fmtd = "d日" If Len(Format(ymd, "ggge")) > 3 Then fmt = fmty Else fmt = "ggg e年" End If If Month(ymd) > 9 Then fmt = fmt & fmtm Else fmt = fmt & " " & fmtm End If If Day(ymd) > 9 Then fmt = fmt & fmtd Else fmt = fmt & " " & fmtd End If Gymd = Format(ymd, fmt) End Function
kazuさん、ありがとうございました。 ユーザー関数を使うのは初めてでしたが、うまくできました。 マクロでやっていることも何とか理解できました。 ユーザー関数って便利ですねぇ。感涙!! (ちゅうねん)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.