こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2017-04-18 12:00:42

QNo.9318916

困ってます

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

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

投稿日時 - 2017-04-18 12:49:23

補足

早々のご回答に感謝!!
いつもシンプル(きれい)な回答で助かります。
最初にRight、TEXT、today、yymm(ymm)、3とか試してみたのですが、なぜか組み合わせるとうまく行かなかったので「何か条件が抜けている」と思い込んで、急ぐあまり(先程の延長で)つい安易に聞いてしまいました。

今朝から上記を使った書式設定の作業をすべく、対象ブックを細工しており、気がせいていました。
おかげさまで何とか本日から作業に取り掛かれます。
本当にいつも有難うございます。

投稿日時 - 2017-04-18 13:23:26

お礼

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

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

投稿日時 - 2017-04-18 13:31:31

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

余談として。

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

一応、蛇足として参考までにどうぞ。

投稿日時 - 2017-04-18 13:19:27

お礼

重ね々ね、ありがとうございます。

次のターゲットは「ユーザー定義関数」になりそうです。
 myYear = Mid(Format(myDay, "yymm"), 2, 3)
これを、yyyymmddとして、数字を変えたものを登録すれば、当方がこれから設定する種々のケースの書式設定が非常に簡単に使えるようになりますよね。

実は先程のマクロで、任意の単一セルに20170417と書式設定しておいて、そのセルの書式を、1704とか0418とかに変更した後で、書式コピーで下に引っ張ろうと思っています。(既に少し始めています)

さて、登録するのと、上記の半手動方式とどちらにするか、早急に決めて、取り掛かります。
と言っても当方には、登録も直ぐには出来ないでしょうけど、他にも汎用性がありそうなので、今後の為に少しずつやってみます。

昨年より種々のミス防止対策を手掛けており、色々助かっております。
感謝!!

投稿日時 - 2017-04-18 14:01:37

ANo.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)

投稿日時 - 2017-04-18 13:00:31

お礼

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

投稿日時 - 2017-04-18 13:45:04

ANo.1

書式設定では、見た目は帰れるけど結果は日付のシリアル値です。
年月を取り出す場合はRIGHTやMIDを使うか、MOD関数でしょうか?

=RIGHT(TEXT(TODAY(),"yymm"),3)*1

=MOD(TEXT(TODAY(),"yymm"),1000)

投稿日時 - 2017-04-18 12:38:53

補足

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

投稿日時 - 2017-04-18 13:14:07

お礼

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

投稿日時 - 2017-04-18 13:14:24