- ベストアンサー
IF関数の条件がわかりません
ExcelのIF関数の条件でわからないので教えてください。 「6%以下かつ50,000以下だと判定A、6%以下かつ30,000以上50,000未満は判定B、それ以外はC」 問題の解答ですと、VLOOKUPを使用するみたいですが、検定でわざわざ参照する表を使用しないといけないので、IF関数のみで出来るならその回答を教えていただけますか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「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")
その他の回答 (2)
- A88No8
- ベストアンサー率52% (835/1605)
こんにちは この手の質問には 「データ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"))
お礼
回答ありがとうございます。 この内容は、Excel検定の問題だったので、そのまま書いてしまいました。 PC初心者なので、まだまだわからない事ばかりです。 細かな説明ありがとうございました。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
> 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"))) こんな感じですね。
お礼
お礼が遅くなり、すみません。 検定での模擬試験問題だったのですが、わからなくて。 御説明ありがとうございました。
お礼
お礼が遅くなりました。 簡潔な御説明、ありがとうございます。 やってみたら、解決できました。 ありがとうございます。