プロが教えるわが家の防犯対策術!

https://oshiete.goo.ne.jp/qa/9079100.html

にて質問させて頂き、
> 「平成27年10月分」などと表示出来れば「シート名を取得」セルが不要ならば、いきなり次式を任意のセルに入力することも可。当該セルが必要なら、それを参照すると式が簡単になるだけ。
> =(LEFT(RIGHT(CELL("filename",A2),LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2))),4)&"/"&MID(RIGHT(CELL("filename",A2),LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2))),5,2)&"/1")+0
> 書式は ggge"年"m"月" とでも。
>
> なお、上式中の A2 は任意のセルアドレスで構いません。例えそこに何か入力されていても、エラー表示されていても、です。
のご回答が一番状況にあったのですが、
日付を追加する場合はどのようにしたらいいでしょうか。
(関数を読み取って変更できませんでした。。)

例えば、20151005とシート名に入力して
2015年10月13日 と表示させるにはどのようにしたらいいでしょうか。
(今回は、和暦ではなく西暦表示をしたいです。)

よろしくお願いします。

A 回答 (5件)

・・・問題を先送りしただけでしたか。



>20151005とシート名に入力
>2015年10月13日 と表示
8日後の日付にしたいということか?

文字列の中から「年」「月」「日」を切り出すわけなのだが…。
FIND関数やMID関数がどのように使われているのかをよく考えてみよう。
これが分からなければ、疑問は解決しない。
(質問文にある数式はちょっと分かり難いだろう。分かりやすいようにMID関数メインで数式を組むと以下の説明のようになる)
目の前にある疑問を先送りするのであれば、下記に示す一番最後の数式を使えばよい。
急いでいるようなので、まずはコピーだ。
理解し応用ができるようになりたいのであれば以下の説明を読んでください。

=CELL("filename",A2)
これはA2セルのあるシートの名前を取得するこの関数式の要(かなめ)だ。

=MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1,4)
これでシート名から「年」に相当する文字列を切り出す。
FIND関数はCELL関数で返ってきた文字列からBook名を示す [ ] の最後の「]」が文字列の先頭から何番目にあるかを調べている。
同様に「月」と「日」を切り出す。
=MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1+4,2)
=MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1+4+2,2)
※前回は「日」がなく、○年○月1日にするため「日」に相当する箇所に「”/1”」を加えている。

この関数を「/」区切りの日付形式の文字列にする。
=MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1,4)&"/"&MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1+4,2)&"/"&MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1+4+2,2)
※シリアル値にする必要がなければ、ここで年月日を加えた文字列にしてもよい…と自分は前回の質問で答えている。

さらにこれをシリアル値にするため、値の変わらない四則演算に加える。
(0を足したり引いたり、1を掛けたり割ったりする)
これは日付と判断できる文字列を数値演算するとシリアル値に置き換えて計算をするというExcelの機能を利用している。
しかし8日後の日付にするため更に+8する。

=MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1,4)&"/"&MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1+4,2)&"/"&MID(CELL("filename",A2),FIND("]",CELL("filename",A2))+1+4+2,2)+8

あとはこのセルの書式を西暦表示の日付にすればよい。
前回は元号で表示するように指定されているだろ。

実際に数式を作るときは上記のような手順で他のセルに分解した状態で作成し、最後にまとめるようにすると間違えることがない。
    • good
    • 1
この回答へのお礼

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

お礼日時:2015/10/09 17:11

№3です。


あー、日付が違うんですね…
単純に8日後でしたら、式の後に「+8」を付けておいて下さい。もっと他のルールがあるならそれをきちんと書かれた方がいいですよ。
    • good
    • 0
この回答へのお礼

ありがとうございました。
実は、前の質問と類似していただけで、日付は+8ではありませんでした。。皆さま、まぎらわしくてすいませんでした。

お礼日時:2015/10/09 17:12

》 例えば、20151005とシート名に入力して 2015年10月13日 と表示させる…


シート名が「2015年10月5日」もどきなのに、セルに「2015年10月13日と表示させる」その心は何ですか?
「日付を追加する場合」などと訳が分からないことを仰って、血迷っていませんか?
    • good
    • 0
この回答へのお礼

特に血迷ってませんでした。ありがとうございました。

お礼日時:2015/10/09 17:11

シート名に日付まで入るなら、前の質問にあったシート名を抜き出す式を使って



=TEXT(RIGHT(CELL("filename",A2),LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2))),"0000!/00!/00")*1

でシリアル値になるので表示形式でお好みのものを選べばいいかと。
でも、まずは式を理解してご自分で活用できるようになるのが一番ですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2015/10/09 17:11

標示させるセルを選択→右クリック→プルダウンメニューから「セルの書式設定(F)」をクリック→標示される画面のタブ「表示形式」を選択→分類の欄で


「日付」クリック→希望の種類を選択→OKをクリック・・・当初選択している
セルに入力すれば希望の表示形式で表示されると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2015/10/09 17:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!