• ベストアンサー

文字を含んだIF関数

IF関数についての質問です A1を顧客名としB1を受注数量とし、単価を200円とします。 =B1*200 しかし A1が山田様と田中様であった場合、150円で販売 A1が鈴木様であった場合、180円で販売 つまり、特定のお客様だけ金額が変わるというものなのですが 文字を含んだIF関数を教えて頂きたいです。 教えて頂けませんでしょうか。 お願い致します。

noname#207306
noname#207306

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

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.4

こんにちは  最初、皆さんの回答で十分でσ(^_^;出る幕はないなと思いましたm(^^;m  が、自分が質問者さんの立場ならとふと思ったのですが… >A1が山田様と田中様であった場合、150円で販売 >A1が鈴木様であった場合、180円で販売  この例では2例(実はその他を含めて3例)ですけれど、σ(^_^;が自分の仕事だったら他のお客さも入る場合もあるでしょうし、その場合に簡単にエクセル表のメンテナンスが出来て仕事が楽になるように考えるでしょうって思いました。  その場合のキーワードは、「表引き」です(^^)  別のシートに「顧客名」と「単価」を「プライス表」(画像参照:シート名はプライス表)として作成し実行シートから顧客名で参照するのです(^^;  この場合の請求額のC1セルの式は例えば下記のようになります。  =$B1*VLOOKUP($A1,プライス表!$A:$B,2,FALSE)  顧客が増えたらプライス表にどんどん追加していけば良いです(^^)  しかし上記例では、顧客名が重複し違う単価があるとか、顧客名がプライス表に無かった場合のエラー処理は考えていませんm(__;m

その他の回答 (7)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.8

>つまり、特定のお客様だけ金額が変わるというものなのですが文字を含んだIF関数を教えて頂きたいです。 IF関数は条件分岐で処理方法が異なる演算を行うものです。 IF関数は入れ子構造で複雑な条件を目的の処理方法に導くことができる関数なので判断の論理を誤らないよう注意してください。 貼付画像の場合は次の数式のフローチャートです。 =IF(A1="鈴木",B1*180,IF(OR(A1="山田",A1="田中"),B1*150,B1*200)) A1の文字列が"鈴木"であるか、"山田"または"田中"であるかの判定を前後入れ替えても同じ結果になります。 =IF(OR(A1="山田",A1="田中"),B1*150,IF(A1="鈴木",B1*180,B1*200)) 目的の結果を得るにはIF関数を使わない方法もありますが質問はIF関数の使い方のようですから敢えてIF関数による方法を解説させて頂きました。

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

 別の所に対応表を設ける様な事はせずに、関数の中に記述された文字列だけで処理を行う方法は、IF関数に限らず色々なものが考えられます。  以下は「山田」、「田中」、「鈴木」といった特定のお客様の人数を幾らでも増やす事が出来る方法の例です。(まだ他にも方法はあります) =IF(A1="","",INDEX({200,150,150,180},IFERROR(MATCH(A1,{"山田","田中","鈴木"},0),)+1)) =IF(A1="","",IFERROR(INDEX({150,150,180},MATCH(A1,{"山田","田中","鈴木"},0)),200)) =IF(A1="","",CHOOSE(IFERROR(MATCH(A1,{"山田","田中","鈴木"},0),)+1,200,150,150,180)) =IF(A1="","",IFERROR(CHOOSE(MATCH(A1,{"山田","田中","鈴木"},0),150,150,180),200)) =IFERROR(INDEX({"",150,150,180},MATCH(A1&"◆",{"◆","山田◆","田中◆","鈴木◆"},0)),200) =INDEX({200,"",150,150,180},IFERROR(MATCH(A1&"◆",{"◆","山田◆","田中◆","鈴木◆"},0),)+1) =IFERROR(CHOOSE(MATCH(A1&"◆",{"◆","山田◆","田中◆","鈴木◆"},0),"",150,150,180),200) =CHOOSE(IFERROR(MATCH(A1&"◆",{"◆","山田◆","田中◆","鈴木◆"},0),)+1,200,"",150,150,180) =IF(A1="","",ISERROR(MATCH(A1,{"山田","田中","鈴木"},0))*200+(A1="山田")*150+(A1="田中")*150+(A1="鈴木")*180) ※尚、上記の関数の中で「◆」の文字が使われている部分に関してですが、これは何も「◆」という記号ではなくとも、1つの関数の中で「◆」使われている箇所が、全て同じ文字になっていさえすれば、どの様な文字であっても構いません。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.6

A1*(200     -If(Iserror(Find("山田",$B$1)),0,50)     -If(Iserror(Find("田中",$B$1)),0,50)     -If(Iserror(Find("鈴木",$B$1)),0,20)) 如何でしょうか? Ifのブロックを増やせば いくらでも行けます よ

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.5

教えたくないわけではないですが(既に回答もありますし)、この程度のことがわからないなら、一冊Excelの本を手元に用意した方が良いですよ。

noname#207306
質問者

お礼

無知で申し訳ございませんでした。 しかし私ほどの初心者ですと この機能がどこのページを見ればいいかさえ分からないものなので、ついつい訪ねてしまいました。 皆さん優しいので、本当にありがたいです^^

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

パターンが増えることも考慮してVLOOKUPを使う表を作成したほうがいいですね。 山田様 150 田中様 150 鈴木様 180 という表を作っておいて =B1*IFERROR(VLOOKUP(A1,表範囲,2,FALSE),200)

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

=IF(OR(A1="山田",A1="田中"),B1*150,IF(A1="鈴木",B1*180,B1*200))

回答No.1

  =if(or(A1="山田様",A1="田中様"),B1*150,if(A1="鈴木様",B1*180,B1*200)) どうですか?  

関連するQ&A

  • 別表参照の関数

    IF関数についての質問です A1を顧客名としB1を受注数量とし、単価を200円とします。 =B1*200 下に挙げる2つのパターンについて 別で作ったプライス表を参照し、計算する式を作りたいのですが 上手くできずに困っています… パターン 1  A1=山田さま or 田中さま @150円  A1=鈴木さま @180円  A1=その他顧客 @200円 パターン 2  A1=山田さま or 田中さま @150円  A1=鈴木さま @180円  A1=その他顧客  注文数100個以下 @200円  注文数100個以上 @160円 VLOOKUP?を使用した表を初めて作ってみたいのですが 詳しく教えて頂けませんでしょうか。 お願い致します。

  • 文字列を含んだIF関数

    IF関数についての質問です 現在以下のような関数を入れています。 A1とは受注数量です。 A1が100個以下の場合A1×300円 A1が100個以上の場合A1×200円     ↓ =A1*IF(A1>=100,200,300) つまり、受注数量によって金額が変わるというものなのですが B1に顧客名を入れて、B1が○○様だった場合100円で売るという 文字を含んだIF関数も足したいのです。 方法がありましたら教えて頂けませんでしょうか。 お願い致します。

  • IF関数

    A1=お客さんの名前と B1=注文数 「鈴木サマ」には単価100円 その他は100注文で単価150円、100以下で単価200円で販売しています。 =IF(A1="鈴木",B1*100,B1*IF(B1>=100,150,200)) この式に、「山田サマ」だったら単価120円という式を足したいのです。 宜しくお願い致します。

  • EXCEL ワイルドカード IF関数

    お世話になっております。 早速ですが質問です。 A1 発注先 B1 単価 C1 1  D1 2  E1 3  とあります。 A1の発注先が山田(C1)、鈴木(D1)、サトウ(E1)だったとき、B1に1か2か3の数字が現れるようにしたいのです。 式は B1に =IF(A1="","",IF(A1="山*",C1,IF(A1="鈴*",D1,IF(A1="サ*",E1,"")))) と作っているのですが、ワイルドカードが認識されません。 質問をする前に色々な質問をざっと読んでみたのですが、 やはりIF関数だとワイルドカードは認識されないのでしょうか? もし認識されないとしたら、他にどんな関数を用いたらよいでしょうか? 回答 宜しくお願いいたしますm(__)m

  • エクセル関数について

    エクセル2003です。 宜しくお願いします。 A列に担当者名、B列に金額が入力されており、 山田  10000 田中  8000 山田  26000 田中  20000 山田  20000 山田  -26000 山田 -10000 例えば、担当山田で、なおかつ20000以上の金額の合計、または販売本数を出す場合、以前質問させて頂いたのですが、SUMPRODUCT関数でできたのですが、上記のようにキャンセル(-)が入ってくる場合にどのような式にしたらいいでしょうか この場合ですと、山田の20000円以上の合計金額が20000円、販売本数が1と表示させたいです。 何卒お願いします

  • EXCEL関数

       A      B        C     D    E 1 田中(東京) 合格   8/1      鈴木 2 山田(大阪) 不合格  8/1      田中  3 鈴木(京都) 合格   8/3      山田 4 山田(大阪) 合格   8/4      伊藤 たとえばA1からE4にこのような入力がされているとします。(D列はなにも入力されていません。) 山田さんが合格のときF列に日付を表示し、そうでなければ空白を表示するにはどうすればよろしいのでしょうか? この場合F4に「8/4」と入るはずなのですが、 =IF(A4=E3 & "*",IF(B4="合格",C4,""),"") という式では空白になってしまうのです。 どうすればよろしいでしょうか。式には"山田"と入力せず、E3と示したいです。 分かる方教えてください。 EXCEL2000を使っています。

  • Excel関数のifとvlookupの組合せについて

    10月というシートと11月というシートがあります。10月にあるIDが11月にもあるようなら、11月のシートに○をないようなら×を入れるような関数を作ろうと思っています。ifとvlookupを組み合わせたらどうにかなりそうだと思ったのですが、どうも思った結果が出ません。どなたか教えて下さい。 <10月シート>   A  B 1 555 田中  2 666 鈴木 3 777 山本 <11月シート>   A  B  C 1 999 本田 × 2 888 鈴木 × 3 666 鈴木 ○

  • エクセル IF関数を教えて下さい。

    エクセル初心者です。関数を教えて下さい。 IF関数でできるのかも解りません。 A組 番号1 山田 花子 A組 番号2 河崎 洋子 B組 番号1 高木 健太 セルA2にA1と入力するとセルB2に山田花子、セルA3にB1と入力するとセルB3に高木健太と自動的に表示する方法を教えて下さい。 IF関数でできるのでしょうか?

  • ファイルメーカー6のif関数について

    ファイルメーカー6、MacOS9.2を使ってる初心者です。 ファイルメーカーの事で前も教えて頂きましたが、またお願いします。 商品名、数量、単価、合計という4つのフィールドがあります。 合計フィールドは数量フィールド×単価フィールドという計算式で出していて これ自体は問題ないんですが、 商品名を値一覧から(約10品名)選び、選んだ品名から自動で 単価を入れたいんですがやり方が分かりません。 例えば商品名にみかんを選んだ場合は単価に50を、 リンゴを選んだら70を バナナを選んだ90を・・・・ こんな感じで10品目分を設定したいんですが出来ません。 ひとつだけならif関数で出来たんですが・・・ もちろん、設定が出来るならif関数じゃなくても良いんです。 よろしくお願いいたします。

  • IF関数について教えてください。

    IF関数について教えてください。    A    B    C    D     1              ここの関数     この場合D1の数式をご教授お願いします。   もしA1に数値を入力した場合は「C1+A1」、もしB1に数値を入力した場合は「C1-B1」   おそらく2つのIFがあるのはわかるのですができません。      よろしくお願いいたします。

専門家に質問してみよう