エクセルでIF関数を使った論理条件式を作成しましたが、7段階以上の条件がある場合はどうやって設定するのですか。ANDやORで単純につなげても駄目です。是非教えてください!

このQ&Aに関連する最新のQ&A

A 回答 (2件)

IF関数では7段階以上の設定は出来ないので、比較用のテーブルを作成してLOOKUP、HLOOKUP、VLOOKUPを使用してはいかがですか?


(その条件がどのようなものなのか分からないのと詳しいアドバイスは出来ませんが・・・。)
    • good
    • 0
この回答へのお礼

早速有り難うございます。関数はいまいちなじめないのですが、使えると便利ですのでめげずに挑戦致します。

お礼日時:2001/08/29 10:55

CHOOSE関数というのもあります。


最大29種類という規制もありますが・・・。
    • good
    • 0
この回答へのお礼

ありがとうございます。
新たな関数に、是非挑戦いたします。

お礼日時:2001/08/29 10:57

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QIF・ANDで複数条件による7段階評価をしたい

売上(A行)と販売数(B行)のデータがあり、
下記のような条件にて7段階評価を関数を使用して表示させたいです。

評価    売上        販売数
A     300万以下     9000以下
B     300万以上     9000以下
C     300万以下     9000~25000以下
D     300万以上     9000~25000以下
E     300万以下     25000~50000以下
F     300万以上     25000~50000以下
G     -           50000以上

自分なりにIFとANDを使用して考えてみても、思うような結果が表示されませんでした。
(引数が多すぎなどのエラー)

お手数ですが、ご教授願います。

(WIN7、EXCEL2010)
     

Aベストアンサー

=IF(AND(A13<=300,B13<=9000),"A",IF(AND(A13>300,B13<=9000),"B",IF(AND(A13<=300,B13>9000,B13<=25000),"C",IF(AND(A13>300,B13>9000,B13<=25000),"D",IF(AND(A13<=300,B13>25000,B13<=50000),"E",IF(AND(A13>300,B13>25000,B13<=50000),"F",IF(B13>50000,"G")))))))
多分これで出来るはずです。(試したのはExcel2002ですが…)

以上、以下はその数値を含みます。その辺を調整して下さい。

QエクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?

ワークシート関数で書けば
=IF(OR(F18=0,AND(F15>0,F16>0)),TRUE)です。
これをVBAで書こうとして

If Sheet1.Range("F18") = 0 Or Sheet1.Range("F15") > 0 And Sheet1.Range("F16") > 0 Then
MsgBox True
Else
MsgBox False
End If

とやってみたのですが、正しくないようです。
どのように書けばいいのでしょうか?

Aベストアンサー

>とやってみたのですが、正しくないようです。

式は正しいと思いますよ

ANDとORは、ANDが先に演算されます。/*と+-では、/*が先に演算されるようなものです。

でも、わかり易くするために、#1のかたのように括弧をつけるほうが良いですね。

Q論理関数、IFとANDを組み合わせた場合

いきなりですが・・・
=if(and(b11=0,b12+b13+b14+b15+b16=1),e7,if(and(b11=0,b12+b13+b14+b15+b16=2),e7*1/2,if(and(b11=0,b12+b13+b14+b15+b16=3),e7*1/3,if(and(b11=1,B12+b13+b14+b15+b16=1),e7*1/2,if(and(b11=1,B12+b13+b14+b15+b16=2),e7*1/4という具合で数式を入れていましたが、この流れで、30回くらい?繰り返し入力していたら、途中から急に貴方の関数は間違いです的な感じで数式が反映されなくなりました。
WORDみたいにある程度の入力したら、それ以上は無理という決まりがExcelにもあるのでしょうか?
何回も見直しましたが、私の入力ミスは見当りません。
誰か具体的な解答を教えていただけませんか?
因みに、ほとんどExcelに関しては素人です。
上記の数式?くらいなら反映されるのですが・・・。

Aベストアンサー

>Excelにもあるのでしょうか
こんなの具体的には一々知らないけれど、コンピュター関連での常識。
いまさら質問されることに驚く。
数の桁数(マシン語レヴェル)から始まって、諸所にすべて仕様上の制約があります。プログラムを作る言語上の制約、出来上がったソフト上の制約など。
どんなソフトでもあります。しつこいので解説書などには、書いてない場合が多いだけです。
WEBででも調べてみたら。例 Googleで「エクセル 関数 制限」で照会など。
エクセルでの一端は
http://www.relief.jp/itnote/archives/000579.php
関数に設定できるネストレベル 7
http://asugi23.web.infoseek.co.jp/excel/soft33.htm
の4 論理関数の併用とネストの制限 (2003まで)
バージョンによって違う場合があるので面倒です(特に2007で変化したものがある)。
AND関数は30個までです。SUM関数も30個までです。(2003まで)
IFのネスト数とSUMの引数の制約は該当頻度が多く有名です。
他に関数では、範囲指定出来る列が1列だけとか、ほとんどの関数に
制約があります。
ーー
質問の式は、常軌を逸しているぐらい長い。解説書など見て、異常に長いという感覚をもち、その場合何か他の方法が無いか調べるように
すべきです。本件もそれですが。
=SUM()で置き換える部分もある(同列で連続したセルの加算は
=SUM(B12:B16)とか。
ーー
一度関数の本を読むとか、スクールに行って、系統だって勉強する
必要があると思う。自己流でここまで来たのだと思うが。
さらに言えば、場合分けが自由なVBA(を使ってのユーザー関数)などを勉強されるのが良い。

>Excelにもあるのでしょうか
こんなの具体的には一々知らないけれど、コンピュター関連での常識。
いまさら質問されることに驚く。
数の桁数(マシン語レヴェル)から始まって、諸所にすべて仕様上の制約があります。プログラムを作る言語上の制約、出来上がったソフト上の制約など。
どんなソフトでもあります。しつこいので解説書などには、書いてない場合が多いだけです。
WEBででも調べてみたら。例 Googleで「エクセル 関数 制限」で照会など。
エクセルでの一端は
http://www.relief.jp/itno...続きを読む

Q【ExcelVBA】IF条件を満たしているのに、IF条件のところで止まってしまう

Sub test1()
変数1 = IsEmpty(Range("C1"))
If Range("A1") > 0 And Range("B1") = 0 And 変数1 = True Then
  test2
End If
End Sub

止まったときのデバッグでの表示は
Range("A1")は「100」(セルの中身)
Range("B1")は「0」(セルの中身)
変数1はRange("C1")がエラー表示なので「True」

すべての条件を満たしているのですが、
IF条件のところで止まってしまいます。
(IF条件のところの1行が黄色くハイライトになっている状態)

止まったデバッグの後に、F5を押して実行させると、
IF条件の続きから実行されて、test2が実行されて処理が終了します。

何で、IF文のところで一度止まってしまうのかわかりません。

Aベストアンサー

>変数1はRange("C1")がエラー表示なので「True」

そのような決まりはありません。
エラー値はエラーとして取得するので、書かれたような真偽の判定はできません。

ISERROR関数等を使ってエラーを検出する事になります。

http://excel.onushi.com/function/iserror.htm

QEXCEL IF関数 AND、OR条件

先ほど、以下のような質問をさせて頂き、回答を頂いたものについての、追加の条件を付けた場合についての数式について、ご教授お願いいたします。

◆以前、質問引用
以下の「D」の「○」「×」を数式で入力するのが目標です。
数式で表すことができますでしょうか?

条件としましては、
B>Cのとき、Aの文字列が「X1またはX2」の場合は、「○」、それ以外は「×」
C>Bのとき、Aの文字列が「Y1またはY2」の場合は、「○」、それ以外は「×」
それ以外のとき、(B=C,どこかが空白のとき)は、空白

  A  B  C  D
1 X1 37 63 ×
2 X2 78 22 ○
3 Y1 45 55 ○
4 Y2 29 71 ×

◆回答 成功しました。
=IF(OR(COUNTA(A1:C1)<3,B1=C1),"",IF(B1>C1,IF(OR(A1="X1",A1="X2"),"○","×"),IF(OR(A1="Y1",A1="Y2"),"○","×")))

◆引用終了

ここに、追加条件を付加したいのですが、

BとCどちらか大きい数字が、なおかつ80以上のもの。ただし100は除く
それ以外は空白(100の場合も空白)

という条件を付加して、80以上99以下の「○」と「×」をE列(NEW)に返したいと考えています。

回答を頂いた数式を一つずつ分解して理解しようとしましたが、どこにいれていいやら、後半の数式の使い方がいまいち理解できません。

分解(参考)

論理式 IF(OR(COUNTA(A1:C1)<3,B1=C1),
真の場合"",
偽の場合 IF(B1>C1,IF(OR(A1="X1",A1="X2"),"○","×"),IF(OR(A1="Y1",A1="Y2"),"○","×")))

宜しくお願いいたします。

先ほど、以下のような質問をさせて頂き、回答を頂いたものについての、追加の条件を付けた場合についての数式について、ご教授お願いいたします。

◆以前、質問引用
以下の「D」の「○」「×」を数式で入力するのが目標です。
数式で表すことができますでしょうか?

条件としましては、
B>Cのとき、Aの文字列が「X1またはX2」の場合は、「○」、それ以外は「×」
C>Bのとき、Aの文字列が「Y1またはY2」の場合は、「○」、それ以外は「×」
それ以外のとき、(B=C,どこかが空白のとき)は、空白

  A  B  C ...続きを読む

Aベストアンサー

長い式を使うと、後でメンテナンスする時に何をやろうとしていたのか解らなくなって、大変なんですよね。
一例ですが、作業列を使ってみました。添付の図も見て下さい。

E3: =IF(SUM(F3:H3)>0,"",IF(SUM(I3:J3)=2,"○","×"))
F3: =(COUNTA(A3:C3)<3)*1
G3: =(B3=C3)*1
H3: =(MAX(B3:C3)=100)*1
I3: =(80<=MAX(B3:C3))*(MAX(B3:C3)<100)
J3: =IF(B3>C3,OR(A3="X1",A3="X2"),OR(A3="Y1",A3="Y2"))*1

E3:J3を下方向にコピーしてF:J列を非表示にでもしてください。


このカテゴリの人気Q&Aランキング

おすすめ情報