プロが教える店舗&オフィスのセキュリティ対策術

エクセルで下記のような売上表があります。

F列手数料を関数を使って自動計算させたいのです。通常はINT(E列×0.1)でよいのですが、多数ある店舗の中で3店舗(渋谷店、原宿店、新宿店)だけ、「お子様ランチ」のみ手数料が無料(0円)になります。
その場合の関数を教えて下さい。

  A  B    C   D       E    F
 8/1 品川店 5人 パスタランチ 5,000  500
 8/2 渋谷店 3人 鶏肉定食   3,300 330
 8/2 渋谷店 1人 お子様ランチ  500   0  ←ここ
 8/3 原宿店 2人 豚カツ定食  2,400  240
 8/3 原宿店 2人 お子様ランチ  1,000  0  ←ここ
 8/3 新宿店 1人 パスタランチ 1,000  100
 8/3 新宿店 1人 お子様ランチ  500   0  ←ここ

売上表はこんな感じです。 
宜しくお願い致します。m(_ _)m
 
 

A 回答 (4件)

> メニューが『お子様ランチ』の他に『パスタランチ』も手数料「0」になった場合はどうなりますか?



「お子様ランチ」と「パスタランチ」が手数料「0」と考えるのではなく、

「お子様ランチ」か「パスタランチ」なら手数料「0」と考えるのがポイント。(ANDではなくORね)

D列(「お子様ランチ」or「パスタランチ」) かつ B列(「渋谷店」or「原宿店」or「新宿店」)
ということで、

[F1]=E1*IF(AND(OR(D1="お子様ランチ",D1="パスタランチ"),OR(B1="渋谷店",B1="原宿店",B1="新宿店")),0,0.1)

こうなります。
    • good
    • 0
この回答へのお礼

再度有難うございます!!
ANDではなくORの考え方、大変勉強になりました。
有難うございます。早速色々使わせて頂きます!

お礼日時:2011/08/06 15:21

 基本はANo.1様の御回答の方法となります。


 そして、ANo.2様やANo.3様の様に、掛ける係数の方を0.1と0で切り替えるのでしたら、IF関数は使わずに、

[F1]=E1*0.1*((D1<>"お子様ランチ")+(B1<>"渋谷店")*(B1<>"原宿店")*(B1<>"新宿店")>0)

となります。(「D1が"お子様ランチ"ではない」か、或いは「B1が"渋谷店"ではなく」且つ「B1が"原宿店"ではなく」且つ「B1が"新宿店"ではなく」という場合のみに、E1に0.1を掛けた値に、更に1を掛け、それ以外では0を掛ける)
 Excelでは判定式の結果が「TRUE(正しい)」である場合には、その判定式の部分を数値の1として扱い、
判定式の結果が「FALSE(誤り)」である場合には、その判定式の部分を数値の0として扱います。
 そのため、上記の数式中の

(D1<>"お子様ランチ")

という箇所は、D1が"お子様ランチ"ではない場合には、数値の1として扱われ、D1が"お子様ランチ"である場合には、数値の0として扱われて、計算が行われます。
 同様に、

(B1<>"渋谷店")

という箇所は、B1が"渋谷店"ではない場合には、数値の1として扱われ、B1が"渋谷店"である場合には、数値の0として扱われ、

(B1<>"原宿店")

という箇所は、B1が"原宿店"ではない場合には、数値の1として扱われ、B1が"原宿店"である場合には、数値の0として扱われ、

(B1<>"新宿店")

という箇所は、B1が"新宿店"ではない場合には、数値の1として扱われ、B1が"新宿店"である場合には、数値の0として扱われます。
 例えば、D1が"お子様ランチ"ではなく、B1が"渋谷店"である場合には、上記の関数の計算処理は

[F1]=E1*0.1*((D1<>"お子様ランチ")+(B1<>"渋谷店")*(B1<>"原宿店")*(B1<>"新宿店")>0)
   =E1*0.1*(1+0*1*1>0)
   =E1*0.1*(1>0)
   =E1*0.1*1

という事になります。
 又、D1が"お子様ランチ"で、B1が"秋葉原店"である場合には、

[F1]=E1*0.1*((D1<>"お子様ランチ")+(B1<>"渋谷店")*(B1<>"原宿店")*(B1<>"新宿店")>0)
   =E1*0.1*(0+1*1*1>0)
   =E1*0.1*(1>0)
   =E1*0.1*1

という事になります。
 又、D1が"お子様ランチ"で、B1が"新宿店"である場合には、

[F1]=E1*0.1*((D1<>"お子様ランチ")+(B1<>"渋谷店")*(B1<>"原宿店")*(B1<>"新宿店")>0)
   =E1*0.1*(0+1*1*0>0)
   =E1*0.1*(0>0)
   =E1*0.1*0
   =0

という事になります。
    • good
    • 0
この回答へのお礼

大変丁寧なご解答有難うございます。判りやすくご説明頂き大変勉強になりました。
こういう方法もあるんですね。

お礼日時:2011/08/06 18:01

D列「お子様ランチ」 かつ B列(「渋谷店」or「原宿店」or「新宿店」)


ということで

[F1]=E1*IF(AND(D1="お子様ランチ",OR(B1="渋谷店",B1="原宿店",B1="新宿店")),0,0.1)

でどうでしょう?
    • good
    • 0
この回答へのお礼

早々のご解答有難うございます。この式でもバッチリでした。有難うございます。
とても参考になりました。

お礼日時:2011/08/06 14:08

=IF(AND(OR(B1="渋谷店",B1="原宿店",B1="新宿店"),D1="お子様ランチ"),0,INT(E1*0.1))



をF1に入れて下にコピー。
    • good
    • 0
この回答へのお礼

早速のご解答有難うございます!この数式で出来ました。有難うございます。

メニューが『お子様ランチ』の他に『パスタランチ』も手数料「0」になった場合はどうなりますか?

お礼日時:2011/08/06 14:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!