Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2010)
複数条件を組み合わせた数式について
投稿日時: 19/09/27 20:18:16
投稿者: まあさ

以前、ご教授頂きましたが追加で条件を加えたく、再度質問させて頂きました。
 
L列に実績、N列に達成額が入っています。
数式のL列とN列が0以下はぶく前提の式です。
1.検索した数字がO4と合致して、かつN5>0だったら100%
2.検索した数字がO4と合致せず、かつN5<0だったら25 %
3.検索した数字がO4と合致して、かつN5<0だったら75 %
4.検索した数字がO4と合致せず、かつN5>0だったら50 %
 
1.から4.の条件は別表「条件定義」で計算する
1番目の条件の「100」を、”4番目”のB25セルに
2番目の条件の「25」を、”1番目”のB22セルに
3番目の条件の「75」を、2番目のB23セルに
4番目の条件が「50」を、3番目のB24セルに
 
=IFERROR(IF(MATCH(O5,O:O,0)=ROW(),IF(AND(L5<=0,N5<=0),0,(リスト!$B$18-(COUNTIFS(L$5:L$1000,)''<>0",N$5:N$1000,">"&N5)*2+COUNTIF(N$5:N$1000,N5)-1)/2))
*INDEX({★条件定義!$B$25,★条件定義!$B$23,★条件定義!$B$24,★条件定義!$B$22},(VLOOKUP($ O5,★ID!$E:$F,2,FALSE)=O$4)+(N5>0)*2+1),""),"")
 
今回、2.の条件に下記条件を追加した数式に修正をしたいのです。
2.検索した数字がO4と合致せず、かつN5<0だったら25 %
「ただし、K列の計画が0でL列の実績が発生した場合、算出した数字のさらに××%減としたい」という条件です。
 
知識不足で申し訳ありません、ご教授願います。

回答
投稿日時: 19/09/28 11:52:05
投稿者: Mike

まあさ さんの引用:
以前、ご教授頂きましたが…
L列に実績、N列に達成額が入っています。
…ご教授願います。
私は“教授”でもないので教えることも出来ません。
素朴な疑問ですが、「実績」も「達成額」も同義(同じ意味)というのが一般的(かどうかは辞書で調べてみてェ〜)ですが、貴方の解釈を教えてください。

回答
投稿日時: 19/09/28 14:26:58
投稿者: んなっと

「以前、ご教示頂きました」と言いたいのでしょうが、
過去に質問したのはmougではなくて他のサイトです。
あちこちのサイトに同じ質問をして、派手にマルチポストしていますね。
表形式の具体例を添えて質問しないと伝わりませんよ。
具体例というのは、以下の形式です。
 
●ID
 
  E  F
1 A  7
2 B 10
3 C  7
4 D  7
5 E 15
6 F  7
 
●条件定義
 
    B
22  25%
23  75%
24  50%
25 100%
 
●リスト
 
   B
18 100
 
●Sheet1
 
    K   L M   N O   P  Q    R S   T
 4 計画 実績      7 評価   基礎点   倍率
 5  15  20    5 A  98  4   98 4 100%
 6  40  50    10 B 49.8  1  99.5 3  50%
 7  55  50    -5 C  72  8   96 2  75%
 8   0  -10   -10 D   0 10    0 2  75%
 9   0   5   -0.1 E 2.43  6   97 1  25%
10   5  -30   -35 F   0 12    0 2  75%
11  80  90    10 A     1  99.5 4 100%
 
P5[90%減の場合]
=IFERROR(IF(MATCH(O5,O:O,0)=ROW(),IF(AND(K5=0,L5>0,S5=1),1-90/100,1)*R5*T5,""),"")
下方向・↓
Q5
=COUNTIFS(L$5:L$1000,"<>0",N$5:N$1000,">"&N5)*2+COUNTIF(N$5:N$1000,N5)-1
下方向・↓
R5
=IF(AND(L5<=0,N5<=0),0,(リスト!$B$18-Q5/2))
下方向・↓
S5
=(VLOOKUP($O5,★ID!$E:$F,2,FALSE)=O$4)+(N5>0)*2+1
下方向・↓
T5
=INDEX(★条件定義!$B$22:B$25,(VLOOKUP($O5,★ID!$E:$F,2,FALSE)=O$4)+(N5>0)*2+1)
下方向・↓
 
※メンテナンスが難しくなるので、今回の場合は上のように作業列を使うべきです。
ただし、配列数式を使わざるを得ないような場合は式が長くなることがあります。
これは問題ありません。

投稿日時: 19/09/28 22:57:05
投稿者: まあさ

ありがとうございました。