• ベストアンサー

エクセル2003の質問です

エクセルでの関数に関しての質問です  例えば、A1に日付を入力した時に、B1にりんごだった場合、はC1に100円  として、A1に日付を入れB1にみかんだった場合C1に200円とする関数が知りたいのですが?  B1は、りんごだったらC1は100円みかんだったら、200円とB1の条件が複数存在する時の  関数が知りたいです。リストからデータを引っ張るのではなく数式でのみので知りたいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

>例えば、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等の表からデータを引っ張ってくる関数の方が素直なんですけどね。

tamamike3670
質問者

補足

早速の回答ありがとうございます  早速参考にしたいとおもいます。  

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 多少関数が長いものとなってしまいますが、次の様な関数にしますと、{ }内を記述する際に文字コードの数字の大小を考える必要がなくなります。 =IF(ISNUMBER(1/DAY(A1)+MATCH(B1,{"りんご","みかん"},0)),INDEX({100,200},MATCH(B1,{"りんご","みかん"},0)),"")

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 C1セルに次の関数を入力されると良いと思います。 =IF(ISNUMBER(1/DAY(A1)+MATCH(B1,{"りんご","みかん"},0)),LOOKUP(B1,{"みかん","りんご"},{200,100}),"") (注)"りんご"という文字列と"みかん"という文字列を比較した場合、「み」を表す文字コードの方が、「り」を表す文字コードよりも番号が若いため、LOOKUP関数内の{"みかん","りんご"}の部分では、"みかん"の方を先に記述する必要があります。   因みに、文字コードは、次の様な関数を、適当なセルに入力する事で調べる事が出来ます。 =CODE("り")

関連するQ&A