人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルあるいは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
を応用した形です。

よろしくお願いします。

●質問者: harakiri2
●カテゴリ:コンピュータ
✍キーワード:A1 A3 AAA Calc CCC
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● きゃづみぃ
●24ポイント

=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用です。

◎質問者からの返答

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


2 ● b19901108
●24ポイント

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"))

に変換でどうですか?

◎質問者からの返答

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


3 ● SALINGER
●24ポイント
=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"))
◎質問者からの返答

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


4 ● GreenStar
●28ポイント ベストアンサー

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

=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)

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

◎質問者からの返答

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


5 ● SALINGER
●0ポイント

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

=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"))
◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ