プロが教えるわが家の防犯対策術!

例えば、海外の宿泊費の計算なんですが支給下限が90$で50$しか使っていなくても、90$分が支給されます。そのときに90$未満の数値を入力した場合でも(1$~89.9$まで)90$の金額が出るようにしたいです。結果は日本円で表示したいのでそのときのレートにより変動します。
また、ドルだけでなく元やユーロなど他の通貨にも対応したいと考えています。
通貨はひとつのセルにフィルターがあり選べるようになっています。
(例)
通貨|支払金額|送金金額      レート 1元 15.9円
USD 1.00 9444.60            1USD 6.6元
元 590 9444.60
USD 91 9549.54

・通貨のセルにフィルターでさまざまな通貨を選択できる。
・支払金額のセルに金額を入力する。
・送金金額のセルに支払金額で入力した金額により、何円かが表示される。
(このときに90$未満の金額を入力したら一律で90$の円換算の結果を表示したい。90$以上だったらそのまま計算。)
・元などの場合は、仮に1$が6.6元だとしたら、594元で90$になるのでその計算をどこかで噛ませて送金金額のセルに反映させたい。

どなたかご教授願います。

質問者からの補足コメント

  • 回答ありがとうございます。
    回答していただいたように、作成してみたのですがUSDの場合は問題なく出来ました。
    元の場合だけ、90元以下は1431円と表示され91元以上は普通に計算されていきます。
    元のときは、6.6×90で594元が下限だと思うのですが、その場合はどうすればよいのでしょう?

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/11/17 14:29

A 回答 (3件)

回答No2です.


数式が誤っていました.

=IF(OR(AND(A2="USD",B2>=90),AND(A2="元",B2/VLOOKUP("USD",$F$1:$I$2,2,FALSE)>=90)),B2*VLOOKUP(A2,$F$1:$I$2,4,FALSE),90*VLOOKUP("USD",$F$1:$I$2,4,FALSE))

ただVLOOKUPから値を引用する場合にはどの列の値かを考える必要がありますので,
INDEX関数やMATCH関数を使った方が拡張性があるかもしれません.
(少なくとも通貨の種類が増えると対応できなくなる可能性があります.)

もし通貨の種類を増やして且つ,VOOKUP関数を利用するならば,参照する列に対して値を決めておくと良いかもしれません.
例えば対USDは2列目,対円は4列目の様な一定のルールを用意する.
    • good
    • 0

一応それっぽいのは作りましたが,前提を以下の様にしたものです.


・通貨の種類はいくつかあるものの必ず対象通貨と円のレートを計算するセルを置く事
・A列に通貨の種類が入る事
・B列に支払金額を入れる事
・C列に送金金額が円で出力される事
・レートのセルをF~Iに入れる事

そういう前提であれば,以下の様な関数でできると思います.
=IF(B2>=90,B2*VLOOKUP(A2,$F$1:$I$2,4,FALSE),90*VLOOKUP(A2,$F$1:$I$2,4,FALSE))

これをC2セルに入力します.

フィルターというのは入力規則のドロップダウンリストの事でしょうか?
もしそうであるなら下記URL先のサイトが参考になると思います.
http://span.jp/office2010_manual/excel2010/data/ …
「Excel 関数 海外宿泊費 通貨の金額」の回答画像2
この回答への補足あり
    • good
    • 0

>90$未満の数値を入力した場合でも(1$~89.9$まで)90$の金額が出るようにしたいです。


難しく考えず、IF関数で処理すれば良いと思います。

>また、ドルだけでなく元やユーロなど他の通貨にも対応したいと考えています。
MATCH関数で一致する通貨を選択するなり、
フォームコントロールのオプションボタンで選択するなりして
どのレートを採用するかを決めればよい。
面倒なら、すべての通貨を表示で良いでしょう。

>通貨はひとつのセルにフィルターがあり選べるようになっています。
たぶんExcelのフィルタ機能とは別の意味なんだろうけど、混乱するので別の表現をすることを勧めます。
(正直なんのことやら…)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!