• ベストアンサー

IF関数の条件がわかりません

ExcelのIF関数の条件でわからないので教えてください。 「6%以下かつ50,000以下だと判定A、6%以下かつ30,000以上50,000未満は判定B、それ以外はC」 問題の解答ですと、VLOOKUPを使用するみたいですが、検定でわざわざ参照する表を使用しないといけないので、IF関数のみで出来るならその回答を教えていただけますか? よろしくお願いします。

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

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

「6%以下かつ50,000以上だと判定A、6%以下かつ30,000以上50,000未満は判定B、それ以外はC」 IF文だけだと =IF(A1<=6%,IF(B1>=50000,"A",IF(B1>=30000,"B","C")),"C") LOOKUP関数との組み合わせで表を参照しない場合の設定方法 =IF(A1<=6%,LOOKUP(B1,{0,30000,50000},{"C","B","A"}),"C") または =IF(A1<=6%,VLOOKUP(B1,{0,"C";30000,"B";50000,"A"},2,TRUE),"C") または =IF(A1<=6%,HLOOKUP(B1,{0,30000,50000;"C","B","A"},2,TRUE),"C")

cocomam24
質問者

お礼

お礼が遅くなりました。 簡潔な御説明、ありがとうございます。 やってみたら、解決できました。 ありがとうございます。

その他の回答 (2)

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

こんにちは  この手の質問には 「データ1が条件1で、かつデータ2が条件2ならば判定A」というような提示の仕方をして欲しいです。  取り合えず、%をAとし数値をBとします。  IF関数の条件は、論理式と呼ばれるもので集合とも密接に関係します。 >「6%以下かつ50,000以下だと判定A、6%以下かつ30,000以上50,000未満は判定B、それ以外はC」  まず、プログラミング言語で表現してみます。Excelの質問なのでBASIC言語を使ってみます。  IF (A<0.06) AND (B<=50000) THEN PRINT "A"  ELSEIF (A<0.06) AND ((3000<=B) AND (B<50000)) THEN PRINT "B"  ELSE PRINT "C"  Excel の関数式に置き換えます。  =IF(AND(A1<0.06,B1<=50000),"A",IF AND(A1<0.06,AND(3000<=B1,B1<50000)),"B","C"))  次にもしもA<0.06で場合分けした場合を考えます(ここから先は回答者の趣味の世界ですので興味がなければ無視してください)。  IF (A<0.06) THEN    IF (B<=50000) THEN      PRINT "A"    ELSEIF (3000<=B) AND (B<50000) THEN      'この判定はされることがない      PRINT "B"    ENDIF  ELSE    PRINT "C"  ENDIF  ここで、この命題は判定Aの条件式が判定Bの条件式を含んでいるので"A判定"と"C判定"だけしか実行されないということに気づきます。とりあえず論理矛盾は無視してExcel の関数式に置き換えます。  =IF(A1<0.06,IF(B1<=50000,"A",IF(AND(3000<=B1,B1<50000),"B","C"))

cocomam24
質問者

お礼

回答ありがとうございます。 この内容は、Excel検定の問題だったので、そのまま書いてしまいました。 PC初心者なので、まだまだわからない事ばかりです。 細かな説明ありがとうございました。

回答No.1

> 6%以下かつ50,000以下だと判定A > 6%以下かつ30,000以上50,000未満は判定B 6%以下かつ50,000「以上」だと判定A の間違いじゃないかと思いますけどね。ま、ナニが6%でナニが5万 なんだかまるっきり不明では条件もへったくれもないので、「A列 が6%以下かつB列が50,000以上だと判定A」と仮定します。 まず、A列が6%超なら判定Cです。 残り(A列が6%以下)のうち、B列が5万以上は判定Aです。 残り(A列が6%以下でB列が5万未満)の内、B列が3万以上は判定Bです。 残り(A列が6%以下でB列が3万未満)は判定Cです。 =if(A1>0.06,"C",if(B1>=50000,"A",if(B1>=30000,"B","C"))) こんな感じですね。

cocomam24
質問者

お礼

お礼が遅くなり、すみません。 検定での模擬試験問題だったのですが、わからなくて。 御説明ありがとうございました。

関連するQ&A

  • IFとVLOOKUP関数を組み合わせて

    IFとVLOOKUP関数を組み合わせて条件に一致させた数値を出したいのですが引数の記述がわかりません具体的にはセルB5の値が2以上10未満の時は4,100を10以上15未満の時は6,500を15以上25未満の時は11,300を25以上35未満の時は16,100を35以上45未満の時は20,900をセルD5に標示させたい時はどんな記述をすればよろしいでしょうか?IF関数VLOOKUP関数を用いて別のセルにこの参照をさせる表(セルA7に2,B7に4,100 A8に10,B8に6,500 A9に15,B9に11,300…)を作成するすればできると思うのですが…

  • IF関数が長くて、実行できない。

    関数初心者です。Excel2003を使用しております。 ~目的~ IF関数が長くなり、実行することが出来ない。 VLOOKUP関数の複数範囲の中から検索できる数式を作成したい。 ~状況~ ・VLOOKUP関数で複数の範囲を指定している。 ・各範囲は_コード表という名前の定義付けをしており、_コード表1~12まである。 ・_コード表12までの複数範囲の中から検索できる数式を作成したい。 =IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表1,5,0)),IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表2,5,0)),IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表3,5,0)),"",VLOOKUP(B5&"_"&C5&"_"&D5,_コード表3,5,0)),VLOOKUP(B5&"_"&C5&"_"&D5,_コード表2,5,0)),VLOOKUP(B5&"_"&C5&"_"&D5,_コード表1,5,0)) 上記の数式で検索が出来るのですが、 _コード表12までになると、関数が長すぎて実行できません。 何か良い方法はありませんでしょうか。 ご回答をお待ちしております。

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

    お世話になります。 作成している表の中で、利用しようとおもっている関数について教えてください。 A1セルに下記のようなIF関数を作成しました。 =IF(AND(B2>=1,C2<=0),"○",IF(AND(C2>=1,B2<=0),"○",IF(AND(B2>=1,C2>=1),"○",IF(AND(B2<=1,C2<=1),"")))) B2セルは別シートからVLOOKUPを利用して検索してきて、数字を表示させているセルのため、 該当しない場合”#N/A”と 表示されるところがありました。それで、”=IF(ISERROR”を利用して、#N/Aと表示される場合、空白で表示される数式にしたところ、今度はA1セルが条件にあっていないのに”○”と表示されるようになりました。≪”B2=空白(”#N/A”),C2<=1の場合にあたるのだと思います。≫ *B2セルを”空白”ではなく”0”で表示させるようにしても同様に”○”となりました。 A1セルに、  B2>=1,C2<=0の場合”○”  C2>=1,B2<=0の場合”○”  B2>=1,C2>=1の場合”○”  B2<=1,C2<=1の場合"空白" で表示できる方法をご存じの方、ご教示お願いいたします。 簡単なことなのかもしれませんが、エクセル関数初心者のため、大変困っております。 うまく、不明な点を説明できていませんでしたら、申し訳ございません。何卒 よろしくお願いいたします。

  • 複数条件での値参照をする関数

    Excel2007を使っています。 以下のような表があります。 店番  月度  個数 111     4    1 111     5    0 113     4    0 112     4    1 113     5    2 別のシートに以下の表があります。 店番  4月個数  5月個数 111 112 113 この4月個数の列と、5月個数の列に関数で値を参照させたいと思います。 店番をA1セルとすると、B2セルには店番が111の4月の個数を表示させたいです。 B2に =IF(ISERROR(VLOOKUP(A2,元!A:B,2,0)),"",IF(VLOOKUP(A2,元!A:C,2,0)<>4,"",VLOOKUP(A2,元!A:C,3,0))) C2に =IF(ISERROR(VLOOKUP(A1,元!A:B,2,0)),"",IF(VLOOKUP(A1,元!A:C,2,0)<>5,"",VLOOKUP(A1,元!A:C,3,0))) このような式を入れると、4月か5月どちらか上に書いた方しかデータが表示されませんでした。 更新ボタンやトリガーを使わずにできるといいので、ピボットやVBAではなく関数でやりたいと思っているのですが、どのようにすれば良いか分かりません。 使える関数があれば、ぜひ教えて下さい。

  • IF関数の条件に関数を指定

    Excelに関する質問です。 ちょっと分かりづらいのですが、例えばセルA1とB1があるとします。 A1には別シートのセルが参照されています。(「="あ!A1"」など) ここで、B1にはIF関数を入れたいのですが、その時A1の関数式内の文字を条件にしたいのですが、そういうことはできますか? つまり、B1にIF関数で「A1セル内の関数式内に"あ"の文字がある時に"い"と表示する」のようにしたいのです。 普通に「=IF(A1="あ","◯","")」ではできません。 Google先生でも調べてみたのですが、分かりませんでした。 お知恵をいただければ幸いです。

  • Excel関数で、こんなことできますか?

    Excel関数で、こんなことできますか? 『沢山のパターンの中から、自動判定したい。』 (1)~(4)の4パターンで自動判定するよう設定したいのですが、 Excel関数を使って、できるのでしょうか? もし無理であれば、(1)、(2)のみとかだけでもできればありたがたいです。 ちなみに(1)のみの場合は、IF関数で次のように設定しました。 =IF(B6>49,"S",IF(B6>34,"A",IF(B6>24,"B",IF(B6>14,"C","D")))) この他に合計値を出す範囲内のセル( 例えばB3やB4 )に 「N」という表示があった場合には、(2)~(4)の判定をさせたいです。 (エラー値となる場合にはISERRORで”N”と表示するようにしています。) (1)エラーがない場合 判定   合計  S  45以上50以下  A  35以上45未満  B  25以上35未満  C  15以上25未満  D  10以上15未満 (2)B3=Nの場合 判定  合計  S  35以上40以下 A  25以上35未満  B  15以上25未満  C  10以上15未満  D   5以上10未満 (3)B4=Nの場合 判定  合計  S  25以上30以下  A  20以上25未満  B  15以上20未満  C  10以上15未満  D  5以上10未満 (4)B3,B4ともNの場合 判定 合計  S  20以上25以下  A  15以上20未満  B  10以上15未満  C   5以上10未満  D   2以上 5未満 Excel関数でどの関数を使えるのかも判りませんし、マクロも判りません。 普段は似たものを検索してコピペしていますが、複雑なものは判りません。 どなたか、お判りでしたら、お教え下さい。 よろしくお願いいたします。

  • エクセルのif関数で8つ以上ある場合について教えて下さい。

    エクセルのif関数で8つ以上ある場合について教えて下さい。 バージョン:エクセル2002 以下のような場合       1,000未満 → A 1,000以上 1,500未満 → B 1,500以上 2,000未満 → C 2,000以上 2,500未満 → D 2,500以上 3,000未満 → E 3,000以上 3,500未満 → F 3,500以上 4,000未満 → G 4,000以上 4,500未満 → H 4,500以上 5,000未満 → I 5,000以上       → J 現在のエクセルバージョンでは、 if関数の7レベルを超えてしまい、Lookup関数では一致した値しか拾ってくれません。 このような場合、以上、未満などの比較演算子を使用した範囲内の数値の分岐結果を取得するには どのようにすればよいのでしょうか? 現在は、次のように表を作成して行っております。     A     B   C  ←セル列  1        1,000  A  2  1,000   1,500  B  3  1,500   2,000  C  4  2,000   2,500  D  5  2,500   3,000  E  6  3,000   3,500  F  7  3,500   4,000  G  8  4,000   4,500  H  9  4,500   5,000  I  10  5,000        J  ↑ セル行 別の関数などを使用してできる場合(VBA不可)などでも構いませんので、 どなたかご教授願います。 宜しくお願いします。

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

    エクセルの数式でIFを使って、下記のような複数の条件の時に、それぞれの計算結果を算出する式を作りましたが、単純に条件を並べただけで(IFとAND使用)、式が長くなってしまいます。これを短く出来る式の方法はありますでしょうか?(他の関数を使用する方法など)また、エクセルの関数の数式を応用編まで詳しく調べられるサイトをご存知でしたら教えてください。 (条件の例)R1への式入力 (1)A1がに"A"か"B"かを入力 (2)A1がAで、B2の値がC3以下の時、R1には8、C3より大きい場合は、B2-C3の値を表示 (3)A1がBで、B2の値がC3以下の時、R1には5、C3より大きい場合は、(B2-C3)/2の値を表示 といった条件を満たすものが作成したいです。 ちなみに私が作成した式は、 =IF(AND(A1=A,B2<=C3),8),IF(AND(A1=A,B2>C3),B2-C3,・・・・)って感じです。こんな方法しか無いでしょうか?

  • 表計算のifの条件式について

    LibreOfficeの表計算のifの条件式について わからない点があります。 A1からA9までテストの点(満点100)が入力されています。 問題は 【59以下なら『C』、79以下なら『B』、100以下なら『A』とする。】 とあります。 なので(1)~(4)の導けそうな日本語文を考え その条件で入力しましたが、 (4)しか正しく導けませんでした。 (1)~(3)のダメな点は一体どこなんでしょうか? 何しろ初心者なもので、あまり専門用語を使わず 噛み砕いてご回答してくださるとよりありがたいです。 是非、よろしくお願いします。 (1)、100以下なら『A』、80未満を『B』、60未満を『C』とする。  =if(a1<=100,"A",if(a1<80,"B",if(a1<60,"C","")))  →全部がAになる (2)、100以下なら『A』、79以下を『B』、59以下を『C』とする。  =if(a1<=100,"A",if(a1<=79,"B",if(a1<=59,"C","")))  →全部がAになる (3)、60未満を『C』、80未満を『B』、それ以外を『A』とする。  =if(a1<60,"C",if(a1<80,"B","A"))  →全部がCになる (4)、60未満を『C』、80未満を『B』、100以下を『A』とする。  =if(a1<60,"C",if(a1<80,"B",if(a1<=100,"A","")))  →ちゃんとなる。

  • エクセルのIF関数

      a b c イ 1 2 3 ロ 4 5 6 ハ 7 8 9 テスト問題を二元にし、このような組み合わせ表で、1~9の番号をマークシートに記入させることにしました。 手持ちの解答早見表を、「1ならイa」「3ならイc」のようにエクセルで作りたいのですが、IF関数を作ってもエラーばかり出てしまいます。どなたかこのIF関数が分かる方、教えていただけますか。 1  3   6 ・・・・ イa イc  ロc

専門家に質問してみよう