- ベストアンサー
Excel数式の意味がわかりません。
他人からもらったエクセルデータがあり、一部のセルに以下のような数式が入っています。 {=MIN(IF(G4:G300<=TODAY()+1,"",G4:G300))} この関数の意味が理解できません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>この関数の意味が理解できません。 式の全体を{}で括っていますので、扱われているデータは配列であることを示します。 IF関数のG4:G300<=TODAY()+1は配列のG4~G300の内で明日以降の日付を正とするよう定義しています。 MIN関数は引数(G4~G300の明日以降の日付)で最小の値を抽出します。 G3セルには演算結果の明日以降で1番近い日付が表示されるはずです。 但し、該当が無ければ空欄になるはずですが表示形式が不適切のときは1900/1/0または0と表示されます。
その他の回答 (2)
- m_and_dmp
- ベストアンサー率54% (987/1817)
NO.1です。 私も使いこなせるほど詳しくありませんが、配列式は1:1の計算ではなく、マトリックスの計算をしてくれるようです。 配列式を作るには特別の操作が必要で、出来上がった式は、{ }で囲まれています。 ここ↓に概念を理解するのに良いサンプルがありますので参照してください。 http://mt-soft.sakura.ne.jp/kyozai/excel_high/230_special/05_hairetu_susiki_ouyou.htm
お礼
ご回答ありがとうございました。 わかりやすいサンプルですね。 1次元でなく2次元的な計算が必要な場合に、配列数式というのが必要なんですね。 もう少し勉強してみます。
- m_and_dmp
- ベストアンサー率54% (987/1817)
配列式のようですね。 一行だけ抜き出して動作させることはできませんでしたが、たぶん次のような動作をするのでしょう。 G4~G300のセルに何らかの数値が入っています。 セルG4の値が、 本日(TODAY() )より小さいか等しいときは「空白("")」そうでないときは、そのセルG4の値とします、以下、G300まで同様に計算します。それらの数値のうち「最小値(MIN)」を、その数式が入っているセルに出力します。 =TODAY() は、本日の年月日を出力します。本日現在、2013/9/28 です。数値として扱うと、41,545 です。
お礼
ご回答ありがとうございました。 情報足らずすみません。 G4~G300には、納期が入っております。 そして、質問の数式は、その上のG3のところに入っており、今日以降の最短の納期が表示されます。 すでに過ぎた納期は、読み飛ばすようになっているようです。 動作の結果については理解できるのですが、この数式で、どうしてこのような結果が得られるのか、理解できず質問いたしました。 配列式というのですね。始めて聞きました。
お礼
ご回答ありがとうございました。 たいへん参考になりました。