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