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日 と表示させるにはどのようにしたらいいでしょうか。
(今回は、和暦ではなく西暦表示をしたいです。)
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
・・・問題を先送りしただけでしたか。
>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
あとはこのセルの書式を西暦表示の日付にすればよい。
前回は元号で表示するように指定されているだろ。
実際に数式を作るときは上記のような手順で他のセルに分解した状態で作成し、最後にまとめるようにすると間違えることがない。
No.4
- 回答日時:
》 例えば、20151005とシート名に入力して 2015年10月13日 と表示させる…
シート名が「2015年10月5日」もどきなのに、セルに「2015年10月13日と表示させる」その心は何ですか?
「日付を追加する場合」などと訳が分からないことを仰って、血迷っていませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) エクセルでセルの日付を和暦表示設定にしたらおかしなことに? 3 2022/05/25 11:47
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Excel(エクセル) Excelマクロ(VBA)CELL形式とA1形式の使い分け 6 2022/08/27 23:35
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
Excelで半年後の日付を計算したい
-
西暦や和暦の表示をyyyymmdd表...
-
入力後に日付順になるように自...
-
日付だけを変更して印刷(Excel)
-
エクセルでENTERを押すと数式が...
-
エクセル関数で日付かどうかの...
-
エクセル 当番表の作り方 エク...
-
エクセルのセルにカレンダーを...
-
エクセルで数字列の間に『/』を...
-
Excelで、年だけの「西暦」から...
-
Excelで8/26等の日付を全てその...
-
ワード差込について
-
エクセル 平日のみ連絡印刷
-
日付入力→指定のセルの色を塗り...
-
日付を入力したセルをファイル...
-
excelで月末日を判定したい
-
VBAでセルに入っている日付をシ...
-
ファイルのオープン時に今日の...
-
エクセル グラフ 軸の日付表記...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
入力後に日付順になるように自...
-
日付だけを変更して印刷(Excel)
-
Excelで半年後の日付を計算したい
-
エクセルでENTERを押すと数式が...
-
エクセル 当番表の作り方 エク...
-
エクセルで数字列の間に『/』を...
-
エクセル関数で日付かどうかの...
-
Excelで、年だけの「西暦」から...
-
エクセルのセルにカレンダーを...
-
日付入力→指定のセルの色を塗り...
-
☆Excelエクセルで入力した日の...
-
Excelで8/26等の日付を全てその...
-
◆ EXCEL自動入力日付を自動で...
-
ファイルのオープン時に今日の...
-
Excelで、本日、前日、1週間前...
-
EXCELで直近の日付を抽出する関数
-
エクセルで日付入力欄を作成し...
-
エクセルで、曜日から日付を呼...
-
エクセルで1年後の月末を表示さ...
おすすめ情報