- ベストアンサー
エクセルの関数
A1に 2019/09/00 と標準に設定をして 日時が入っています。 日は00にしたいのでこの表示しかできません。 この場合、月の9を使って前月の月を表示させたいときはどういう式をいれたらいいのでしょうか? 1月と表示させたいセルがあったとしたら、 2019/12/00 を使ってどう表示させたらいいのでしょう?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
2019/09/00 というデータは、Excel では日付として認識されないはずです。 そもそも 2019/09/01 では何か不都合なのでしょうか。 2019/09/01 を 9月 と表示したいだけなら、セルの書式設定でユーザー設定を選び、m"月" と設定すればOKです。 どうしても 2019/09/00 の必要性があるのなら、以下の数式で対応できます。 =MOD((VALUE(MID(A1,6,2))-1)-1,12)+1 & "月"
その他の回答 (1)
- Mathmi
- ベストアンサー率46% (54/115)
>日時が入っています。 厳密には、このセルに入っているのは"2019/09/00"という文字列であって、日付ではありません。 エクセルに限りませんが「人間が理解できる形式」と「コンピュータが理解でいる形式」は分けて考える必要があります。 例えばこの状態で[=VALUE(MID(A1,6,2))]という関数は、6文字目から2文字分、つまり"09"を返します。 が、00を01に変更した場合、エラーが出ます。 文字列から日付に変更になったので、内部データ的には[2019/09/00]から[43709]に変更になったので、6文字目がなくなったからです。 以上のように、本来なら色々な場合を考慮しなければなりませんが、簡単にYYYY/MM/DDの文字列で入力されている場合なら、以下の関数で先月の月数を得られます。 =MONTH(DATE(2019,VALUE(MID(A1,6,2)),1)-1) mid関数で月を取得、value関数で文字列を数字に変換、date関数で年、月、日を設定。 日で1を設定しているので、-1すると先月の月末になるので、month関数で月のみを取り出しています。 (関数内の2019は年数なので、2020でも1950でも結果に変わりはありません。)
お礼
できました。 ありがとう