- 締切済み
複数条件の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,"",」を 数式の頭に入れているのですが、何行にも渡って上記の数式を 書いているため、再計算され続けてパフォーマンスがかなり悪いです。 もっと効率よく、計算できる方法があれば教えて下さい。 お願い致します。
- みんなの回答 (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),"")) で、パフォーマンスはいかがでしょう。
お礼
vizzar様、遅くなりましてスミマセン。 御回答ありがとうございます。 vizzar様のやり方で、試してみました! パフォーマンスがとても向上しました^^ ただシートの追加は出来ないため、残念ながらその方法では解決 出来ないため、いろいろ調べたり教えてもらったりで SUBSTRACT関数でやりたいことが出来ました。 vizzar様のようなやり方もあるんだなぁ…と、大変参考 になりました。 重ねて御礼致します。