- ベストアンサー
エクセル2003の質問です
エクセルでの関数に関しての質問です 例えば、A1に日付を入力した時に、B1にりんごだった場合、はC1に100円 として、A1に日付を入れB1にみかんだった場合C1に200円とする関数が知りたいのですが? B1は、りんごだったらC1は100円みかんだったら、200円とB1の条件が複数存在する時の 関数が知りたいです。リストからデータを引っ張るのではなく数式でのみので知りたいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>例えば、A1に日付を入力した時に、B1にりんごだった場合、はC1に100円 > として、A1に日付を入れB1にみかんだった場合C1に200円とする関数が知りたいのですが? その文章をそのままIF文で表現してください。 A1に日付以外のものを入力されると面倒なんですけど、 たとえばA1が空欄で c1に =if(a1="","",(if(b1="りんご",100,if(b1="みかん",200,"***"))) とすれば、 A1が空欄でなく(日付が入力されたとして)、B1がりんごなら100、みかんなら200、その他なら***となります。 ”円”はデータとして書いておいてもよいのですが、書式設定で表示させると後で計算させるのに便利でしょう。 >関数が知りたいです。リストからデータを引っ張るのではなく数式でのみので知りたいです。 vlookup等の表からデータを引っ張ってくる関数の方が素直なんですけどね。
その他の回答 (2)
- kagakusuki
- ベストアンサー率51% (2610/5101)
多少関数が長いものとなってしまいますが、次の様な関数にしますと、{ }内を記述する際に文字コードの数字の大小を考える必要がなくなります。 =IF(ISNUMBER(1/DAY(A1)+MATCH(B1,{"りんご","みかん"},0)),INDEX({100,200},MATCH(B1,{"りんご","みかん"},0)),"")
- kagakusuki
- ベストアンサー率51% (2610/5101)
C1セルに次の関数を入力されると良いと思います。 =IF(ISNUMBER(1/DAY(A1)+MATCH(B1,{"りんご","みかん"},0)),LOOKUP(B1,{"みかん","りんご"},{200,100}),"") (注)"りんご"という文字列と"みかん"という文字列を比較した場合、「み」を表す文字コードの方が、「り」を表す文字コードよりも番号が若いため、LOOKUP関数内の{"みかん","りんご"}の部分では、"みかん"の方を先に記述する必要があります。 因みに、文字コードは、次の様な関数を、適当なセルに入力する事で調べる事が出来ます。 =CODE("り")
補足
早速の回答ありがとうございます 早速参考にしたいとおもいます。