• ベストアンサー

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

エクセル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/8248)
回答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% (7418/18948)
回答No.1

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

akira0723
質問者

お礼

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

akira0723
質問者

補足

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

関連するQ&A

  • エクセルの日付関数の使い方について

    いつもお世話になっております。 今回はエクセル2010での日付関数の使い方について教えて頂きたく。 日付けの一部を文書Noに使っています。 ナンバリングの規則は「西暦年の末桁+月」が先頭の3文字ということになっているので、今月なら「703・・・」ということになるのですが、TODAY関数で2017年3月を「703」とする方法が分かりません。 "yymm"で「1703」だと使えるのですが、"ymm"ではエラーになってしまいます。 一旦「1703」と出して、その「右から3桁」としなくても出来そうな気がするので、どなたか宜しくお願い致します。

  • エクセルで日付の3文字を数字と比較したい

    エクセルでB16に入力された数字の左の4桁が日付の頭4桁とあっているかを下記の関数でチェックしているのですが、今回年の下1桁+月2桁と入力された数字の整合性を確認できるようにしたいのです。 例えば2019年11月20日なら入力された数字の頭の3つが911****であるかを確認する式がわかりません。 ymmではだめなので、TEXT(TODAY(),"yymm"))の右から3つを取りたいのですが度もうまくいかないのでお知恵を拝借したく。 よろしくお願いします。 =LEFT(B16,4)<>TEXT(TODAY(),"yymm"))

  • Excelの日付の表示方法で

    Excelの日付の表示方法で 2012/06/09というように一桁の数字の場合は0を入れたいのですが、 2012/6/9というように表示されてしまいます。 セルの書式設定で見ると、似たような表示はあり、 きっとできるのではないかと思うのですが やり方がわかりません。 使用しているのはExcel2010です。宜しくお願い申し上げます。

  • Excelで日付の書式を指定文字列に変換

    Excelで日付の書式を指定文字列に変換 セルから日付情報を得て、文字列でyyyymmddに変換するには、どのようにすればいいでしょうか。VBA・関数のどちらでもかまいません。よろしくお願いします。

  • EXCELでの日付表示の方法

    初心者ですみません。 EXCELで日付を表示する方法の質問です。 例えば、同一ブックの別のシートのあるセル(例えばB2)に6桁の日付の数字(例211229  和暦)が入力されているとして、その数値の下4桁のみを別のシートの例えばC2セルで12月29日と表示させるにはどうしたらよいのでしょうか? MODで6桁の数字を10000で割れば、余りとして1229が得られますが・・・。 よろしくお願いいたします。

  • excel2003です。日付の表示を変更したいのですが。

    こんにちは、excel2003を使用しているのですが。 別のプログラムから、csv出力したデータをexcelデータで使用したいのですが、日付の所でひっかかってしまいました。 日付の表示が、 (例)21.03.09 となっています。これを (例)2009/3/9 と表示したいのですが、書式を日付にしても変わりません。 また、区切り位置で日付設定にかえても、2021/3/9 と表示されてしまいます。 何か良い方法はありませんでしょうか? どうぞよろしくお願いいたします。

  • EXCELで現在の日付との差分をとる

    早速ですが、下記についての質問です。 セルA1、A2、A3にそれぞれ2008/1/1、2008/7/1、2009/1/1 があります。 この3つの日付と現在の日付を比較し、過去3ヶ月以内に該当するセルに色をつけたいと思っています。 days360()とtoday()関数を使用し、条件付き書式設定で試みたのですが、うまくいきません。 EXCELは2002です。 どうぞ宜しくお願い致します。

  • エクセル 日付に関する質問

    エクセルでの質問です。   5/25 26 27 28 29 30 31 6/1 2 3 4 5 上記のようにしたいです。 連続する日付です。 月が替わった時だけ、セルの書式設定-表示形式-日付-種類が“3/14”になる様ににしたいです。 それ以外は、日にちだけにしたいです。(“d”) 一番初めのセルは、手入力します(例)5/25 右隣のセルは、"a+1" として右にドラックします。 よろしくお願いします。

  • エクセルの日付計算について

    こんにちわ。 エクセルの日付計算について不思議なことが起こったので、質問に来ました。 エクセルのセルに「2011/10/31」と打ち込み書式を標準あるいは数値にすると「40847」となります。 これは1900/1/1から40847日たったと理解しております。 が、「1950/11/15」を標準あるいは数値にすると「18582」になります。これに61年分の日付つまり365*61=22265を足すと40847と2011/10/31と同じ値になってしまいます。 上記文章の書き方を変えると↓ 2011/10/31→→40847・・・(1) 1950/11/15→→18582・・・(2) 61*365=22265・・・(3) (2)+(3)=(1) 18582+22265=40847 つまり 1950/11/15の61年後=2011/10/31 私の考えでは1950/11/15の61年後は2011/11/15になると思っていたのですが、実際には上記のようになってしまいました。 なぜこのようなことが起こるのかがわからず困る&困惑しております。 勘違いがあるかもしれませんがアドバイスやご意見をお願いします。

  • 【エクセル】日付表示について

    エクセルの日付表示について教えてください。 【例】  ・2008/12/31 → H201231  ・2009/4/4 → H210404 というように表示をさせたいです。 セルの書式設定-ユーザー定義-種類で「gemd」と設定したのですが、 月日が10未満の場合、"0"が付いてくれません。 ひとつひとつ「ge"0"md」や「gem"0"d」等で設定すればよいのですが、 対象のセル数も多く、日付も色々なため、一括変換できればと思い、 質問をさせていただきました。 ご教授いただけると助かります。 よろしくお願い致します。

専門家に質問してみよう