- ベストアンサー
異なったセルに入っている「年」「月」「日」データから年月日データを生成する関数は?
お世話になります。 関数で以下のようなものを作りたいと思います。 セルA1,B1,C1にそれぞれ2008、8、4と「年」「月」「日」データが入っています。 D1に関数を入力することによってD1の内容を「2008/08/04」というように年月日のデータに換算したいのです。 次の条件を加えてください。 ●生成した年月日データが「日付としてありえないもの」にならないように、年、月、日の元データが入っているA1,B1,C1の内容については人為的チェックを行う。よって生成する関数側でそれらのチェックは不要。 (ただし、チェックも簡単にできるよ、という場合は盛り込んでください) ●生成されたデータを元にして曜日を求めたり、任意の2日を選んで経過日数を計算したり、和暦に変換するなどしたいので、「生成された結果そのものがすでに年月日型」であってほしい。 (よって単純に&マークで連結しただけではダメ・・・・ですよね) ●年月日の区切りは"/"記号で。月、日が一桁の場合は10の位に0を挿入していかなる日付も"/"記号含めて10桁で表記したい。 いただいたコメントには必ずお礼コメント差し上げます。 もっとも要望どおりの回答には必ずポイントを差し上げます。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
D1セルに=DATE(A1,B1,C1)と入力します。表示は2008/8/4のように表示されますので「セルの表示形式」の「ユーザー定義」でyyyy/mm/ddと入力します。
その他の回答 (3)
- WWolf
- ベストアンサー率26% (51/192)
こんにちは。 条件1.●生成した年月日・・・不要。(ただし、チェックも簡単にできるよ、という場合は盛り込んでください) 完全チェックとはなりませんが A1セルの入力規制で”整数”、”次の値以上”、”1900” B1セルは同様な方法で1~12の間 C1セルも同様で1~31の間 に規制する事である程度は可能。 この方法での問題は2月31日などを許す事。2,4,6,9月のチェックは無視です。 条件2.●生成されたデータ・・・年月日型」であってほしい。 これは他の回答者さんと同様 D1セルに =Date(A1,B1,C1) D1セル書式設定は yyyy/mm/dd aaaa ge/mm/dd もありかも? 条件3.●年月日の区切・・・10桁で表記したい。 条件2の書式設定にて解決。
お礼
ご回答ありがとうございました。 参考にさせていただきます。
- P5Q
- ベストアンサー率40% (86/210)
D1セルとして =IF(OR(B1>12,C1>31),"???",A1&"/"&IF(B1<10,"0"&B1,B1)&"/"&IF(C1<10,"0"&C1,C1)) で、月が12より大きい場合または、日が31より大きい場合は???表示。 後は、ご希望通り。 E1セルに =DATEVALUE(D1) とするとシリアル値も出せます。
お礼
ご回答ありがとうございました。 参考にさせていただきます。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
=date(年,月,日) ・チェックは自動。2009年8月0日は2009年7月31日になる。 ・当然日付シリアル値の出力 ・自分で書式を選択すること。"yyyy/mm/dd"でいいでしょう。
お礼
ご回答ありがとうございました。 参考にさせていただきます。
お礼
ご回答ありがとうございました。 参考にさせていただきます。