• ベストアンサー

どんな関数を使えばよいでしょうか?

エクセルで関数の式を作りたいのですが、そもそも調べ方がわからず困っています。 商品を販売した際の実績を計算する式をつくりたいです。  A    B    C カテゴリ 金額 評価ポイント ◎◎   40   200 △△   50   200 たとえばA列に「◎◎」と入れるとB列の数字「×5」の数字をC列に返し、A列に「△△」と入れた場合はB列の数字「×4」の数字をCに返す式を作るにはどうしたらよいでしょうか。A列の値によってB列にかける数を変えたいのです。 ご教授いただけると幸いです。 よろしくお願いします。

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

  • ベストアンサー
回答No.2

レイアウトが決まらないけど大体想像つくだろうということで投稿します 別表(E,F行。別シートにしたりしても良い。なお、もしカテゴリ名を変更する可能性が将来ありそうなら,カテゴリIDとカテゴリ名の対応表を作っておいて,本来の表にカテゴリIDをおいてみてもよい)   A  |  B  |      C                | D  |  E   | F | 1 カテゴリ 金額    評価ポイント                N/A   カテゴリ 倍率| 2 漫画   40    =VLOOKUP($A2,$E$2:$F$5,2,FALSE) * $B2    N/A    漫画   4 | 3 雑誌   50    =VLOOKUP($A3,$E$2:$F$5,2,FALSE) * $B3    N/A    雑誌   5 | 4 新聞紙  80    =VLOOKUP($A4,$E$2:$F$5,2,FALSE) * $B4    N/A    食べ物  8 | 5 漫画   70   =VLOOKUP($A5,$E$2:$F$5,2,FALSE) * $B5     N/A    新聞紙  20|

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

お礼

vlookup関数は使ったことがなかったのですが、 これは便利そうですね。ありがとうございます!

その他の回答 (4)

  • tchwalsx
  • ベストアンサー率50% (1/2)
回答No.5

#3です。前回の回答でも可能ではあるのですが訂正させてください!! A2に「◎◎」と入れるとB2の数字(例:40)「×5」の数字をC2に返し、 A2に「△△」と入れた場合はB2の数字(例:50)「×4」をC2に返す式 C2へ =IF(A2="◎◎",B2*5,IF(A2="△△",B2*4,""))

ubermensch
質問者

お礼

ありがとうございます。書式設定ユーザー定義を使うよりはすっきりする感じですね。

  • _mya_mya
  • ベストアンサー率41% (7/17)
回答No.4

#2さんと同じかな。 参照表を作り、そこから倍率を検索し計算する形です。 (カテゴリが増える可能性がある場合に) ・E2:F3 にカテゴリと倍率の参照表を作ったとします。  (E列にカテゴリ、F列に倍率)    A    B     C     D     E    F 1 カテゴリ 金額  評価P       カテゴリ 倍率 2  ◎◎   40               ◎◎   5 3  △△   50               △△   4 C2 =IF(A2="","",(VLOOKUP(A2,$E$2:$F$3,2,FALSE)*B2)) を入力し、下方向にコピー

ubermensch
質問者

お礼

これだとカテゴリを楽に増やせますね。ありがとうございます。

  • tchwalsx
  • ベストアンサー率50% (1/2)
回答No.3

セルへ入力の際は、◎◎は1、△△は2とし、 書式設定ユーザー定義にて表示のみ◎◎、△△とし、 C2へ =IF(A2="","",IF(A2=1,B2*5,IF(A2=2,B2*4,B2*5))) でどうでしょうか。

  • Azuma1
  • ベストアンサー率39% (78/200)
回答No.1

if文で解決する方法を書きます。C列に =IF(B12="◎◎",C12*5,IF(B12="△△",C12*4,"ERROR")) で良いですか。

ubermensch
質問者

お礼

ありがとうございます! カテゴリが増えるとちょっと面倒ですね・・・

関連するQ&A

  • エクセルの関数についての質問です。

    エクセルの関数についての質問です。 画像のように横に1、2、3…(100くらいまで続きます)縦にA、B、Cの行があります(端が切れちゃってますが、A2にA、A3にB、A4にCです) B2から横の列にはそれぞれ☆や○等いろいろな記号が入ります。 そしてこの記号には特定の値が決められています。☆=10、○=5、△=3 B3から横には、B2の記号にそった数字が入ります。(10やら5等) そこまではIF関数で式を作ったのですが、ここからが問題でして… B2から横に1から100まで、記号(B3から横に数字)を入力していった時のB3列の合計が仮に212とします。 合計した値が200を越えてしまった場合、B4からの列に数字を入力するようにしたいのです。 (200ギリギリ前くらいまではB3の列で、それを越える時からB4の列に入力します。その際、B3列に入る数字は消えます) なおかつ可能であれば、このB4からの列に入るのはランダムにできるといいのですが…(画像では○の数字を下ろしていますが、☆の数字をおろしても良いし、△の数字をおろしても良い) ●計算式によって入力された数字(B3列)を特定の数字を越えた場合、別の枠(B4列)に移す関数はありますでしょうか?? ●また、それをランダム(関数)で選ぶことは可能でしょうか?? よろしくお願いします。

  • Excelの関数で悩んでいます。

       A   B   C  1 1  A君   3  2 2  B君   6  3 3  A君   9  4 4       12  5 5       15  6 6  B君   18  と、あるとき 「B3」にはA列の数字とC列の数字が一致するB列の値を入れたいのですが、 index関数とかmach関数を使ってもうまくいきません。 どなたか、ご指導よろしくお願いします。

  • IF関数の初級レベルの質問です・・・。

    こんにちは。初歩的な質問で申し訳ありません。 ExcelのA列には「A or B orC」という記号が入っています。 B列には数字が入っています。 そこで、 A列の値が「A」に該当する場合はその行のB列の数字を すべて合計して、合計値をC1に入れる。 A列の値が「B」に該当する場合はその行のB列の数字を すべて合計して、合計値をC2に入れる。 A列の値が「C」に該当する場合はその行のB列の数字を すべて合計して、合計値をC3に入れる。 なお、合計数字が「0」の場合はC列は空白にする。 という関数を作りたいのですが、どういう式にしたらいいでしょうか? よろしくお願いします・・・。

  • エクセル抜き出し合計関数式(SUNIF??)

     初めまして、よろしくお願いします。  C1に20、D1に32と入力すると、E1にA列の20から32の間の数字のB列の値の計(表ではA1の20とA3の28が当てはまるのでB1の2と、B3の1の計をE1に3と表示)を導き出す関数式を教えていただきたく、お願いします。     A  B  C  D  E   1  20  2 20 32  3 2  48  8 3  28  1 4  34  2 5  12  7 ・    ・  ・  ・    ・  ・  

  • エクセルの関数について教えていただけたらうれしいです。

    エクセルの関数について教えていただけたらうれしいです。 例> A B C 01 70 1 01 20 01 10 02 20 02 50 1 02 30 03 80 1 03 20 04 60 1 04 20 04 20 上記のように、A列内に同じ文字(数字など)がある場合、それぞれのB列にある値の最大値がある、C列へ「1」などのフラグが立つような関数はどうしたらよいのでしょう? 説明が下手ですみません。 A列の「01」が3つあるうち、B列の「70」が最大値なので、C列に「1」が付く。 A列の「02」が3つあるうち、B列の「50」が最大値なので、C列に「1」が付く。 A列の「03」が2つあるうち、B列の「80」が最大値なので、C列に「1」が付く。 A列の「04」が3つあるうち、B列の「60」が最大値なので、C列に「1」が付く。 このようになるようにC列に入れる関数が知りたいです。 よろしくお願いいたします。

  •  エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す

     エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す。  初めまして、よろしくお願いします。      A  B  C  D  E 1    赤  青  黄  緑  黒 2  3    4    1  3  2  0  9 5    9  1  3  4  3 ・    ・  ・  ・  ・  ・ ・    ・  ・  ・  ・  ・   112  4  6  1  9  6 113  7  7  5  8  1 114  6  9  1  3  7    115  7     2  5  0 116  8     0     0  という表があります。 各列の空白、もしくは0の入力されている後の値(A列では8、B列では9、C列では2、D列では5、E列では7)と最後尾の数字から2行目の値を(A列では6、B列では6、C列では5、D列では8、E列では6)を抜き出すことのできる関数式の方法がありましたら、教えていただきたく。よろしくお願いします。

  • エクセル関数をもちいてセルを検索するには?

    お世話になります。 早速ですが、以下のようなデータがあるとします。     A    B    C 1   1    100 2   0    200 3   1    10 4   1    20 5   0    30 6   0    300 7   0    10 8   1    30 9   0    5 10  0    10 A列には0か1が、B列にはランダムな数字が並んでいるとします。 これに対し、C列にはA列の0の数を数えて、仮に5個目のB列の値を返したいです。 C1ならA1から0の数を数えて5個目、つまりB9(300)の値を返したい。 C2ならA2から0の値を数えて5個目、同じくB9(300)の値、 C3ならC3から0の値を数えて5個目、つまりB10(10)の値を返したい。 最終的には5個めではなく、任意の数字にしたいのですが、 このような値を返すにはどのような関数をもちいたらよろしいでしょうか? COUNTIFやINDEXでできるのではと思いましたが、 カウント数が指定数を満足させる条件がわからず行き詰りました。 どうかご指導お願いいたします。

  • 関数を教えて下さい。

    関数を教えて下さい。 何時もお世話になります。先日も色々と教えて頂きまして有難うございました。 又教えてもらいたいのですが宜しくお願いします。 相手が0の場合だけ計算しない方法を教えて下さい。 行1列Aに0行1列Bに100と入力します。式は行1列A-行1列B=行1列Cに100と計算しますが列Cに0と計算したいのです。計算方法教えて下さい。宜しくお願いします。

  • エクセルの関数を教えてください

    至急どなたか教えてください。 エクセルでどういう計算方法を入れれば いいのか伝授ください。 評価としてA、B、Cの3種類が あり、それぞれAは売上の0.75がけを する、Bは売上の0.4がけ、Cは0.1がけ をする表を作ります。 列A B C D・・・・ 1A 180 135(=B1*0.75) 2B 200 80(=B2*0.4) 3 ・ ↑本来はこのような形で計算式を 入れればいいと思うのですが、 A列に入れてる評価を今はAでも 後でBに変更した場合、直接また 計算式を入れるというのではなく、 自動にBを入れたらC列のところも 計算式が0.4で計算されるようになる という関数はありますでしょうか? Aだったらこう、Bだったらこう、Cが 入ったらこうというような計算式を一度に セルに入れておきたいんですが。

  • エクセルの関数

    A列に数字が数字が入っています  B列にもA列に近い数字が入っています たとえば A2に51 B2に50  の場合 C2には51と表示 A3に32 B3に34  の場合 C3には34と表示 したいのです。 ようするに 同じ横の数字で C列に関数を入れて A列とB列を比べて 大きな数字の方を入どんな関数をいれたらいいでしょうか?

専門家に質問してみよう