プロが教えるわが家の防犯対策術!

恐れ入ります。
仕事でエクセルを用いて文書を作成しているのですが、
知識が低い為、思う様にIF関数を使いこなせません。

具体的に申し上げますと、
A1、B1、C1の3つのセルがあります。A1には常に何らかの情報が
入っているけれど、B1に情報が入ったら、B1の情報が優先され、
C1に情報が入ったら、C1が優先される。つまり、B1とC1に情報が
無い時は、A1が優先される事になります。
また、A1には必ず何か情報が入りますが、B1・C1共に情報が入る
事はありません。

ですので考えられる組み合わせは・・・
A1のみ情報あり →A1を優先
A1とB1に情報あり→B1を優先
A1とC1に情報あり→C1を優先
となりますが、この場合はどの様な数式を入れたら良いのでしょうか?

急を要する事態の為、大変困っています。
解りづらい説明で大変申し訳ないのですが、
どなたかご教授下さいます様、お願い致します。

A 回答 (5件)

一例です。


=CHOOSE(1+(B1<>"")*1+(C1<>"")*2,A1,B1,C1)
    • good
    • 6

アルゴリズムの作り方がちょっと下手ですね。



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))
となります。
    • good
    • 9

=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))
    • good
    • 1

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
    • good
    • 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が空の行」にも,先行して数式をコピーして入れて備えておく使い方をするのが,一般的なエクセルの利用方法です。
    • good
    • 2

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

このQ&Aを見た人はこんなQ&Aも見ています