• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで特定の日付以降の非表示)

Excelで特定の日付以降の非表示

このQ&Aのポイント
  • Excelを使用してシフト表を作る際、特定の日付以降を非表示にする方法を教えてください。
  • 月末日が変動する月(2月や9月など)でも、自動入力で指定した日付以降を非表示にする方法を教えてください。
  • セルに指定日付から非表示にしたい日数を足して、その範囲を非表示にする関数を利用することで、特定の日付以降を非表示にすることができます。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.7

#4、cjです。お礼欄のリクエストへのレスです。 エラーになる状況がこちらでは判らないのですが、 何度かシミュレーションして手順を詳細に改めました。 数式についても、#4投稿時に編集ミスがあったので、 それぞれ一文字(絶対参照記号)だけ追加しています。   Xセルの計算結果をYセルで参照して、   そのYセルの計算結果をZセルで参照して、   そのZセルの計算結果を、、、 というような数珠つなぎ状態は 表計算アプリケーションでは、なるべく避けた方が好いです。 でもまぁ、これは私の主義のようなものであって、 「、、、でなければならない」というような意味では決してありませんが、 継続的に扱うブックなら、私はそういう数式を残しません。 私の手順は結構面倒臭いと思いますけれど、それでも、 仕上がった数式の計算ステップ数や参照のあり方などは シンプルなものになるように書いています。 絶対参照で書いていますが、 こちらは主義というより好みに近いでしょうけれど、 自分ならこうする、というものです。 こちらではエラーを再現することが出来ませんので、 もし、またうまく行かなかったら、もう少し詳しい状況を教えてください。 念の為ですが、もしも、セルに ######## のように表示されているということでしたらば それは、セルの幅とフォントサイズを調整すれば正しく表示されます。 ◆手順以下 (D3 セルには事前に数式=DATE($C$2,$D$2,11)が設定してある前提です。) Excel対象ブックを開いておき、当ページを表示 1◆【12日以降の27日間の数式となる文字列を数式設定】   当ページから下の数式をコピー ※前後に空白や改行を入れないよう注意     ="=$D$3+"&COLUMN()-4   [Alt]キー を押下げたまま [Tab] キー押下げ   → Excelを表示   [数式バー]左にある[名前ボックス]に     E3:AE3   とタイプして[Enter]キー    → E3:AE3 を選択状態に   [F2]キー押下げ   → E3セルを編集モードに   (E3セルに入力済の数式がある場合はそのまま消去)   [Ctrl]キー を押下げたまま [V] キー押下げ   → [数式バー]にコピーした数式を貼付け   貼り付けた数式の前後に空白や改行がないか[数式バー]を確認   [Ctrl]キー を押下げたまま [Enter]キー押下げ   → E3:AE3 に数式を確定 2◆【月によっては非表示となるセルに数式となる文字列を数式設定】   [Alt]キー を押下げたまま [Tab] キー押下げ   → Webブラウザを表示   当ページから下の数式をコピー ※前後に空白や改行を入れないよう注意     ="=IF(DAY(DATE($C$2,$D$2+1,0))<"&COLUMN()-3&","""",$D$3+"&COLUMN()-4&")"   [Alt]キー を押下げたまま [Tab] キー押下げ   → Excelを表示   [数式バー]左にある[名前ボックス]に     AF3:AH3   とタイプして[Enter]キー    → AF3:AH3 を選択状態に   [F2]キー押下げ   → AF3セルを編集モードに   (AF3セルに入力済の数式がある場合はそのまま消去)   [Ctrl]キー を押下げたまま [V] キー押下げ   → [数式バー]にコピーした数式を貼付け   貼り付けた数式の前後に空白や改行がないか[数式バー]を確認   [Ctrl]キー を押下げたまま [Enter]キー押下げ   → AF3:AH3 に数式を確定 3◆【数式の戻り値文字列を数式に変換】   [数式バー]左にある[名前ボックス]に     E3:AH3   とタイプする    → E3:AH3 を選択状態に   [Ctrl]キー + [C] キー押下げ   → E3:AH3 をコピーモードに   [Alt]キー を押下げたまま [E] [S] [V] キー押下げ   → [値のみ貼付け]のダイアログ選択   [Enter]キー   → [値のみ貼付け] を実行   [Ctrl]キー + [H] キー押下げ   → 置換ダイアログ表示、E3:AH3 を置換待機状態に   置換ダイアログの [検索する文字列] に、半角で一文字だけ = と入力   置換ダイアログの [置換後の文字列] に、半角で一文字だけ = と入力   置換ダイアログの [すべて置換] ボタンをクリック   → 置換による数式化完了 手順以上◆ 以上の手順のより ◆◆最終的な数式は   D3 は手を加えず元のまま     =DATE(C2,D2,11)   E3:AE3 は新たに     =$D$3+1、=$D$3+2、=$D$3+3、、、=$D$3+27   AF3:AH3 はそれぞれ     =IF(DAY(DATE($C$2,$D$2+1,0))<29,"",$D$3+28)     =IF(DAY(DATE($C$2,$D$2+1,0))<30,"",$D$3+29)     =IF(DAY(DATE($C$2,$D$2+1,0))<31,"",$D$3+30) のようになります◆◆ 以上です。

kirisame00
質問者

お礼

遅くなって申し訳ないです。 忙しくて中々先に進められなくてチェックする暇がなかったです。 すいません。 様々な方法を知ることが出来て、すごく勉強になりました。 シンプルなものから、他の事象に対しても有効そうなものまで。 このなかからベストアンサーを選ぶのはすごく迷いましたが、お礼に対してもう一度返信してくれたということ、より細かな手順の提示というところで、こちらの方をベストアンサーとさせていただきます。 他の皆様のやり方もすべて挑戦してみて、無事できました。 本来なら個別でお礼という形を取るべきですが どれも驚きの連続でしたし、お礼の回答が一辺倒になってしまうと思いましたので こちらの項目でまとめて皆様に御礼を申し上げます。 回答していただいた方々ありがとうございました。 まだ、いくつか詰まってるところがありますので、また質問することになると思います。 その際はまた機会がございましたらよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (9)

回答No.10

ご覧のとおり様々な方法があって、If 文というより IF 関数を使う方法、EDATE(恐らく expiration date)関数を使う方法、条件付き書式を使う方法…が出ましたね。 その他に、へそ曲がりな(笑)方法としては、翌月 11 日に達したセルでは「0」を算出し、ゼロについてはセルの書式(表示形式)で非表示にするという手もあります。 E3 =(max($D3:d3)<=date($C2,$D2+1,11)-2)*(d3+1)   あるいは   =(0<d3)*(d3<=date($C2,$D2+1,11)-2)*(d3+1)   ※「date($C2,$D2+1,11)」という部分は「edate($D3,1)」と書き換えてもオッケー。    ただし Excel 2003 以前においては、EDATE はアドイン「分析ツール」の関数。 と記入。通常の日付の書式のままだと、ご存じかもしれませんが、「0」は「1900/1/0」といった感じに表示されます。ユーザー定義書式として「[=0]"";d」などを設定すると、ゼロは消えます。 あるいはセルの書式は変更せずに、Excel のオプションの詳細設定で「ゼロ値のセルにゼロを表示する」のチェックを外すということでも可能です。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.9

[No.8]へのコメント、 書き漏らしましたが、セル D3、E3 の書式は事前に d に設定しています。 イワズモガナなこととは思うけど、為念。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.8

セル E3 に次の[条件付き書式]を設定   数式が    =E3>DATE($C2,$D2+1,0)   フォント色  白 セル E3 に数式 =D3+1 を入力して、此れを右方へズズーッとドラッグ&ペースト

全文を見る
すると、全ての回答が全文表示されます。
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.6

>IF文を使えばいいのか、それとももっと別の関数を使うべきなのかわかりません。 IF関数を使いますが入れ子構造にしないと#VALUEになるセルが発生します。 D3セルは良いとして、E3セルには次の式を使うと良いでしょう。 =IF(ISTEXT(D3),"",IF(AND((YEAR(D3+1)-YEAR($D3))*12+MONTH(D3+1)-MONTH($D3)>0,DAY(D3+1)>10),"",D3+1)) 最初のISTEXT(D3)は直前のセル(左側)が文字列のとき#VALUEエラーが起こるので、それを回避するためです。 AND((YEAR(D3+1)-YEAR($D3))*12+MONTH(D3+1)-MONTH($D3)>0,DAY(D3+1)>10)は初日の月数と翌月1日以降の月数を算出して翌月の10日までに該当するか否かを判定するための条件です。 この式には12月11日から1月10日までについても対応しています。 尚、10月分を4行目に設定するときはD4セルに次の式を使うと良いでしょう。 =DATE(YEAR(D3),MONTH(D3)+1,11) その時、E4の式はE3の式を下方にコピーすればそのまま使えます。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんにちは! すでに色々回答は出ていますので、参考程度で・・・ Excel2007以降での方法になりますが、 E3セルに =IFERROR(IF(D3+1<EDATE($D3,1),D3+1,""),"") という数式を入れ、AH3セルまでオートフィルでコピーしてみてください。m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.4

こんにちは。お邪魔します。 ついでに全体の数式を軽~いものに直しましょう。 "数式を作る数式"を使うので、手順、確認しながら進めてください。 ◆手順以下  E3 に ="=D$3+"&COLUMN()-4  AE3 まで右にオートフィル  AF3 に ="=IF(DAY(DATE($C$2,$D$2+1,0))<"&COLUMN()-3&","""",D$3+"&COLUMN()-4&")"  AH3 まで右にオートフィル  B3:AH3 を選択し、そのまま連続して    コピー    値のみ貼付け    置換機能      検索する文字列  =      置換後の文字列  = 手順以上◆ ◆◆最終的な数式は  D3 に =DATE(C2,D2,11)  E3:AE3 に =D$3+1、=D$3+2、=D$3+3、、、=D$3+27  AF3:AH3 に =IF(DAY(DATE($C$2,$D$2+1,0))<29,"",D$3+28) =IF(DAY(DATE($C$2,$D$2+1,0))<30,"",D$3+29) =IF(DAY(DATE($C$2,$D$2+1,0))<31,"",D$3+30) のようにします◆◆

kirisame00
質問者

お礼

お早い回答ありがとうございます 皆様とはちょっと異なるやり方ということで今試していたのですが、どうも置換機能の場所でエラーを起こしてしまいますね。 このやり方はできれば会得しておきたいのでまた新たに回答いただければと思っております。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

翌月の11日以降の日付を空白にすればいいので、翌月11日は =DATE($C$2,$D$2+1,11) で求められます。なので D3=DATE($C$2,$D$2,11) E3=IF(D3+1<DATE($C$2,$D$2+1,11),D3+1,"") としてE3の式をAH3までコピーしてください。

kirisame00
質問者

お礼

お早い回答ありがとうございます。 IF文を使ってやる方法がメインとなるみたいですね。

全文を見る
すると、全ての回答が全文表示されます。
  • sora1515
  • ベストアンサー率58% (54/92)
回答No.2

IF関数でどうでしょうか。 AE3に=IF(AD3="","",IF(DAY(AD3)>9,"",AD3+1)) これをAH3までオートフィル。 AE3は閏年最小のセルAH3は31日までの月を想定です。

kirisame00
質問者

お礼

お早い回答ありがとうございます。 すごくシンプルでわかりやすいです。 これはすぐに使えそうですね。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>10日以降の日付を表示しない やり口は様々ありますが割と文字通りに計算してみると D3に =IF(DATE($C$2,$D$2,COLUMN(K3))>DATE($C$2,$D$2+1,10),"",DATE($C$2,$D$2,COLUMN(K3))) と記入、右にコピー。 #実際には >D3に=DETA(C2,D2,11)  E3に=(D3+1)とし、F3・・=(E3+1) そのやり方で、AE列までのセルは何の支障もなく計算できています。つまりここまでは10日を超えてるか、気にする必要は全然ありません。 実際にはAF列からAH列までの3つのセルだけについて、10日を超えているかどうかを個別にチェックすれば良いだけのお話です。 もっともこの手のご相談では、最初からみんな同じ数式が並んでる方が「気持ちイイ」のでしょうか、前述のようなやり方を好まれるかたがほとんどなんですけどね。

kirisame00
質問者

お礼

お早い回答ありがとうございます。 回答してくださったかたの方法を今一つずつ試しているところなのでベストアンサーはまだつけられません。 自分はどちらかと言えば、要所要所で複雑であったり詳しく書かれてるほうがいいんですけどね。 なんというか全部コピーだと後々に開いた時に困ったり、他人がみたときにもわかりやすい方がいいですしね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル2010で日付、曜日の表示法

    エクセル2010で当日の日付、曜日を一つのセルに【10月8日(月)】と表示させるにはどの様な関数を用いれば良いのでしょうか。また、連続した日付、曜日はオートフィルすれば表示できますか。合わせてお教え下さい。お願いいたします。

  • エクセル オートフィルを使った日付について

    こんにちは。 今、月ごとの勤務表を作成しています。 シート1枚につき1月分、合計12シートあります。 表の行数は各月すべて31日分(31行)作成してあります。 A列に「2005/1/1」と入力し、オートフィルで月末まで入力しているます。 31日ある月は表の最後の行までオートフィルを使っても問題ないのですが、29日とか30日の月は翌月の1日まで入力されてしまいます。(下記参照) (シート1)    (シート2) 2005/1/1     2005/2/1  ・        ・  ・        ・  ・        ・  ・       2005/2/28  ・        2005/3/1  ・        2005/3/2 2005/1/31    2005/3/3 オートフィルを使ってコピーした場合に、月末から先の日付を表示させないようにする関数はありませんでしょうか? よろしくお願い致します。

  • Excelで日付を自動表示させたい

    Excelのシートで2行目に1日から末日までの日付が入っています。 他のファイルでは1行目に入力されている年と1月を参照して、Date関数を使って29日以降の日付は自動で表示されるようになっています。 ところが今使っているファイルでは1行目にタイトルが入っていて、年月は別のシートに次のように入力されています。 【○○店売上2008.11】 mid関数を使って数式を作ってみたのですが、29日以降の数字は表示されません。真っ白のままです。 どのようにしたら別シートの年月を参照する形で日付を自動表示させられるのでしょうか?できればタイトルが変えられないのでmid関数でなくても何らかの方法で取り出したいです。 どうかよろしくお願いします。

  • 数式を使用して日付を表示させたい

    「A1」に「10/1」と入力すると「1日・2日・3日・・・・・・31日」と、31日で終了するように、 「A31」まで自動的に日付が表示されるように設定する数式(オートフィルでなく)があれば教えてください。 (尚、日付は「1日・2日・3日・・・・」の形で表示させたい。) 「B1」には曜日が「月」と表示するように数式を入力しています。 「B1」にも上記のように、月末まで「月・火・水・・・・」と表示させる数式があれば教えてください。 なるべく早く、回答を頂ければうれしいのですが・・・ 宜しくお願いいたします。

  • Excelで日付を来年の2013年にしたい

    Excel2010を使って来年の小遣い帳を作っています。 日付欄に「1/1」と入力したら「1日」と表示するようにユーザー設定をしています。 しかし、この場合のセルの値は「2012/1/1」になります。 来年用なので「1/1」と入力するだけで「2013/1/1」の値になるようにできないでしょうか? 最初のセルだけ「2013/1/1」と入力して「1日」と表示させるのですが、それ以降も「2013」を覚えさすことはできないでしょうか? 隣のセルに「=WEEKDAY()」関数で曜日を入力しているので「2013年」の値が必要なのです。 日付が続き番号ならオートフィルでコピーするのですが任意の日付入力です。 本当は「1」と入力したら「1日」、「5」と入力したら「5日」と表示させたいのですが・・・。(2013年の) どうしても毎回「2013/*/*」と入力しないとダメでしょうか? 宜しくお願いします。

  • エクセル関数 日付によって表示変更

    エクセル関数 日付によって表示変更 A1のセルに日付を入力する場合1日から15日まではB、15日以降はCとA2のセルに表示するためにはどうすればよいでしょうか? もちろん月は変更します。 宜しくお願いいたします。

  • EXCELで月を入力して、日付を表示させる方法

    こんにちは。 EXCELの関数についてお詳しい方どうぞよろしくお願い致します。 EXCELで月を入力すると、自動で日付を表示させるようにしたいのです。 どのようにしたらよろしいでしょうか? 例えば、以下のようです。   A 1 2009/9/1 ← 手動で入力 2 3 2009/09/01 ← 関数で自動表示 4 2009/09/02 ← 関数で自動表示 5 2009/09/03 ← 関数で自動表示 6 2009/09/04 ← 関数で自動表示    ・    ・    ・ 32 2009/09/30 ← 関数で自動表示 できれば、30日の月と、31日の月も自動で判別して表示できるような関数だと嬉しいです。 よろしくお願い致します。

  • Excel 条件付き書式 指定日以降 白抜き

    タテにメンバー氏名、ヨコに11日から翌月10日までの勤務表作成にて 開始日更新に合わせて翌月11日以降を日付/曜日とも、白抜きにしたいのですが? 表部分 : A3~AH9 【A+B列には氏名】 【日付表示行 C3~AH3 ユーザー定義書式 : d】 C3に 2017/1/11 D3に=C3+1 これをAHまでオートフィル 【曜日表示行 C4~AH4 ユーザー定義書式 : aaa】 C4に=C3 これをAHまでオートフィル ◆日付/曜日セル色づけ 条件付き書式 C3~AH4 祝日 : 数式 =COUNTIF(祝日,C$3)           ※別シートに「祝日」の日付を書き込んだデータ作成にて C3~AH4 日曜 : 数式 =WEEKDAY(C$3)=1 C3~AH4 土曜 : 数式 =WEEKDAY(C$3)=7 上記方法にて、C3に今月度の開始日を入れるとC3~AH4に 自動で日付と曜日の表示、色付けがされるようにしてあるのですが このC3更新に合わせて翌月11日以降が白抜きになる方法を教えてもらえませんか? ※添付画像の黒枠部分を月更新にて自動で白抜きにさせたいのですが? ・・・よろしくお願い致します。

  • シリアル日付を表示させない方法

    エクセル2007で日報を張り付け月報を作っています。日報の日付はシリアル値を2010/3/23と表示しています。この日付が入っているセルを別シートにINDIRECT関数で返しています。月報の日付欄の設定は「日付」 で3/23と表示させこのセルをオートフィルすると日報を張付けていない セルには1/0と表示されます。日報を張付けていないセルに何も表示しないか0 としたいのですが、出来るのでしょうか。 よろしくお願いします。

  • エクセルの計算式で日付の更新

    D3(当年度日付) D6(車検日) D7(3ヶ月(1)) E6(3ヶ月(2)) E7(3ヶ月(3))で、D6に入力すれば各D7 E6 E7が表示されるには?  但し、D7以降はD3より一番近い日数順で、かつD6からの3ヶ月毎にしたいのですが。 仮に、D3(H21年4月1日)、D6(H21年9月28日)入力すると、D7がH21年6月25日 E6がH21年12月27日 E7がH22年3月27日となるようにしたいのですが・・・ 現在はD7では=IF(COUNT(D6)=0," ",D6+90)にしてます。

専門家に質問してみよう