- ベストアンサー
Excel(エクセル)自動入力と入力前非表示
- 4月~12月を前年、1月~3月を今年とするために、年セル=IF(MONTH(日付セル)<4,2017,2016)とした場合、日付セルが空欄の場合に表示させない方法はありますか?
- 後から行を挿入した場合に、年セル=IF(MONTH(日付セル)<4,2017,2016)と自動に入力される方法はありますか?
- マクロやVBAを使わずに、Excelで日付セルを空欄の場合に非表示にする方法と、行を挿入した際に数式を自動入力する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 後から行を挿入した場合に、年セル=IF(MONTH(日付セル)<4,2017,2016)と自動に入力される方法はありますか? ここが主文でしょうか。 > ※ マクロやVBAは使えません。初心者です。 のであれば、回答は「基本的にはありません」しかありません。 条件が満たされると「最終データの下に新規データを追加するとき」に 式が自動的にコピーされるのですが、表の途中に挿入の場合はこれができません。 面倒でも、コピー貼り付けまたはフィルしてやるのが近道のようです。 さてさて。 なるほど確かに勘違いをされている様子。 > 自動的に月日になるので。 いえいえ、エクセルは自動的に「年月日」で解釈しますよ。 標準の状態だと、エクセルのセルに「1/20」と素直に打ち込むと、 今年の「年」が補填されて「2017/1/20」と解釈されます。 今年に入ってから入力したのであれば、 「5/25」→「2017/5/25」ですし、「7/18」→「2017/7/18」です。 MONTH関数の兄弟、YEAR関数でご確認ください。 ※当然、表示形式を「yyyy/m/d」でも確認できますよ。 なので、質問者さんのような「年」の取り方はものすごく危険です。 ここも面倒でも「年月日」として「2016/5/25」など入力すべきですね。 これが日本では一般的と思われる「年度」を取るための式、 =IF(MONTH(日付セル)<4,YEAR(日付セル)-1,YEAR(日付セル)) さらに > まだ日付を入力していないのに、2017と表示される。非表示にしたい。 を加味して =IF(日付セル="","",IF(MONTH(日付セル)<4,YEAR(日付セル)-1,YEAR(日付セル))) としてやるなら、なんとか意味があるものにできそうです。 「月日」と「年月日」、「年」と「年度」、 細かい違いに見えて、実は大きな違いを生みますので注意が必要です。 以上、参考までに。
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
>日付セルが空欄の場合に表示させないようにする方法はありますか? IF関数の入れ子構造にすれば可能です。 =IF(日付セル="","",IF(MONTH(日付セル)<4,2017,2016)) >※ 日付は、1/20というように、スラッシュで入力しています。自動的に月日になるので。 あなたはExcelの挙動を誤解しています。 現時点でB2セルへ1/20と入力するとExcelは勝手に2017/1/20と言う日付が入力されたと判断します。 その値の実態は1900/1/1から2017/1/20までの日数(42755)です。 しかし、値の表示形式は月/日の入力なのでExcelが勝手に表示形式をユーザー定義のm"月"d"日"に変更するため1月20日と表示されます。 例えば昨年(2016年)5月にB3セルへ5/25と入力すると2016/5/25と言う日付と解釈されます。しかし、今年(2017年)になってから5/25と入力すると2017/5/25と言う日付と解釈されてしまいます。 そのような性質を知らずに見えている値をそのまま鵜呑みにしていることが誤りのもとになっています。 Excelの解説書を購入して学習することをお薦めします。
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルを学び始めると、すぐ関数を使うことになる場合が多い。 すると式の複写(多いのは、行ごとに複写)を使う場合に進む。 そしてある範囲(例B列)の余分な行(データがまだ入ってない行。データだ入ると見積もられる行)まで前もって式を複写する場合が多い。 その時に、注目するセルは未入力たと、入れた式の結果を出そうと(システムが)すると、エラーになり、エラーの表示が出る場合が多い。 それを避けるために式の先頭部に =IF(注目するセル="","",本格的処理の式)と式を作って、入力前の行では、結果の出るセルを空白にすることが行われる。 これを使えばよいのでは。 ここに質問するより、周りにエクセルを少し使う人が居れば、その人に聞く方がよいと思う。 それと質問者が初心者なら、日付は8桁(/を入れて10桁)入力することにして、他のエクセル経験を積んで、そののち他に良い方法がないか考えた方がよいよ。 エクセルの使用経験を少し積まないと、質問の内容もうまく表現出来てない場合が多いくなるから。エクセルなどについて、本当にこのコーナーが生きてくるのは、中級以上の人にとってだと思う。本やWEB記事にも書いてなくて、行き詰まった場合などの。
- panacon
- ベストアンサー率31% (214/679)
年の最初のセルをA1、日付の最初のセルをB1としたときに、A1に下記の式を入れてみてください。 =IF(B1="","",IF(MONTH(B1)<=3,2017,2016))