• ベストアンサー

エクセル関数の作り方(IF関数で作れますか?)

エクセルで営業別売上表を作成したいのですが、下記のような場合の関数の作り方が分かりません。 A列に入る文字(F列に入る数値は売上ー仕入の金額です) ”V"の場合  F1*0.5 ”N"の場合  F1*0.2 ”C"の場合  F1*0.6 ”H"の場合  F1*0.4 ”稲垣”の場合 F1*0 ”榊原”の場合 F1*1.0 これらをまとめて一つの欄に入る関数はあるのでしょうか? (得意先別で各営業への売上金額の割合が違うのです。) 教えて下さい。

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

  • ベストアンサー
  • mapooo
  • ベストアンサー率36% (27/73)
回答No.1

例です。 =IF(A1="V",F1*0.5,IF(A1="N",F1*0.2,IF(A1="C",F1*0.6,IF(A1="H",F1*0.4,IF(A1="稲垣",F1*0,IF(A1="榊原",F1*1,)))))) この数式を他のセルにもコピーします。

bara29
質問者

お礼

ありがとうございます。 IF関数で作るとこのようになるんですね。昨日自分でも作ってみたのですが、エラーになるので困っていて。()の使い方など参考になりました。 作ってみます。

その他の回答 (2)

  • kouji_124
  • ベストアンサー率46% (283/605)
回答No.3

色々方法は考えられます。 IF関数で作る事も可能ですが、効率が悪いので他の方法で作成してみました。 例1:[=F1*CHOOSE(MATCH(A1,{"V","N","C","H","稲垣","榊原"},0),0.5,0.2,0.6,0.4,0,1,)] CHOOSE関数とMATCH関数の組み合わせです。 CHOOSE関数は「CHOOSE(インデックス,値1,値2,値3,・・・)」の様に指定します。 関数の働きとしては、「インデックス」の値によって「以降指定された値」を返します。 今回の場合、インデックスに指定する値は文字を元に求めたければいけないので、MATCH関数を使い求めてみました。 MATCH関数は「MATCH(検査値,検査範囲,照合の型)」の様に指定します。 MATCH関数の働きは「検査値」に指定された値を「照合の型」に指定された判定方法で「検査範囲」から探し、値が見つかった位置を数字で返します。 検査範囲は{,,,,,}の形で直接指定も可能です。 照合の型に[0]を指定しているのは、完全に一致した物だけを探す為です。 上記例だとセルA1に文字が入力されていない場合やリストに無い文字が指定されるとエラーが返されてしまうので下記の様にエラー対策を施す方が良いと思います。 [=IF(ISBLANK(A1),"",,IF(ISNA(MATCH(A1,{"V","N","C","H","稲垣","榊原"},0),"",F1*CHOOSE(MATCH(A1,{"V","N","C","H","稲垣","榊原"},0),0.5,0.2,0.6,0.4,0,1,))] セルA1が空白かどうかを調べるためにISBLANK関数を使用し、MATCH関数がエラーを返しているかどうかを調べるためにISNA関数を利用しています。 例2:[=F2*VLOOKUP(A2,Sheet2!A:B,2,FALSE)] VLOOKUP関数を使用した例です。 VLOOKUP関数は「VLOOKUP(検索値,範囲,列番号,検索の型)」の様に指定します。 VLOOKUP関数の働きは「検査値」に指定された値を「検索の型」に指定された判定方法で「範囲」から探し、値が見つかった行の先頭から「列番号」分ずれたセルの値を返します。 この場合、リストを作成しなければいけないので「Sheet2」にリストを作成しました。 リストの形式は、セルA1に[V]、セルB1に[0.5]、セルA1に[N]、セルB1に[0.2]の様にしました。 範囲が[A:B]の様に列のみを指定しているのは、[A1:B6]の様にしてしまうと後からリストに追加する必要が出た場合に大変なので、後々のために列のみ指定しました。 「検索の型」に[FALSE]を指定しているのは「完全一致」検索の為です。 例1の時と同じでセルA2が空白だったり、リストに無い文字が指定されるとエラーが返されてしまうので下記の様にエラー対策を施す方が良いと思います。 [=IF(ISBLANK(A2),"",IF(ISNA(MATCH(A2,Sheet2!A:A,0)),"",F2*VLOOKUP(A2,Sheet2!A:B,2,FALSE)))] 式がすっきりして見えると思いますが、VLOOKUP関数で使用するリストをMATCH関数で流用している為です。

bara29
質問者

お礼

ありがとうございます。 使ったことの無い関数なので一度作ってみます。

  • mame205
  • ベストアンサー率37% (34/91)
回答No.2

F列の隣に2列追加するのは駄目でしょうか? できるのであれば、VLOOKUP関数でできます。 (1)別シート等に、文字列と掛け率の表を作成しておく。   A  B 1  V 0.5 2 N 0.2 3  C 0.6 ・ ・ ・  (2)G列に、「=VLOOKUP(A1,Sheet2!$A$1:$B$6,2,0)」と式を入れる。 Sheet2!$A$1:$B$6は、(1)で別シートに作成した表の範囲です。 その後の「2」は、A列の値を見て、表の2列目(掛け率)を返します。 (3)H列に、「=F1*G1」と入力すれば、(売上-仕入)*掛け率が出ます。 ご参考になれば幸いです。

bara29
質問者

お礼

別シートで掛け率を作り参考にするんですね。 ありがとうございます。列を増やすのは問題ないので試してみたいと思います。

関連するQ&A

  • SUMIF関数の使い方

    SUMIF関数で教えてください。 月別売上表のフォルダの中にある売上先、売上金額を(日ごとになってます。)を別のフォルダの年間得意先売上表にSUNIF関数で処理したいのですが、リンクした際、同時に開いているときは、計算されるのですが、いったん閉じて、SUMIF関数の入っている、得意先売上表を新たに開くと「VALUE」が表示されます。 これを、同時に開かずとも、表示できる方法を教えてください。 よろしくお願いいたします。

  • エクセル IF関数の複合

    エクセル初心者です。よろしくお願いします。 売上比率の集計をしています。 B列:確定金額 C列:発生金額 D列:確定金額÷発生金額の割合を%表示してます I列に数式を入れて割合を集計しようとしています。算出したい数値は 「もしD列が100%以上になったら、一律100%に。且つもしD列が#DIV/0!のエラー値になったら60%にする」 エラーになってしまうのは、B・C列に0円のデータが含まれているためです。 IF関数を2つ使用するようなイメージなのですが、可能でしょうか?

  • エクセルとIF関数について

    エクセル初心者です。 今、下の画像上段のような、データ(シート1)をエクセル2007で作成しました。 売上と販売形式、場所、そして報告形式があります。 今、シート2のAからC列に販売形式、売上場所、売上金額を 手入力で入れてみました。 ここでしたい処理ですが、IF関数を使って、シート2の4列目に自動的に報告形式が 表示される数式を作りたいのです。 単純なIF関数はわかるのですが、この場合、AND関数をどうやってつくっていいか わかりませんでした。 教えてください。お願いします。

  • エクセル関数を使って表を作りたいのですが・・・。

    すみません。 エクセルを使って営業成績表を作成したいのですが、各営業への売上方が少しややこしく、どのような関数を使って作成したらいいか教えて下さい。 売上の割合は下記の通りです。 ・営業は5人 (Aさん、Bさん、Cさん、Dさん、Eさんとします。) ・Aさん仕入れ→Bさん売り          →Cさん売り          →Dさん売り ・Bさん仕入れ→Aさん売り          →Cさん売り          →Dさん売り          ・          ・          ・ Aさん、Bさん、Cさん、Dさんは上記のように売り買いがありまして、その配分は 5:5で売上を分けます。 ・ある特定の得意先(3つの得意先)にだけ、売上の配分がAさん:Bさん:Eさん=5:2:3になります。 このような分け具合で成績表を作成したいのですが、そのような式を用いたら出来るのでしょうか? 

  • エクセルIF関数

    A列に鉄板と和食の種別 B 売上 A1が鉄板だった時、B1の売上を C1に表示する このような条件の場合、IF関数を使うのでしょうか? IF関数をネットで検索しましてもちょっとこのような数式は当てはまらないのかな と思っております。 もしどのような関数を使えばいいのか教えて下るかたがいらっしゃいましたら よろしくお願いします。 レストランの売上をエクセルでおこないたいと考えておるものです。

  • エクセルで関数を使いこのようなこと可能でしょうか?

    こんにちは。皆様のお力を貸してください。 エクセルで商品一覧(シートA)を作りました。販売管理(シートB)と連動させ、納品日欄(F列)に日付が入ったら、列Bに入っている商品の仕入金額をG列に入れたいのです。商品一覧シートは、A列に商品コード、B列に商品名、C列に商品金額、D列に表示させたい仕入金額が入ってます。 関数で簡単に出来そうですが、組み方がいまいちわかりません。 ご存知の方いましたら、ご教授願います。

  • エクセル、IF関数

    エクセルで躓いています。 今期目標額を10%以上上回る売上を達成した支店には「特」 今期目標額を達成した支店には「優」 達成していない支店には何も表示しない という値をIF関数を使用してG6に入れたいと思っています。 例えば、東京支店「今期目標額」がD6、「今期売上額」がE6、「目標達成割合(%)」がF6にある場合 上記の値をG6に入れたいのですが、どのような値を入れたらいいのでしょうか。 よろしくお願いします。

  • エクセル関数(IF?関数)について

    下記の場合、どのような関数を使用したら良いかご教授いただけますと幸いです。 「ステータス」の"納品"と"未納"の各合計を関数を利用して集計したいと思っています。 例えば「もし、ステータスの列が"未納"である場合の、該当する商品の"合計金額"」を求めたいとき、水色セルにどのような関数を使用すれば良いでしょうか? (金額は18000となります) よろしくお願い致します m(_ _)m

  • エクセル vlookupとIF関数

    先ほどこちらで質問した者です。関連してもうひとつお願いします。http://oshiete1.goo.ne.jp/qa3870287.html A列:ID(一部) B列:確定金額 C列:発生金額 I列:=IF(ISERROR(B5/C5),0.6,IF(B5/C5>=1,1,B5/C5))    先ほど教えてもらった数式を入れています。確定金額÷発生金額の割合 L列:ID(全て) 算出したい数値は、M列に「全IDの確定金額÷発生金額の割合」です。 L列を軸にvlookupを使用して、A列に引き当たるIDのものは、すでに数値が出ていますが、L列にあってA列に無いもの(エラー表示になってしまっているもの)を、すべて60%にしたいです。 M列には既にvlookupの関数が入っていますが、可能でしょうか? ちなみにA~C列はピボットテーブルです。

  • IF関数について

    B2セルに「もし売上高(F9)が空白(””)ならばこのセル(B2)は空白にし、そうでない場合には売上高(F9)セルの値を表示せよ」という意味のIF関数を入力する場合どんな式が入りますでしょうか? よろしくお願いします。

専門家に質問してみよう