• 締切済み

複数条件のMIN関数

いつもお世話になっております。 前回、誤って二重投稿してしまった為、サイト側で 削除されてしまったようなので、再投稿致します。 もう内容を見ていた方、何度もスミマセン。 A列 B列 1  06/08/01  3  06/07/20 1  06/07/25 2  06/07/28 2  06/07/20 ・  ・ ・  ・ こんな感じのデータがあります。 A列、B列ともに固定値ではないため、空の行が発生します。 そこで、A列が「1」だった場合のB列の最小値とか A列が「2もしくは3」だった場合のB列の最小値の日付データ をC列に求めたいと思ってます。 数式は、教えて頂いて =MIN(INDEX(SUBSTITUTE((($A$1:$A$10=1)*($B$1:$M$10>0))*1,0,10^7)+(B1:B10)-1,)) =MIN(INDEX(SUBSTITUTE((($A$1:$A$10>1)*($B$1:$M$10>0))*1,0,10^7)+(B1:B10)-1,)) で記述しているのですが、A列の値がない場合数式の答えに 「9999999」や「10000000」が入ってきます。 (O値が入ったときに置き換えをしている為) それを表示させないために、「=IF(C1=9999999,"",」を 数式の頭に入れているのですが、何行にも渡って上記の数式を 書いているため、再計算され続けてパフォーマンスがかなり悪いです。 もっと効率よく、計算できる方法があれば教えて下さい。 お願い致します。

みんなの回答

noname#79209
noname#79209
回答No.1

シートを追加して良いなら Sheet1に       A     B 1    CODE  DATE 2       1    2006/08/01  3       3    2006/07/20 4       1    2006/07/25 5       2    2006/07/28 6       2    2006/07/20 7    9999999   2006/06/30 だったとして Sheet2に       A     B 1    "検索A=1" 2    CODE 3       =1 4    "検索A=2orA=3" 5    CODE   CODE 6     >=2     <=3 としておき、 Sheet1のC列の2行目以下に、 =IF($A2=1,DMIN($A$1:$B$7,2,Sheet2!$A$2:$A$3),IF(OR($A2=2,$A2=3),DMIN($A$1:$B$7,2,Sheet2!$A$5:$B$6),"")) で、パフォーマンスはいかがでしょう。

polalis
質問者

お礼

vizzar様、遅くなりましてスミマセン。 御回答ありがとうございます。 vizzar様のやり方で、試してみました! パフォーマンスがとても向上しました^^ ただシートの追加は出来ないため、残念ながらその方法では解決 出来ないため、いろいろ調べたり教えてもらったりで SUBSTRACT関数でやりたいことが出来ました。 vizzar様のようなやり方もあるんだなぁ…と、大変参考 になりました。 重ねて御礼致します。

関連するQ&A