• 締切済み

エクセル 複数条件のIF関数 で困ってます

恐れ入ります。 仕事でエクセルを用いて文書を作成しているのですが、 知識が低い為、思う様にIF関数を使いこなせません。 具体的に申し上げますと、 A1、B1、C1の3つのセルがあります。A1には常に何らかの情報が 入っているけれど、B1に情報が入ったら、B1の情報が優先され、 C1に情報が入ったら、C1が優先される。つまり、B1とC1に情報が 無い時は、A1が優先される事になります。 また、A1には必ず何か情報が入りますが、B1・C1共に情報が入る 事はありません。 ですので考えられる組み合わせは・・・ A1のみ情報あり →A1を優先 A1とB1に情報あり→B1を優先 A1とC1に情報あり→C1を優先 となりますが、この場合はどの様な数式を入れたら良いのでしょうか? 急を要する事態の為、大変困っています。 解りづらい説明で大変申し訳ないのですが、 どなたかご教授下さいます様、お願い致します。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

一例です。 =CHOOSE(1+(B1<>"")*1+(C1<>"")*2,A1,B1,C1)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.4

アルゴリズムの作り方がちょっと下手ですね。 A1のみ情報あり →A1を優先 A1とB1に情報あり→B1を優先 A1とC1に情報あり→C1を優先 とのことですが、最優先の条件は何ですか? C1に情報があるかどうか、ですよね。 A1に情報があっても無くても、B1に情報があっても無くても、C1に情報があったら、C1を優先するんですよね。 であれば、 C1に情報あり→C1を優先 C1に情報なし→B1に情報あり→B1を優先 C1に情報なし→B1に情報なし→A1を優先 ということですよね。 文章混じりの式を作ると IF(C1に情報があるかどうか,あったらC1を優先,なかったら別の条件:IF(B1に情報があるかどうか,あったらB1を優先,なかったらA1を優先)) となります。 これを計算式にすると、 IF(C1<>"",C1,IF(B1<>"",B1,A1)) となります。

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

=IF(C1="",IF(B1="",A1,B1),C1) で良いと思います。  尚、データーが入るセルが、A1、B1、C1、D1、E1、F1、G1、H1、I1、という様に数が増えた場合でも成り立つ関数としては、 >B1・C1共に情報が入る事はありません。 という条件が必ず守られている場合であれば、次の様な関数でも良いと思います。 【入っているデーターが文字列データーの場合】 =IF(AND(B1="",C1="",D1="",E1="",F1="",G1="",H1="",I1=""),A1,B1&C1&D1&E1&F1&G1&H1&I1) 【入っているデーターが数値データーの場合】 =IF(AND(B1="",C1="",D1="",E1="",F1="",G1="",H1="",I1=""),A1,SUM(B1:I1))  又、共にデーターが入っているセルが3個以上ある場合でも、データーが入るセルが1列に並んでいて、必ず右端に近い方のセルのデーターが優先される場合には、次の様な関数でも良いと思います。 【入っているデーターが文字列データーの場合】 =IF(A1&B1&C1&D1&E1&F1&G1&H1&I1="","",INDEX(A1:I1,MATCH("゛゜",A1:I1,-1))) 【入っているデーターが数値データーの場合】 =IF(A1&B1&C1&D1&E1&F1&G1&H1&I1="","",HLOOKUP(99^9,A1:I1,1)) 【入っているデーターが数値データーと文字列データーの両方が混在している場合】 =IF(A1&B1&C1&D1&E1&F1&G1&H1&I1="","",INDEX(A1:I1,INT(LOG(1+(B1<>"")*2^1+(C1<>"")*2^2+(D1<>"")*2^3+(E1<>"")*2^4+(F1<>"")*2^5+(G1<>"")*2^6+(H1<>"")*2^7+(I1<>"")*2^8,2))+1))

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

IF関数ほど素直でわかりやすいものはない。 ただネストという仕組み(書き方、考え方)があるので Googleででも、「IF関数 ネスト」で照会して読んで考えれば済むこと。 沢山記事があるが。 http://excel.onushi.com/function/if.htm などがよいかな。 優先順位の高いものから記述していく(考えていく)のが基本。 この質問ではB1,C1,A1、3セル何もなし(この質問ではないそうな)の順。 該当すると該当しないのツリー図を描いて、または少ない場合は2次元図を描いて頭を整理すれば良い。 例 2次元図 +入力あり -入力なし A - + - - + + - + B - - + - + - + + C - - - + - + + + 結果    ?      A      B      C      B      C      B      B

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

=IF(C1<>"",C1,IF(B1<>"",B1,IF(A1<>"",A1,""))) などのようで良いかと思います。 もし,A1などに入る「情報」の具体的な中身が「言葉の情報」で,「数値」ではない場合は, =IF(C1<>"",C1,IF(B1<>"",B1,A1))&"" などのようにしても構いません。 なお >A1には必ず これが本当に本当なら =IF(C1<>"",C1,IF(B1<>"",B1,A1)) のように一段縮小できます。 しかし通常こういった関数は,「先にずらりとコピーして並べておいて」使います。 つまり「これからA1に入れる予定のまだA1が空の行」にも,先行して数式をコピーして入れて備えておく使い方をするのが,一般的なエクセルの利用方法です。

関連するQ&A