エクセルあるいはOpenOffice Calcでの計算式についてです。


=IF(A1="X";(A2-A3)*100;IF(A1="Y";(A3-A2)*100;"NG"))

これは、
もしA1に入ってる値がXならA2-A3に100を掛け、
もしA1に入ってる値がYならA3-A2に100を掛けた数値を表示。
当てはまらなければNGを表示。

というものですが、それを

もし「A1に入ってる値がX」で、「B1に入っている値の下3文字がAAAかBBBかCCC」なら「A2-A3に100」を掛け、
もし「A1に入ってる値がX」で、「B1に入っている値の下3文字がDDDかEEEかFFF」なら「A2-A3に10000」を掛け、
もし「A1に入ってる値がY」で、「B1に入っている値の下3文字がAAAかBBBかCCC」なら「A3-A2に100」を掛け、
もし「A1に入ってる値がY」で、「B1に入っている値の下3文字がDDDかEEEかFFF」なら「A3-A2に10000」を掛けた数値を表示。
当てはまらなければNGを表示。

とする場合の式を教えてください。

※B1には6文字のアルファベットが入るとします。

「B1に入っている値の下3文字がAAAかBBBかCCC」という部分が厳しければ、
「B1に入っている値がAAAAAAかBBBBBBかCCCCCC」という条件でも構いません。

以前に質問した
http://q.hatena.ne.jp/1265462733
を応用した形です。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/03/11 11:39:46
  • 終了:2010/03/11 18:13:08

ベストアンサー

id:GreenStar No.4

GreenStar回答回数192ベストアンサー獲得回数462010/03/11 12:05:33

ポイント28pt

長いので行を分けてます! 実際には一行になります!!

=IF(OR(RIGHT(B1,3)="AAA", RIGHT(B1,3)="BBB", RIGHT(B1,3)="CCC")
     ,IF(A1="X", (A2-A3)*100, IF(A1="Y", (A3-A2)*100, "NG"))
     ,IF(OR(RIGHT(B1,3)="DDD", RIGHT(B1,3)="EEE", RIGHT(B1,3)="FFF")
         ,IF(A1="X", (A2-A3)*10000, IF(A1="Y", (A3-A2)*10000, "NG"))
         ,"NG"
     )
 )

RIGHT関数で末尾から3文字を取ってきてます! MID関数で4文字目から3文字分に替えてもかまいません!!

RIGHT(B1,3)
MID(B1,4,3)

どちらでも今回は同じ結果を返します!!

id:harakiri2

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

2010/03/11 15:50:48

その他の回答(4件)

id:taknt No.1

きゃづみぃ回答回数13537ベストアンサー獲得回数11982010/03/11 12:02:46

ポイント24pt

=IF(AND(OR(A1="X",A1="Y"),OR(RIGHT(B1,3)="AAA",RIGHT(B1,3)="BBB",RIGHT(B1,3)="CCC",RIGHT(B1,3)="DDD",RIGHT(B1,3)="EEE",RIGHT(B1,3)="FFF")),IF(A1="X",IF(OR(RIGHT(B1,3)="AAA",RIGHT(B1,3)="BBB",RIGHT(B1,3)="CCC"),(A2-A3)*100,0),0)+IF(A1="X",IF(OR(RIGHT(B1,3)="DDD",RIGHT(B1,3)="EEE",RIGHT(B1,3)="FFF"),(A2-A3)*10000,0),0)+IF(A1="Y",IF(OR(RIGHT(B1,3)="AAA",RIGHT(B1,3)="BBB",RIGHT(B1,3)="CCC"),(A3-A2)*100,0),0)+IF(A1="Y",IF(OR(RIGHT(B1,3)="DDD",RIGHT(B1,3)="EEE",RIGHT(B1,3)="FFF"),(A3-A2)*10000,0),0),"NG")

長いですが、これでOKなはず。

Excel用です。

id:harakiri2

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

2010/03/11 15:50:31
id:b19901108 No.2

b19901108回答回数55ベストアンサー獲得回数62010/03/11 12:04:30

ポイント24pt

http://www.google.co.jp


最初の式「=IF(A1="X";(A2-A3)*100;IF(A1="Y";(A3-A2)*100;"NG"))」の

(A2-A3)*100

→IF(RIGHT(B1,3)="AAA" OR RIGHT(B1,3)="BBB" OR RIGHT(B1,3)="CCC",(A2-A3)*100,IF(RIGHT(B1,3)="DDD" OR RIGHT(B1,3)="EEE" OR RIGHT(B1,3)="FFF",(A2-A3)*10000,"NG"))

(A3-A2)*100

→IF(RIGHT(B1,3)="AAA" OR RIGHT(B1,3)="BBB" OR RIGHT(B1,3)="CCC",(A3-A2)*100,IF(RIGHT(B1,3)="DDD" OR RIGHT(B1,3)="EEE" OR RIGHT(B1,3)="FFF",(A3-A2)*10000,"NG"))

に変換でどうですか?

id:harakiri2

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

2010/03/11 15:50:34
id:SALINGER No.3

SALINGER回答回数3454ベストアンサー獲得回数9692010/03/11 12:05:09

ポイント24pt
=IF(OR(RIGHT(B1,3)="AAA",RIGHT(B1,3)="BBB",RIGHT(B1,3)="CCC"),IF(A1="X",A2-A3,A3-A2)*100,IF(OR(RIGHT(B1,3)="DDD",RIGHT(B1,3)="EEE",RIGHT(B1,3)="FFF"),IF(A1="X",A2-A3,A3-A2)*10000,"NG"))
id:harakiri2

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

2010/03/11 15:50:37
id:GreenStar No.4

GreenStar回答回数192ベストアンサー獲得回数462010/03/11 12:05:33ここでベストアンサー

ポイント28pt

長いので行を分けてます! 実際には一行になります!!

=IF(OR(RIGHT(B1,3)="AAA", RIGHT(B1,3)="BBB", RIGHT(B1,3)="CCC")
     ,IF(A1="X", (A2-A3)*100, IF(A1="Y", (A3-A2)*100, "NG"))
     ,IF(OR(RIGHT(B1,3)="DDD", RIGHT(B1,3)="EEE", RIGHT(B1,3)="FFF")
         ,IF(A1="X", (A2-A3)*10000, IF(A1="Y", (A3-A2)*10000, "NG"))
         ,"NG"
     )
 )

RIGHT関数で末尾から3文字を取ってきてます! MID関数で4文字目から3文字分に替えてもかまいません!!

RIGHT(B1,3)
MID(B1,4,3)

どちらでも今回は同じ結果を返します!!

id:harakiri2

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

2010/03/11 15:50:48
id:SALINGER No.5

SALINGER回答回数3454ベストアンサー獲得回数9692010/03/11 12:10:08

すいません。間違いです。

=IF(OR(RIGHT(B1,3)="AAA",RIGHT(B1,3)="BBB",RIGHT(B1,3)="CCC"),IF(A1="X",(A2-A3)*100,IF(A1="Y",(A3-A2)*100,"NG")),IF(OR(RIGHT(B1,3)="DDD",RIGHT(B1,3)="EEE",RIGHT(B1,3)="FFF"),IF(A1="X",(A2-A3)*10000,IF(A1="Y",(A3-A2)*10000,"NG")),"NG"))
id:harakiri2

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

2010/03/11 15:51:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません