• ベストアンサー

エクセルの日付

A2に「2019/10/00」と入力します B1に「1」と入力します B2に「2019/10/1」と表示させるには、 B2にどんな式をいれればいいですか? 念のため、エクセルを新規に開いた状態でB2にA2+B1としてもエラーになります。 最終的には、この出来上がったシートをcsvで保存しなおしをします。 B2はちゃんと日付の形式になっていることが条件です。 そうじゃないと別のソフトで読み込みができないので・・・。 どなたか教えてください。 オフィス2010です

noname#243819
noname#243819

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

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.7

ANo.1です。 > B1に2019/10/00 > A2に1 > > とはいっています。 > > すみません。 > 再度、式をおしえてください。 ANo.1の式中のA2とB1を入れ替えてください。 ANo.2とANo.3の式も同様に入れ替えればお望みの値が出るはずです。

noname#243819
質問者

お礼

あ、すみません。 IFで条件付きにしたらできました。 これで解決しました ありがとうございます。

noname#243819
質問者

補足

できました。ありがとうございます A2が空白のときは、VALUEと表示されるのですが、 空白の時に、B1の式を表示させることはできますか?

その他の回答 (8)

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.9

B2: 数式→ =REPLACE(A2,9,2,B2)*1  ̄ ̄書式→ yyyy/m/d

noname#243819
質問者

お礼

回答7で解決しました ありがとうございます

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

>A2に「2019/10/00」と入力します その値は日付になりません。(文字列として入力されます) >B1に「1」と入力します 数値の1ですよね? >B2に「2019/10/1」と表示させるには、 >B2にどんな式をいれればいいですか? A2の文字列は日付のシリアル値(1900/1/1を1とした日数)に変換できませんのでB1を加算することができません。 A2の文字列を実在する日付の文字列に置き換えてシリアル値にしてからB1の値を加算し、B2の表示形式を「日付」に変更します。 =SUBSTITUTE(A2,"/00","/01")-1+B1 >念のため、エクセルを新規に開いた状態でB2にA2+B1としてもエラーになります。 A2とB1が未入力でB2に =A2+B1 と入力すると表示は 0 になるはずです。 >B2はちゃんと日付の形式になっていることが条件です。 数式では表示形式を指定できないので文字列の 2019/10/01 とするのであればTEXT関数で文字列に変換します。 =TEXT(DATEVALUE(SUBSTITUTE(A2,"/00","/01"))-1+B1,"yyyy/mm/dd")

noname#243819
質問者

お礼

回答7で解決しました ありがとうございます

  • asciiz
  • ベストアンサー率70% (6638/9405)
回答No.6

ちょっと待ってください。 ご質問の内容に、根源的な問題(エラー)があります。 >A2に「2019/10/00」と入力します 「2019/10/00」という日付は『現存しません』。 そのため、この入力時点では、セルに"2019/10/00"という「文字列値」が入ってしまっています。 もしこれが A2「2019/10/1」(日付値、シリアル値で43739) B1「1」 であったなら、単純にB2=A2+B1 で、シリアル値43740→「2019/10/2」と表示されるのです。※要日付書式設定 そこで、質問者さんのやりたかったことはどういうことなのか? ・文字列から日付要素(年・月)を取り出し、指定日の表示をする。 それとも単純に ・指定日の「何日後」を表示する。 だったのか。 後者であれば、上に書いたように単純に「=A2+B1 」とやればいいのですが。 前者である場合、文字列値から年・月要素の抽出、指定日の合成、存在しない日付だった場合の例外処理…という複雑な処理をしなければならないことになります。 ---- さらにご質問には別の問題もあります。 >最終的には、この出来上がったシートをcsvで保存しなおしをします。 CSVで保存した時点で、設定した式はすべてなくなり、最終的な値だけがファイルに保存されます。 それを再度読み込むと、各セルに計算済みの値が入っただけのシートとなり、指定セルに別の値を入れても、一切計算してくれなくなります。 また、ExcelでCSVを読み込む場合、非常にいい加減な変換をします。 数値っぽいものは数値として読み込み、日付っぽいものは日付として変換されます。 ただし、先ほどもあったように、現存しない日付においては変換されず、文字列値として読み込まれます。 結果として、CSV保存して、再度読み込んだものは、元のExcelファイルとは大きく異なったものになってしまいます。 CSVはあくまでも、他アプリケーションに読み込ませるときの一時的な形式であり、Excelの表はExcelファイル形式で保存しなければ、セルに設定した計算式・書式・罫線等は保存されません。 ---- もう一度、実現したいものの要件をよく考え直してみてください。

noname#243819
質問者

お礼

回答7で解決しました ありがとうございます

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

A2に2019/9/30と入れることにすれば仕舞いでしょ。 なぜA2に、>「2019/10/00」と入力、に拘わらないといけないの? 2019年10月1日 2019年10月 2019/10/1 ーー 2019年9月30日 2019年9月 2019/9/30 ーー ただし、数字は半角。このまま見た目の通り入力する。 上記の入力はみなすべて、2019年10月1日(または2019年9月30日)の日付シリアル値になる。 エクセル的に言えば、本来は文字列のデータとみなすべき入力が、日付に存在する内容だと、日付化されるようだ。それほど日付化の力は優先する。他に数字文字列にもその例がある。 それを対象にしてVATEVALUE関数の対象にするとエラーになる。 ーー A2を2019年10月1日にしておいて=A2+B1-1とする手もある。 == 質問者はエクセルの「日付シリアル値」のことを知らないのかもしれない。 もしそうなら、Googleで「エクセル 日付シリアル値とは」で照会して 出てくる記事の数個を読んでみること。 これに沿った形で、エクセルの日付データを考えないと、エクセルを使う以上は、勝手なことはできない。 ーー >シートをcsvで保存しなおしをします この点はもともと難しい点を抱えているところと思う。たとえば、ゼロの問題とか、この日付の問題とか。初心者の質問も多い、ややこしいところ。 まずやってみて、失敗して、それからOKVAVEにでも改めてその点に絞って、質問することを勧める。その時には、、エクセルデータと表示形式、それに加えて完成してほしい形(CSVデータ)の例示を十分すること。

noname#243819
質問者

お礼

回答7で解決しました ありがとうございます

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.4

ANo.1です。 > #VALUE! > と、でました。 > 他のセルは標準でいいんですよね? 式か、参照セルが間違えているように思えます。 セルA2に文字列の 2019/10/00 セルB1に数値の 1 が入っているんですよね? 式はコピペしていますか?

noname#243819
質問者

お礼

ありがとうございます

noname#243819
質問者

補足

ちがってました。 B1に2019/10/00 A2に1 とはいっています。 すみません。 再度、式をおしえてください。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.3

=IFERROR(DATEVALUE(LEFT(A2,FIND("/",A2,FIND("/",A2,1)+1))& B1),LEFT(A2,FIND("/",A2,FIND("/",A2,1)+1))& B1 & " は日付ではありません") としてみてください。

noname#243819
質問者

お礼

回答7で解決しました ありがとうございます

noname#243819
質問者

補足

同じエラーがでます

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

=DATE(LEFT(A2,4),MID(A2,6,2),B1)

noname#243819
質問者

お礼

回答7で解決しました ありがとうございます

noname#243819
質問者

補足

回答1と同じエラーになります

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

セルB2の書式を日付にして =DATEVALUE(LEFT(A2,8)&B1)

noname#243819
質問者

お礼

ありがとうございます

noname#243819
質問者

補足

#VALUE! と、でました。 他のセルは標準でいいんですよね?

関連するQ&A

  • Excelで日付を抜き出したい

    画像のようにA2~A3に文字列で日付が入力されています。 B2:C3に日付形式でA2:A3に入力されている日付を西暦をつけて抜き出したいと考えています。 B2:C3にはどのような式を入力すればいいでしょうか。

  • Excelで違うシートから日付を引っ張ってきたい

    すいませんが教えてください。 EXCELでAのシートとBのシートがあって、 Aのシートに日付を入力していきます。 その日付をBシートに引っ張ってきたいのですが、 ='Aシート'!A2 とBシートのA2に入れると Aシートの空白セルでは 「1月0日」となってしまいます。 空白セルは同じように空白セルにしたいのですが、 やり方がわかりません。 よろしくお願いします。

  • エクセルの1シートを項目別に別シートへ分ける方法

    エクセル2010で1シートのデータを項目別に別シートへ自動的に分割する方法で困っています。 検索するとマクロを使うと書いていますが、マクロはほとんど使ったことが無いのもあって、わかりませんでした。 シート1 A列(日付8ケタ+商品番号6ケタ) B列(売上額) 20130515000004           300 20130515000006           100 20130518000004           300 20130519000001           500 20130519000004           300 ・・・                   ・・・ をA列の日付部分上8ケタを使って日別にシートを分け、 シート名をuriage20130515(uriageと日付8ケタ)という名前にしシート名+CSV形式で保存したいです。 シート2 シート名:uriage20130515 A列         B列 20130515000004 300 20130515000006 100 シート3 シート名:uriage20130518 A列         B列 20130518000004 300 シート4 シート名:uriage20130519 A列         B列 20130519000001 500 20130519000004 300 このように自動で別シートに分割した上で、シート名CSV形式で保存まで自動でできるとありがたいです。 自動化できるならシートを分割するマクロ、シート名でCSV保存するマクロが一つのマクロになっていても、分かれていてもOKです。 このようなことはできますか? よろしくお願いします。

  • エクセルのcsv保存で。。

    前と同じような質問ですみません。。。 エクセルのSheet5をcsv形式で保存する際、 名前を付けて保存のダイアログを表示させて、 ファイルの名前を常に「bonaplus.csv」と 既定値で表示させておくようなマクロは できないでしょうか? ※bonaplusの後には作成日付を入力します。 ※csvファイルを作成した後に元のエクセルファイルの  保存になります。

  • 日付の同じものを並べる。(エクセル2000)

    エクセル2000で表1は2行目を先頭行として、下の数字が入力されています。     A         B 2  2005/7/15     4 3  2005/7/8      5 4  2005/7/1      3 5  2005/6/24     5 6  2005/6/17     8 7  2005/6/10     8 また10行目を先頭行として表2は下の数字が入力されています。 10 2005/7/8 10 11 2005/7/1 12 12 2005/6/24 13 13 2005/6/17 21 14 2005/6/10 22 表1と表2で日付の同じものをまとめたいと思います。 ただし、表2における日付は固定していないので、必ずしもA3=A10とはなりません。 最終的には下の表を作りたいのですが、ご存知の方がいらっしゃいましたらよろしくお願いします。 2 2005/7/15 4      3 2005/7/8 5 10 4 2005/7/1 3 12 5 2005/6/24 5 13 6 2005/6/17 8 21 7 2005/6/10 8 22

  • 日付を文字列ではなく、日付として表示させたいです!

    Excelで下記の数式を使用し、隣のシートから日付(〇〇〇〇/〇〇/〇〇の形式)を 表示させたいのですが、何故か文字列として表示されてしまいます。 (2020/5/20なら43971と表示され、表示形式を「日付」で選択しても変わりません) 日付として表示するにはどうしたら良いでしょうか。 また、同じセルでも日付ではなく、単語が表示されるケースもあるので、その場合は同じ単語が表示されるようにしたいです。 ◆使用している数式 IF(ISERROR(VLOOKUP(G10,Aシート!$B$2:$F$30,5,FALSE)),"",VLOOKUP(G10,Aシート!&B$2:$F$30,5,FALSE)&"") 空欄の時は、0やエラーを表示させないように式に組んでいるので、 もしかしたら、その影響かもしれません... excelにあまり詳しくなく、ご教示頂けましたら助かります。 よろしくお願いいたします。

  • エクセルで「負の日付または時間は####と…

    エクセルで「負の日付または時間は########と表示されます」 これを非表示にしたいのですが、どうしたらよいのでしょうか? 今、やっている内容を伝えますと↓ 一つのエクセルの中に複数のシートを作成しております。 例えば、Aのシートに”年月日”を入力し、 Bのシートへリンクさせ、かつ、一日前の日付にしたいので、 よくある、最後尾に「-1」としました。 そうしたら、Aシートに日付の入力があるときは普通にマイナス1日の表示をしてくれるのですが、 Aシートが空欄の時「#######」と表示されてしまいます。 「###…」を非表示にすることはできないのでしょうか? できるだけ簡単にご説明いただけますと嬉しいです。 宜しくお願い致します。

  • エクセルの表に日付と曜日を表示させたい

    エクセルで表を作りはじめ、現状は以下の通りです。 まずA1には2009/04/01と入力します。 A2~A32へは日付を表示させるため =A1+1 ~=A1+31の式を入力しておいて、セルの書式設定の表示形式で Dとして日付を表示できるようにしました。 B2~B32へは同様の式を入力し、書式設定で AAAとして曜日を表示できるようにはしました。 ところが、この方法だと、1月が31日でない(少ない)場合には最後の部分に翌月の1日などのデータを表示させてしまいます。 これを防ぐ方法はありますか? 式とかの変更はまだまだ可能なので、良い方法を教えてください。お願いします。

  • エクセルマクロで日付検索について

    エクセルのマクロで日付を検索するマクロについて質問です。 ブックAのシート1のA列に A1 2017/3/13 A2 2017/4/1 A3 2017/4/19 A4 2017/5/16 A5 2017/7/17 A6 2017/9/5 というような日付が入っています。 ブックBのシート1のA1セルに2017/6/3と入力してマクロを実行した際に その日付に一番近い一つ前の日付を探し、見つけた日付のB列のセルを ブックBのシート1のA2セルに表示したいです。 今回の例であれば2017/6/3に対してブックAのシート1のA列はA4セルが当てはまり その当てはまったA4セルの1つ横のB4セルの内容をブックBのシート1のA2セルに表示するということです。 よろしくお願いします。

  • エクセルの日付(130101)を(2001/1/1)にする方法

    現在日付を130101と入力している物を2001/1/1にしたいのですが、いい方法を教えて下さい。 元はTXTデータをエクセルに取り込んでいます。130101のセルを日付タイプに変更すると年数が変になります。 最終的にはTXTをCSVで出力したいです。 よろしくお願い致します。

専門家に質問してみよう