• ベストアンサー

エクセルの日付けの表示方法

エクセル2010を使用しております。 日付け、(=today())の任意の場所の数値を使用したいのですが。 例えば=today()で、本日(2017/04/18)を 20170418ならyyyymmddとか、0418ならyymmとかで書式設定で色々取れるのですが、今回「704」を採用したい例が出てきたのですが、ymmではできません。 一旦「1704」として、Rightで「右から3文字」ではなく、簡単に、直接「704」が出来ないでしょうか? どうすれば良いか教えてください。

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

  • ベストアンサー
回答No.2

あるいはMID関数併用で   =MID(TEXT(TODAY(),"YYMM"),2,3) でしょうか。 引き算でも   =TEXT(TODAY(),"YYMM")-1000 なんとかなりますが 2020年はどうしましょう?「004」?

akira0723
質問者

お礼

ありがとうございました。 2名のご回答者、ご両名ともBSで、このような場合早いかたを選択することにしておりますが、本件に関しては継続指導していただきました、tsubu-yukiーさんにしますのでmshr1962-さん御免なさい。 本来は#No1のお礼欄に書くべきでしたが、先にアップしてしまいましたのでご両名様にこちらで御礼します。(不慣れで済みません)

akira0723
質問者

補足

早々のご回答に感謝!! いつもシンプル(きれい)な回答で助かります。 最初にRight、TEXT、today、yymm(ymm)、3とか試してみたのですが、なぜか組み合わせるとうまく行かなかったので「何か条件が抜けている」と思い込んで、急ぐあまり(先程の延長で)つい安易に聞いてしまいました。 今朝から上記を使った書式設定の作業をすべく、対象ブックを細工しており、気がせいていました。 おかげさまで何とか本日から作業に取り掛かれます。 本当にいつも有難うございます。

その他の回答 (3)

回答No.4

余談として。 せっかく、マクロの勉強をなさっているのですから、 「ユーザー定義関数」も視野に入れてみると良いかもしれませんね。 VBEで当該ブックに標準モジュールを挿入し (この辺りの操作は別途お調べくださいませ。)、 その中に Function myYear(myDay As Date) As Integer   myYear = Mid(Format(myDay, "yymm"), 2, 3) End Function としてやります。 これでmyYearというユーザー定義関数が完成。 ワークシート上で   =myYear(TODAY())    ※今日なら「704」が返ります。 といった具合に、他の関数と同じように使えます。 一応、蛇足として参考までにどうぞ。

akira0723
質問者

お礼

重ね々ね、ありがとうございます。 次のターゲットは「ユーザー定義関数」になりそうです。  myYear = Mid(Format(myDay, "yymm"), 2, 3) これを、yyyymmddとして、数字を変えたものを登録すれば、当方がこれから設定する種々のケースの書式設定が非常に簡単に使えるようになりますよね。 実は先程のマクロで、任意の単一セルに20170417と書式設定しておいて、そのセルの書式を、1704とか0418とかに変更した後で、書式コピーで下に引っ張ろうと思っています。(既に少し始めています) さて、登録するのと、上記の半手動方式とどちらにするか、早急に決めて、取り掛かります。 と言っても当方には、登録も直ぐには出来ないでしょうけど、他にも汎用性がありそうなので、今後の為に少しずつやってみます。 昨年より種々のミス防止対策を手掛けており、色々助かっております。 感謝!!

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>一旦「1704」として、Rightで「右から3文字」ではなく、簡単に、直接「704」が出来ないでしょうか? 数値として704ですか?、それとも文字列の704でしょうか? 数値として704をTODAY()から導くには次のようにすると良いでしょう。 =MOD(YEAR(TODAY()),10)*100+MONTH(TODAY()) または =RIGHT(TEXT(TODAY(),"ymm"),3)*1 前者と後者では後者の方が合理的です。 他に次のような数式も使えます。 =MOD(TEXT(TODAY(),"ymm")*1,1000)

akira0723
質問者

お礼

当方が#No1さん、#No2さんにお礼を書いている間にご回答いただいていました。 当方の感覚としては、ご回答の ・・・(TODAY(),"ymm")・・・のようなイメージでしたが、MODは思いつかず、とりあえずRightで試してダメだったので、安易に質問してしまいました。 結局RightでもMIDでできました。(ヘタなだけでした) お手数をお掛けし、申し訳ありませんでした。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

書式設定では、見た目は帰れるけど結果は日付のシリアル値です。 年月を取り出す場合はRIGHTやMIDを使うか、MOD関数でしょうか? =RIGHT(TEXT(TODAY(),"yymm"),3)*1 =MOD(TEXT(TODAY(),"yymm"),1000)

akira0723
質問者

お礼

お手数をおかけしました。 目先の作業を急ぐあまり、お手数をお掛けしてしまいました。 これに懲りずにまた宜しくお願い致します。

akira0723
質問者

補足

早々のご回答ありがとうございます。 Rightは試してみたのですが、別のセルで一旦1704にしないとうまく行かず、TEXT、todayと組合わせられなかったので何か抜けている、と思ってしまいました。

関連するQ&A