Excelの日付と時刻の条件付き書式設定:数式とルール

  • これを共有
Michael Brown

このブログの常連なら、Excelの条件付き書式のさまざまな側面を取り上げた記事をいくつか目にしたことがあるでしょう。 そして今回は、この知識を活用して、平日と週末の区別、祝日の強調、期限や遅れを表示するスプレッドシートを作成します。 つまり、Excelの条件付き書式を日付に適用するのです。

Excelの数式に関する基本的な知識があれば、NOW、TODAY、DATE、WEEKDAYなどの日付と時刻の関数に慣れていることでしょう。 Excelの日付の条件付き書式設定 を思いのままに。

    Excelの日付の条件付き書式設定(組み込みルール)

    Microsoft Excelには、選択したセルを現在の日付に基づいて書式設定するためのオプションが10種類用意されています。

    1. 書式を適用するには、単に ホーム tab> 条件付き書式設定> 強調表示セルルール を選択し 発生した日付 .

    2. のいずれかを選択します。 日付オプション を、ウィンドウの左側部分のドロップダウンリストから、先月から来月までの範囲で選択します。
    3. 最後に、あらかじめ用意されているフォーマットの中から1つを選ぶか、または、「Custom Format」上でさまざまなオプションを選択して、独自のフォーマットを設定します。 フォント , ボーダー 塗りつぶし Excelの標準パレットで十分でない場合は、常に もっと色を... ボタンをクリックします。

    4. クリック よっしゃー そして、その結果を楽しんでください! : )

    しかし、この高速で簡単な方法には2つの重大な制限があります。1) 選択されたセルに対してのみ機能する、2) 条件付き書式は常に現在の日付に基づいて適用される、です。

    Excelの日付の条件付き書式設定式

    セルや行全体を強調したい場合 別のセルの日付に基づき のルールを作成します。 大時化 (つまり、現在の日付から1ヶ月以上)であれば、数式に基づいた独自の条件付き書式ルールを作成する必要があります。 以下に、私のお気に入りの日付のExcel条件付き書式の例をいくつか紹介します。

    エクセルで週末を強調表示する方法

    残念なことに、Microsoft ExcelにはOutlookのようなカレンダーが組み込まれていません。

    Excelのカレンダーをデザインする際、曜日を表示するには=DATE(year,month,date)関数を使います。 年と月の数字をスプレッドシートのどこかに入力し、数式でそれらのセルを参照するだけです。 もちろん、数式に直接数字を入力することもできますが、これは月ごとに数式を調整しなければならないため、あまり効率的な方法ではありません。

    下のスクリーンショットは、DATE関数の動作を示すものです。 =date($b$2,$b$1,b$4) であり、5行目に渡ってコピーされる。

    ヒント:上の画像のように曜日だけを表示させたい場合は、計算式のあるセル(ここでは5行目)を選択し、右クリックで セルの書式設定.> 数字> カスタム の下にあるドロップダウンリストより タイプ のどちらかを選択してください。 ぽっちゃり または ぽっちゃり をクリックすると、それぞれフルネームと略称が表示されます。

    Excelのカレンダーはほぼ完成し、あとは週末の色を変えるだけです。 当然、手動でセルに色をつけるつもりはありません。 Excelに自動的に週末をフォーマットさせるため、条件付きフォーマットのルールを ウィークデイ の式で表されます。

    1. まず、Excelのカレンダーから、週末に影をつけたい場所を選択します。 この例では、$B$4:$AE$10の範囲です。 選択は必ず 第1日付欄 - この例ではB列です。
    2. について ホーム タブをクリックします。 条件付き書式メニュー>新しい罫線 .
    3. 上記のリンク先のガイドで説明されているように、数式に基づいた条件付き書式ルールを新規に作成します。
    4. で、" この式が真となる値をフォーマットする" ボックスに、どのセルが土曜日と日曜日であるかを決定する、次のWEEKDAY式を入力します。 =WEEKDAY(B$5,2)>5
    5. をクリックします。 フォーマット... ボタンをクリックして、カスタムフォーマットを切り替えて設定します。 フォント , ボーダー 塗りつぶし タブをクリックし、さまざまな書式を試してみてください。 よっしゃー ボタンをクリックすると、ルールのプレビューが表示されます。

    では、簡単に説明しますと WEEKDAY(シリアルナンバー,[return_type]) の計算式は、ご自分の表計算ソフトに合わせてすぐに調整できるようになっています。

    • があります。 シリアルナンバー パラメータは、検索しようとする日付を表します。 日付のある最初のセル(この例ではB$5)への参照を入力するのです。
    • があります。 [return_type]です。 パラメータは、週のタイプを決定します(角括弧はオプションです)。 月曜日(1)から日曜日(7)まで始まる週のリターンタイプとして2を入力します。 利用可能なリターンタイプの完全なリストは、こちらを参照してください。
    • 最後に、土曜(6)と日曜(7)だけを強調するために、>5と書きます。

    以下のスクリーンショットは、Excel 2013での結果を示しています。週末が赤くハイライトされています。

    ヒント

    • もし、あなたの会社で金曜日や土曜日など、標準的でない週末がある場合は、日曜日(1)からカウントを開始し、6日目(金曜日)と7日目(土曜日)をハイライトするように、計算式を調整する必要があります。 WEEKDAY(B$5,1)>5 .
    • 横向きのカレンダーを作成する場合は、セルの参照に相対列($なし)、絶対行($付き)を使用します。 しかし、縦向きのカレンダーをデザインする場合は、その逆で、絶対列、相対行を使用します。をクリックすると、下のスクリーンショットが表示されます。

    エクセルで祝日を強調表示する方法

    Excelカレンダーをさらに使いやすくするために、祝祭日も日陰にすることができます。 そのためには、同じスプレッドシートなどに、強調したい祝日をリストアップしておく必要があります。

    例えば、A列に以下の祝日を追加してみました($A$14:$A$17)。 もちろん、すべてが本当の祝日ではありませんが、デモンストレーション用には十分です : )

    もう一度、開くと 条件付き書式設定 > 新ルール 休日の場合、どちらかを使うことになります。 MATCH または COUNTIF 関数を使用します。

    • =COUNTIF($A$14:$A$17,B$5)>0
    • =match(b$5,$a$14:$a$17,0)

    注意:祝日を別の色にした場合、祝日ルールをルールリストの一番上に移動させる必要があります。 条件付き書式設定> ルールの管理...

    以下の画像は、Excel 2013での結果です。

    値が日付に変わったときに、セルを条件付きでフォーマットする

    同じ行の他のセルに日付が追加されたときに、他の値の種類が許可されていない限り、条件付きでセルをフォーマットすることは大きな問題ではありません。 この場合、空白と非空白のためのExcel条件式で説明したように、非空白を強調する式を使用するだけです。 しかし、これらのセルにすでに何らかの値、たとえばテキストがあり、それを変更したい場合はどうすればよいでしょうか?テキストが日付に変更されたときの背景色?

    少し複雑な作業に聞こえるかもしれませんが、解決方法はとてもシンプルです。

    1. まず最初に、日付のフォーマットコードを決定する必要があります。 以下にいくつかの例を示します。
      • D1: dd-mm-yyまたはd-mm-yy
      • D2: dd-mmmまたはd-mmm
      • D3: mmm-yy
      • D4:mm/dd/yy または m/d/yy または m/d/yy h:mm

      日付コードの全リストはこちらの記事で紹介しています。

    2. セルの色を変更したい列、または行を強調したい場合は表全体を選択します。
    3. そして、今度はこのような数式を使って条件付き書式ルールを作成します。 =CELL("format",$A2)="D1" 式中、Aは日付のある列、D1は日付の書式です。

      テーブルに2つ以上の形式の日付が含まれている場合は、OR演算子を使用します(例)。 =OR(cell("format", $A2)="D1", cell("format",$A2)="D2", cell("format", $A2)="D3")

      以下のスクリーンショットは、このような日付の条件付き書式ルールの結果を示しています。

    特定の列の特定の日付に基づく行を強調表示する方法

    2つの日付列(BとC)を含む大きなExcelスプレッドシートがあるとします。 C列に特定の日付(例えば13-May-14)を持つすべての行をハイライト表示したいとします。

    ある日付にExcelの条件付き書式を適用するためには、その日付の 数値 ご存知のように、Microsoft Excelは日付を1900年1月1日から始まる連続した番号で保存します。 つまり、1900年1月1日は1、1900年1月2日は2・・・、14年5月13日は41772として保存されるのです。

    日付の数字を調べるには、セルを右クリックして、次のように選択します。 セルの書式設定>数値 を選択し 一般 の形式で表示されます。 表示された番号をメモして、クリックしてください。 キャンセル というのは、本当は日付の書式を変えたくないからです。

    実はこれが主要な作業で、あとはこの非常に簡単な数式で表全体の条件付き書式ルールを作成するだけです。 =$C2=41772 この式は、テーブルにヘッダーがあり、2行目がデータのある最初の行であることを意味します。

    別の方法として データバリュー 日付を保存されている数値フォーマットに変換する数式、例. =$C2=DATEVALUE("5/13/2014")

    どの処方を使っても、同じ効果が得られます。

    現在の日付に基づいてExcelの日付を条件付きでフォーマットする

    ご存知のように、Microsoft Excelには TODAY() 関数を使って、現在の日付に基づいたさまざまな計算を行うことができます。 ここでは、Excelで日付を条件付きでフォーマットするための使用例をいくつか紹介します。

    例1.今日と同じ日、今日より大きい日、今日より小さい日を強調表示する。

    今日の日付に基づいてセルや行全体を条件付きで書式設定するには、次のようにTODAY関数を使用します。

    今日と同じように。 =$B2=TODAY()

    今日よりもっと大きく。 =$B2>TODAY()

    今日より少ない。 =$B2

    以下のスクリーンショットは、上記のルールの動作を示しています。 なお、執筆時点のTODAYは2014年6月12日です。

    例2.複数の条件に基づいてExcelで日付の条件付き書式を設定する

    同様に、TODAY関数と他のExcel関数を組み合わせることで、より複雑なシナリオに対応できます。 たとえば、Excelの条件付き書式の日付の式に色をつけたい場合、TODAY関数を使うと インボイス の欄があります。 納期 が「今日」以上である場合、請求書番号を入力する際に書式を消したい。

    このタスクでは、次の式を持つ追加のカラムが必要になります(ここで、Eはあなたの 配送 の列とFの列があります。 インボイス の列)。

    =IF(E2>=TODAY(),IF(F2="", 1, 0), 0)

    納品日が現在の日付以上であり、Invoice列に数値がない場合、数式は1を返し、それ以外は0を返します。

    その後、簡単な条件付き書式ルールを作成し インボイス の列を式で表すと =$G2=1 もちろん、このカラムは後で非表示にすることができます。

    例3.今後の日程や遅れを強調する

    例えば、Excelでプロジェクトのスケジュールを作成し、タスクとその開始日、期間をリストアップしたとします。 各タスクの終了日を自動的に計算させたい場合、週末も考慮した式にする必要があります。 例えば、開始日が2014年6月13日、作業日数(期間)が2であれば、終了日は2014年6月17日となるはずです。6月14日、15日が土日であるため。

    これを実現するために WORKDAY.INTL(開始日,日数,[週末],[休日]) 関数、より正確には =workday.intl(b2,c2,1) .

    この式では、土曜日と日曜日が休日であることを示すため、第3パラメータに1を入力します。 週末が金と土のように異なる場合は、別の値を使用できます。 週末の値の完全なリストは、ここにあります。 オプションとして、第4パラメータに、営業日カレンダーから除外する日付(セル範囲)のセットを使用することも可能です。

    例えば、次の2つの数式に基づく条件付き書式ルールは、近日中の終了日と最近の終了日をそれぞれ強調表示します。

    • =AND($D2-TODAY()>=0,$D2-TODAY()<=7) - 終了日(D列)が以下の範囲にあるすべての行をハイライト表示します。 翌7日 この式は、今後の有効期限や支払いを追跡する際にとても便利です。
    • =AND(TODAY()-$D2>=0,TODAY()-$D2<=7)とする。 - 終了日(D列)が以下の範囲にあるすべての行をハイライト表示します。 直近7日間 .この計算式を使って、最新の延滞金やその他の遅延を追跡することができます。

    上の表に当てはめることができる計算式の例をもう少し紹介します。

    =$D2 - 経過した日付(現在の日付より前の日付)をすべてハイライト表示します。 期限切れの購読料、支払期限切れの支払いなどをフォーマットするために使用できます。

    =$D2>TODAY() - 将来の日付(現在の日付より大きい日付)をすべてハイライトします。 今後予定されているイベントをハイライトするのに使用できます。

    もちろん、上記の計算式は、作業内容によって無限のバリエーションが考えられます。 たとえば、次のようなものです。

    =$D2-TODAY()>=6 - は、6日以上先の日付をハイライトしています。

    =$d2=today()-14 - は、ちょうど2週間前に発生した日付をハイライトしています。

    日付範囲内の日付を強調表示する方法

    ワークシートに長い日付のリストがある場合、特定の日付範囲に含まれるセルや行をハイライトすることもできます。

    TODAY()関数を使えば、この作業を再び行うことができます。 ただ、以下の例で示すように、もう少し複雑な数式を作成する必要があります。

    過去の日付をハイライトする計算式

    • 30日以上前 =TODAY()-$A2>30
    • 30日前から15日前まで、含みます。 =AND(TODAY()-$A2>=15, TODAY()-$A2<=30)
    • 15日前以下 =AND(TODAY()-$A2>=1, TODAY()-$A2<15)

    現在の日付と将来の日付は色付けされません。

    将来の日付を強調する数式

    • 今から30日以上後に発生する。 =$A2-TODAY()>30
    • 30日~15日以内(含む =AND($A2-TODAY()>=15, $A2-TODAY()<=30)
    • 15日以内には =AND($A2-TODAY()>=1, $A2-TODAY()<15)

    現在の日付と過去の日付は色付けされません。

    隙間や時間間隔の遮光方法

    この最後の例では、さらに別のExcelの日付関数 - を利用します。 DATEDIF(start_date, end_date, interval) この関数は、指定した間隔で2つの日付の差を計算します。 このチュートリアルで説明した他の関数とは異なり、月や年を無視して、日または月間の差だけを計算することができます。

    例えば、あなたの家族や友人の誕生日のリストがあったとします。 次の誕生日まであと何日あるのか知りたくありませんか? さらに、結婚記念日やその他の見逃せないイベントまで、いったい何日あるのか? 簡単ですね。

    必要な計算式はこれです(ここで、Aはあなたの 日付 の列)。

    =DATEDIF(TODAY(), DATE((YEAR(TODAY())+1), MONTH($A2), DAY($A2))), "yd")

    計算式の最後にある「yd」インターバルタイプは、年を無視して日差のみを計算するために使用します。 使用可能なインターバルタイプの全リストは、こちらを参照してください。

    ヒント:複雑な数式を忘れたり、置き忘れたりした場合は、この簡単な数式で代用することができます。 =365-DATEDIF($A2,TODAY(), "yd") うるう年には365を366に置き換えることを忘れないでください : )

    この場合、ピリオドごとにルールを作成するよりも、Excelのカラースケールを利用する方が理にかなっています。

    下のスクリーンショットは、Excelで作成したものです。緑から赤、黄色までの色調を持つ3色のグラデーションが表示されます。

    "次の誕生日までの日数" Excel Webアプリ

    このExcel Web Appでは、1列目にイベントを入力し、2列目の日付を変更するだけで、上記の計算式が実際に使用できることを確認できます。

    注)埋め込みワークブックをご覧になるには、マーケティングクッキーを許可してください。

    このようなインタラクティブなExcelスプレッドシートを作成する方法について知りたい方は、WebベースのExcelスプレッドシートの作成方法に関するこちらの記事をご覧ください。

    この記事で紹介したExcelの日付の条件付き書式のうち、少なくとも1つはお役に立ったことと思います。 何か別のタスクの解決策を探している場合は、ぜひコメントを投稿してください。 読んでくださってありがとうございました。

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。