• ベストアンサー

エクセルでの計算式について

エクセルで集計表を作成しています。 重要度によってランク付けし計算をしたいと思っていて 例えばAランクなら5・Bランクなら4という風に係数を掛けるように 計算式を設定したいのですが、 例えばB1セルにAと入力してその裏にA=5として認識させておいて C1セルに50,000といれておきD1セルに計算式(=B1*C1)を入力して合計が出るようにしたいのです。 Aと入力せずに5と入力しておけばいいのでは?と思われると思うのですが数字ではなくランクとして見せておきたいのです。 教えて下さい。宜しくお願いします。

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

  • ベストアンサー
  • nue-nue
  • ベストアンサー率56% (25/44)
回答No.1

Vlookup関数を使いましょう。 1.メインの表のほかに、コードと係数を以下のように横に並べて記入した表を作っておく A 5 B 4 C 3 2.D1セルには以下のように入力する =VLOOKUP(B1, コード表のセル範囲, 2) * C1 注意しなければならない点をいくつか。  [1]VLOOKUPで使用するコード表のセル範囲は、絶対セル($C$1など、$マークをつける)を使用する    →計算式を下方にコピーした場合、セル範囲まで下にズレてしまうのを防ぐ  [2]VLOOKUPで使用するコード表のセル範囲にはタイトル行は入れない  [3]コード表の左側(ランク文字)は必ず降順に入力する    →VLOOKUPの仕様のため、これを守らないと正しい結果が得られません

参考URL:
http://www.yoshikawa.co.jp/ybs/skilup/ybs0308.htm
mochimaron
質問者

お礼

早速お返事頂きありがとうございます! 今からトライしてみます。 とても助かりました。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

VLOOKUPを使うのが定石ですが、別解として他に表を作らず関数式だけで処理する方法も紹介しておきます。 A~Eにそれぞれ5~1を対応させるなら、A1にAと入っているとして =FIND(A1,"EDCBA") という方法があります。 A=5,B=3,C=1というような場合には、 =CHOOSE(FIND(A1,"ABC"),5,3,1) という方法でもできます。 このままではA,B,C以外の文字が入力されるとエラーになるので、エラーにせずに0とするには、 =IF(ISERROR(FIND(A1,"ABC")),0,CHOOSE(FIND(A1,"ABC"),5,3,1)) とします。

mochimaron
質問者

お礼

丁寧に教えていただきありがとうございました。 早速やってみたらできました! 恥ずかしながらあまり関数を使うことがないので とても勉強になりました。 ありがとうございました。

関連するQ&A