• ベストアンサー

エクセルの関数

A1に 2019/09/00 と標準に設定をして 日時が入っています。 日は00にしたいのでこの表示しかできません。 この場合、月の9を使って前月の月を表示させたいときはどういう式をいれたらいいのでしょうか? 1月と表示させたいセルがあったとしたら、 2019/12/00 を使ってどう表示させたらいいのでしょう?

noname#243819
noname#243819

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

  • ベストアンサー
  • masnoske
  • ベストアンサー率35% (67/190)
回答No.1

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 & "月"

noname#243819
質問者

お礼

できました。 ありがとう

その他の回答 (1)

  • Mathmi
  • ベストアンサー率46% (54/115)
回答No.2

>日時が入っています。  厳密には、このセルに入っているのは"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でも結果に変わりはありません。)

関連するQ&A

  • エクセル 関数について

    各月ごとにシートをつくっており、シート7月分のA1に  ='6月分'!A100  というセルをつくって前月分の残高を表示するようにしております。 毎月関数の月を手で変えているのですが、セルC1に日付を入力していますので、その月を使ってA1の関数を自動的に変えて表示することはできないのでしょうか。よろしくお願いします。

  • エクセル関数式を教えてください。

    エクセル関数式を教えてほしいのですが、 あるセル値Aが100未満の場合は、セルを空白(表示なし)に設定し あるセル値Aが100以上の場合は、他のセルB値の数値を表示させる。 初心者で関数式がわかりません、誰か教えてください。 お願いします。

  • エクセル2003関数

    非常に基本的なことで恐縮なのですが、以下について教えてください。 B16=3:27 C16=1:31 前月比としてD16のセルに=C16-B16と入れています。 今まではちゃんと-1:56と表示されていたのですが、########と表示されるようになってしまいました。 セルの書式設定かと思い、表示形式はユーザー定義 [h]:mmになっていることを確認しました。 ほかのセルも######と表示されている場合とちゃんと表示されている場合があり、比較すると-(マイナス)の場合に######と表示されているようです。 何が原因でこのようなことになってしまったのでしょうか?解決方法を何卒宜しくお願いいたします。

  • エクセルの関数について

    添付のようにAセルとCセルが同じ場合、その隣のBセルとDセルの日時がBセルよりも後に なっている場合に「●」印をつけたい場合の計算式はどうすればいいのでしょうか? 添付を例にすると、A列とC列で同じなのは、A1とC4です。 A1とC4の隣の列B1とD4の日時でB1よりD4が後の日時になっている場合に「●」印をつけたい

  • エクセルの関数についてお尋ねします。

    以下のようにAセルとCセルが同じ場合、その隣のBセルとDセルの日時がBセルよりも後に なっている場合に「●」印をつけたい場合の計算式はどうすればいいのでしょうか? 以下の例だと、A列とC列で同じなのは、A1とC4です。 A1とC4の隣の列B1とD4の日時でB1よりD4が後の日時になっている場合に「●」印をつけたい   ┃  A   ┃      B         ┃  C   ┃     D          ┃ E 1 ┃ 20621 ┃ 2012/7/18 16:10:36 ┃ 27185 ┃ 2012/07/11 09:30:20 ┃ 2 ┃ 20767 ┃ 2012/7/18 09:33:46 ┃ 28253 ┃ 2012/07/18 16:35:57 ┃ 3 ┃ 20825 ┃ 2012/7/18 10:27:29 ┃ 28569 ┃ 2012/07/11 16:39:40 ┃ 4 ┃ 35041 ┃ 2012/7/19 09:22:15 ┃ 20621 ┃ 2012/07/20 10:20:55 ┃ ●

  • エクセル IF関数について

    エクセルのIF関数で困っています。 A1のセルは、他のセル(B1)から飛ぶような設定をしている(=B1) B1に入力しない事があるで、A1の「0」に表示しないようにユーザー設定で「#,##0;"△ "#,##0; 」としている。 A2のセルには、A1に文字が表示されたときのみ「日」と表示するようにIF関数を入れた。「=IF(A1="","","日")」 しかし、A1に何も表示されていないのに、「日」が表示されてしまう。 試しに「=IF(A1="0","","日")」としたが、これでも「日」が表示されてしまう。 このような場合、IF関数はどうすればいいのでしょうか。 説明が下手ですいません。 どうか教えてください。

  • Excel 関数

    A1セルに、 集金 と入力した場合は、 A2セルとA3セルはブランクにし、 A1セルに 0から999 までの数字を入力した場合は、 A2セルに1をA3セルはブランクにし、 A1セルに" 1000以上 の数字を入力した場合は A2セルをブランクでA3セルに1をを表示させる。 A2セルA3セルの式をそれぞれ教えて頂けると助かります。 よろしくお願いします。

  • 関数計算の結果が表示されない・・・・・(エクセル)

    こんにちわ。 エクセルで =IF(A20="一般",IF(Y20>=G20,0,G20-Y20),"") のような計算式をあるセルにいれています。 この場合A20は一般、Y20は10000,G20は20000とします。 fxボタンを押して関数の計算式を見てみると 「数式の結果」は確かに、正しい「10000」と表示されているにも関わらず、なぜかセル上には「0」としか表示されてません。 セルの書式設定は「標準」になっており、とくにほかの規制?をかけた覚えもないのですが・・・。 この関数式をほかの行にもコピペしてもやはり「0」になってしまいます・・・・。 思い当たるフシがあれば、教えていただきたいですM(__)M

  • エクセルで

    エクセルでセル内表示にa月b日~a月d(b+4)日と表示する(要は月曜~金曜と言う意味です)ためにセルの書式設定のユーザー定義で入力したいのですが、どのような式?を入力すれば良いでしょうか? セルにはa/bのみ入力します。 よろしくお願いします。

  • エクセルがなんだかうまくうごきません(≧□≦;)!!

    たすけてください!今仕事でエクセルを使っているのですが、なにしろいままであまり使ったことがなかったもので大変困っております。困っている事というのは『数字を入力すると○月○日という表示になってしまう』という事です。セルを全選択して書式設定で見てみても標準になっているので、どこか他の設定がおかしくなっているのかなと思っているのですが、分かりません。思い当たることといえば、マクロの勉強を少しししていて時間・日時がでてくるマクロを作ったということなのですが・・・ しかし、新規作成で新しく作るときも同じ状況になってしまいます(-_-#)どうしたらいいのでしょうか?大変困っています。どなたか助けてください!!

専門家に質問してみよう