エクセルで日時の情報とあわせて収集したデータを管理している方もおられると思います。
その際に○○日から○○日のデータ、または○○時から○○時のデータの最大値を知りたい場合通常のMAX関数では求めることができません。
日時の範囲を高頻度で変更したい場合はとても手間になります。
しかし別のセルに算出開始日時と算出終了日時を入力して
自動でその範囲間の最大値を求めてくれたら便利ですよね。
今回はそんな悩みを解決できるような内容になっています。
それでは見ていきましょう。
■こんなことができるようになる!
・指定した2つの日付の範囲に当てはまる最大値を算出することができる。
⬛︎指定範囲間のデータの最大値を算出する
通常であれば最大値を求める際に「MAX関数」と呼ばれる関数を使用します。
MAX関数についてはこちらから☟
【MAX関数】エクセルで範囲を指定して、数値の最大値を求める方法について ► 独学エクセル塾 (dokugakuexcel.com)
しかし今回は指定範囲で絞り込むので MAXIFS関数を使用していきます。
では内容を見ていきましょう
・2つの日付の範囲内の最大値を求める
見本として下図のような収益のデータを用意しました。
B列には日付のデータが入っておりC列には収益額が入力されています。
今回はE3とF3に入力した日付の間の最大値を求めてみましょう。
MAXIFSの関数の仕組みはこのようになってます。
=MAXIFS(最大値を求めたい範囲,最大値の条件範囲1,最大値の条件1,最大値の条件範囲2,最大値の条件2,・・・)
最大値を求めたい範囲は収益なので収益の範囲のC3:C12
最大値の条件の範囲1は日付で絞り込みたいので日付の範囲のB3:B12
最大値の条件1はE3以上の日付を最大値したいので“>=”&E3
最大値の条件の範囲2も日付で絞り込みたいので日付の範囲のB3:B12
最大値の条件2はF3以下の日付を最大値したいので“<=”& F3となります。
では当てはめていきましょう。
関数はこのようになります。
=MAXIFS(C3:C12,B3:B12,“>=”&E3,B3:B12,“<=”&F3)
それでは入力していきましょう。
結果はこのようになります。
5月27日から5月30日の最大値を求める事ができました。
該当する収益は「578」「735」「342」「245」「657」「874」「584」「682」で最大値は874なので
狙い通りの動作ができていますね。
もちろん、日付を変更しても変更した日付の範囲で最大値をしてくれます。
・2つの時刻の範囲内の最大値を求める
今度は入力した2つの時刻の範囲の最大値を求めてみましょう。
今回も先ほどの見本を参考にしていきましょう。
まず、前提として条件となる日時のデータに時刻の情報が含まれている必要があります。
数式は先ほどと同様になります。
=MAXIFS(C3:C12,B3:B12,“>=”&E3,B3:B12,“<=”&F3)
では絞り込みの条件を14時から19時にしてみたいと思います。
結果はこのようになります。
時刻でも同様に2つの時刻範囲の最大値を求める事ができました。
該当する収益は「735」「342」「245」「657」「874」「584」で最大値は874なので
狙い通りの動作ができていますね。
⬛︎補足 ○○日・時間以上・以下のデータの最大値を算出する
ここからは補足です。
先ほどは2つの日時の範囲間の最大値を求めましたが、
今度は○○日・時間以上の最大値・以下の最大値を求めてみましょう。
・○○日・時間以上のデータの最大値
まずは○○日・時間以上のデータの最大値をもとめていきます。
では再度、先ほどの見本データをご覧ください。
今回はE3に入力した日時以上の最大値を求めたいとしましょう。
先ほどと同様に MAXIFS関数を使用します
MAXIFS関数の仕組みは下記の通りです。条件は1つのみなのでこのようになります。
=MAXIFS(最大値を求めたい範囲,最大値の条件範囲1,最大値の条件1)
最大値の範囲は収益なのでC3:C12となります。
最大値の条件の範囲は日時なのでB3:B12
最大値の条件は F3に入力した日時以上なので“>=”&E3
関数に当てはめるとこのようになります。
=MAXIFS(C3:C12,B3:B12,“>=”&E3)
それでは入力してみましょう。
結果はこのようになります。
5月27日以上の最大値は「874」ということがわかりました。
・○○日・時間以下のデータの最大値
今度は○○日・時間以下のデータ最大値をもとめる方法についてです。
考え方は先ほどと同様で「“>=”」の部分が「“<=”」となります。
では見本を見ていきましょう。
今回はE3に入力した日時以下のデータの最大値を見ていきます。
数式はこのようになります。
=MAXIFS(C3:C12,B3:B12,“<=”&E3)
では入力してみましょう。
結果はこのようになります。
5月27日以下の収益の最大値は「735」ということがわかりました。
⬛︎補足 2つの日付の範囲+絞り込み条件
先ほどは2つの日付の範囲の最大値を求めましたがさらに絞り込み条件を
増やしたい場合の方法を紹介します。
下図の見本をご覧ください。
先ほどのデータに加え、対象の項目をD列に追加しました。
仕様として2つの日付の範囲+対象に○がついてあるものの最大値を算出したいと思います。
関数はMAXIFSを使用していきます。
MAXFS関数の条件は2つまでの縛りはなく、127個まで設定することができます。
では条件を追加した数式を見てみましょう。
=MAXIFS(C3:C12,B3:B12,”>=”&F3,B3:B12,”<=”&G3,D3:D12,”○”)
「D3:D12,”○”」を追加する事でD列に○がついてある事が条件となりました。
それでは入力してみましょう。
結果はこのようになります。
5月26日から5月30日で対象に○がついてあるデータは「578」「342」「245」なので最大値「578」で狙い通り計算できています。
今回は2つの日付データと対象の3つの条件でしたが
数式を追加する事で条件をさらに追加することができます。
⬛︎よくあるエラーと対処法
・条件に当てはまるが最大値してくれない
こちらは対象日時または絞り込む際の条件の日時に問題があるかもしれません。
実際の画面をみてみましょう。
通常は「○月○日」といった表記ですが
ダブルクリックすると「年」までデータが入っています。
エクセルは日時と判断すると日付データとして年月日、
時刻を入力すると+時刻までデータとして入力されます。
つまり「年」が異なっていると範囲から除外されるので最大値を算出してくれません。
一度日時データを確認してみてください。
・計算結果が0になる
日付範囲を設定する際に条件を「”>=”&対象セル」と設定しました。
この不等号の記号「<」と「>」ですが、全角と半角があります。
全角は「>」「<」で小文字は「>」「<」となってます。
見た目ではわかりにくいですが、全角で入力すると文字として認識され
不等号にならないので0となってしまいます。
入力の際は半角で入力してください。
⬛︎まとめ
いかがだったでしょうか。
日時とセットでデータを収集している方も多いとおもいます。
是非今回の内容を活用して
2つの日付間の最大値を求めてみてください。
それでは次回の記事でお会いしましょう。