質問: 複数の検索条件がある場合の関数 このような条件から、条件に合致したものをあるセルに返したい場合、どのような関数を使うと一番簡単にできるでしょうか? 例)条件1 売上額の範囲 (1000円~10000円、10001円~20000円) 条件2 遅刻回数 0~1回 2~5回 たとえば、売上額が10000円で、遅刻回数が1回なら評価s、 売上額が10000円で、遅刻回数が2回なら評価a 売上額が20000円で、遅刻回数が2回なら評価b などとしたいのですが、このような場合の関数の作り方を教えてください。よろしく願いいたします。
回答: 一発でという関数は無いと思います。 ーーーー 無理して関数をネストせずに書いて見ます。 そこで、2列のワーク列とvlookup表を2つ、index用の基準表をやむを得ず使います。 (1)条件1で判別されるデータの入っている列に対し、vlookup関数(true型)でランク記号化します (2)条件2を適用する列に対し、vlookup関数(true型)でランク記号化します (3)(1)(2)の記号組み合わせ表(2次元表)に対し、行列でindex関数で表を引き、最終的に評価の記号を得ます ーーー vlookupの表(2つ)の例は g列 h i j 0a0x 1000b1y 10000c3z 20000d5u 100000e7v 10w g列とh列は売上額ランク化記号用 i,jは遅刻回数ランク化用の表の例。 ーーー a-d列のデータ例と結果は(a、cは入力列、b、dは後述の関数により導出) a列 b c d 12a0x 2345b3z 11000c5u 20023d2y 199999d8v 1000b11w 10000c6u 0a0x a列は売上データ、c列は遅刻回数のデータの例 b列の関数 b1に =vlookup(a1,$g$1:$h$4,2,true) を入れてそれを縦方向に式を複写 d列の関数 d1に =vlookup(c1,$i$1:$j$7,2,true) を入れてそれを縦方向に式を複写 ーーー indexの(基準に使う)表 最終の評価記号(私の例では、数字コードにしていること、全部違う 数字コードを割り当てているが、同じ数字コードが出るマスがあっても良い。むしろ普通ではあるでしょう。)実際問題にあわせ、実情で表を作ってください。 l1:q6 xyzuvw a123456 b789101112 c131415161718 d192021222324 e252627282930 売上aランク、遅刻zランクは9を与えるという表の例。 ーーーー 最終評価を出す列 e1セルの式 =index($l$2:$q5,match(b1,$k$2:$k$5,0),match(d1,$l$1:$q$1,0)) e2以下に縦方向に式を複写。 結果e1:e8 1 9 16 20 23 12 16 1