• ベストアンサー

Excel IF関数

宜しくお願いします。IF関数なのですが、 例えば、A1~X1まで数字が記載されてるセルもあれば、記載されてないセルもあります。それかランダムに200行ぐらいまであるとします。そこで (1)例えばI列とP列、V列の数字の比較をするとして、I列を基準に考えるとします。 (2)I列に入力がなければ空白 (3)P列とV列両方共記載がなければ空白 (4)P列とV列どちらかに記載があればIと比較してI列の方が小さければ〇大きければ空白とします どのような式をつくればいいでしょうか?お力お貸し下さい。 (4)

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1721/2591)
回答No.8

> 写真のようにPとVが空白セルなのに〇がついていまいました。 画像が不鮮明で見えなかったですし、現在は画像がありません。 =IF(OR(I1="",AND(P1="",V1="")),"",IF(OR(P1="",V1=""),IF(OR(V1>I1,P1>I1),"○",""),IF(AND(V1>I1,P1>I1),"○",""))) この式でですか。実際に空白(データがない状態)ですか、もしかしてスペースキーで空白のスペースを入れて見た目が何もないようにしていませんか(もしそうなら、余程の理由がない限りそのようなことはやめましょう)

nafun0404
質問者

お礼

ご回答ありがとうございます。あなたの解説私がセル番地の確認ミスで申し訳ございません。出来ました。悩ましてしまい申し訳ございません。ありがとうございました

その他の回答 (8)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.9

>例えば、A1~X1まで数字が記載されてるセルもあれば、記載されてないセルもあります。それかランダムに200行ぐらいまであるとします。 >(1)例えばI列とP列、V列の数字の比較をするとして、I列を基準に考えるとします。 比較対象の列がI列P列およびV列なので、他の列については無視することになります。 >(2)I列に入力がなければ空白 >(3)P列とV列両方共記載がなければ空白 IF関数の入れ子構造をお望みですか? それともIF関数の論理式を複雑にして、入れ子構造を避けたいのでしょうか? 入力されている「数字」とは「文字列としての数字」なのか「数値」なのかで論理式の組み立て方が変わります。また、大きさを比較するには文字列の時は数値に置き換えますが、マイナスの値になるものがありますか? >(4)P列とV列どちらかに記載があればIと比較してI列の方が小さければ〇大きければ空白とします IF関数で条件分岐するときはフローチャートで整理しないとチェック漏れの恐れがあります。 IF関数の多重入れ子で処理する方法とIF関数の論理式に条件をすべて網羅し、1つのIF関数で済ませることも可能です。 入力してある値が数値であることを条件とすれば、(2)と(3)の条件を纏めると次のような論理式が考えられます。 ISNUMBER(I1)*(ISNUMBER(P1)+ISNUMBER(V1))>0 (4)の条件はP列とV列の双方に入力があるとき大きい値とI列を比較するものとすれば次の論理式を使えます。 I1<MAX(P1,V1) (2)、(3)の条件と(4)の条件を1つの論理式に纏めると次のようになります。 ISNUMBER(I1)*(ISNUMBER(P1)+ISNUMBER(V1))*(I1<MAX(P1,V1))>0 この論理式を応用すればIF関数で容易に”〇"と""に区分けできるでしょう。 =IF(ISNUMBER(I1)*(ISNUMBER(P1)+ISNUMBER(V1))*(I1<MAX(P1,V1))>0,"〇","")

nafun0404
質問者

お礼

ご回答ありがとうございます。謎がわかりました。みなさんの回答で出来てました。そのままコピペでセル番地が1個ずれてたからでした。申し訳ございません。ありがとうございました。

  • kkkkkm
  • ベストアンサー率66% (1721/2591)
回答No.7

> Iがpとvより小さければ〇 両方入力されていてPとVのどちらか一方でもiより小さかった場合は空白という意味ですか。 こいうことでしょうか。 =IF(OR(I1="",AND(P1="",V1="")),"",IF(OR(P1="",V1=""),IF(OR(V1>I1,P1>I1),"○",""),IF(AND(V1>I1,P1>I1),"○","")))

nafun0404
質問者

補足

ご回答ありがとうございます。いまためしたのですが、写真のようにPとVが空白セルなのに〇がついていまいました。

回答No.6

なお、希望と違う値が出ている場合は「欲しい結果」を以下の表のようにして提示して下さい。 I|P|V|結果 -+-+-+-- 空|空|空|空 空|空|10|空 空|空|20|空 空|10|空|空 空|10|10|空 空|10|20|空 空|20|空|空 空|20|10|空 空|20|20|空 10|空|空|空 10|空|10|空 10|空|20|〇 10|10|空|空 10|10|10|空 10|10|20|空 10|20|空|〇 10|20|10|空 10|20|20|〇 20|空|空|空 20|空|10|空 20|空|20|空 20|10|空|空 20|10|10|空 20|10|20|空 20|20|空|空 20|20|10|空 20|20|20|空 上記のような「すべてのパターンを埋めた表」があれば「その表に合わせた式」を回答できます。

nafun0404
質問者

補足

みなさんご回答ありがとうございます。結果を、写真で撮って貼り付けたいのにマルチメディアの選択が無く、1枚投稿したからと思い消してもマルチメディアの選択がないのです。どうしたらはりつけられるでしょうか?本題とは違いますが宜しくお願いします

回答No.5

この式でどうですか? =IF(CHOOSE((I1="")*4+(P1="")*2+(V1="")+1,AND(I1<P1,I1<V1),I1<P1,I1<V1,FALSE,FALSE,FALSE,FALSE,FALSE),"○","") 添付画像のような結果になります。

  • kkkkkm
  • ベストアンサー率66% (1721/2591)
回答No.4

> kkkkkmさんの投稿試したのですが、写真のようにダメでした。 画像の数値が見えないのですが、I P V でダメだった数値を教えてもらえますか?

回答No.3

エクセルで、添付画像のような「出現パターンの一覧表」を作って「未定義」と書いてある部分を埋めて下さい。 そうすれば「どういう時に○を表示して、どういう時に空白を表示すれば良いか?」が明確になります。 それが明確になれば、式を書く事ができます。

nafun0404
質問者

補足

ご回答ありがとうございます。言葉足りずにすいません。捕捉として、Iが入力されてるのとあとpかvがどちらか入力されてるのが絶対条件です。又、もし3つ共に入力されており、全て同じ数字なら空白です。又Iが30でpとvが50なら〇で、勿論Iしか入力されてなければ空白です。あくまで同一ではなく、Iを基準のHiGH&LOWでIがpとvより小さければ〇でお願いします。ちなみにkkkkkmさんの投稿試したのですが、写真のようにダメでした。一応不等号入れ替えてやってみたのですがダメでした。(〇がついてる所、不等号変えてやってみたしたが、両方共〇がつきます)宜しくお願いします

回答No.2

>どのような式をつくればいいでしょうか?お力お貸し下さい。 「条件に不備がある」ので、式は作れません。 以下の点を明確にして下さい。 P列とV列とI列すべてに数値が入っている場合、I列は、P列とV列のどちらと比較すべきか? P列とV列とI列すべてに数値が入っている場合に、I列とP列を比較すると仮定した場合、その2つの数値が等しい場合、どうするのか? P列とV列とI列すべてに数値が入っている場合に、I列とV列を比較すると仮定した場合、その2つの数値が等しい場合、どうするのか? P列とI列にのみ数値が入っていて、その2つの数値が等しい場合、どうするのか? V列とI列にのみ数値が入っていて、その2つの数値が等しい場合、どうするのか? 以下の「場合分け」で「未定義」になっている部分を埋めないと、式は作れません。 ・I列が入力なし、P列が入力なし、V列が入力なしの場合 ⇒空白 ・I列が入力なし、P列が入力なし、V列が入力済みの場合 ⇒空白 ・I列が入力なし、P列が入力済み、V列が入力なしの場合 ⇒空白 ・I列が入力なし、P列が入力済み、V列が入力済みの場合 ⇒空白 ・I列が入力済み、P列が入力なし、V列が入力なしの場合 ⇒空白 ・I列が入力済み、P列が入力なし、V列が入力済みで、I列<V列の場合 ⇒○を表示 ・I列が入力済み、P列が入力なし、V列が入力済みで、I列=V列の場合 ⇒未定義 ・I列が入力済み、P列が入力なし、V列が入力済みで、I列>V列の場合 ⇒空白 ・I列が入力済み、P列が入力済み、V列が入力なしで、I列<P列の場合 ⇒○を表示 ・I列が入力済み、P列が入力済み、V列が入力なしで、I列=P列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力なしで、I列>P列の場合 ⇒空白 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列<P列かつI列<V列の場合 ⇒○を表示 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列<P列かつI列=V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列<P列かつI列>V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列=P列かつI列<V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列=P列かつI列=V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列=P列かつI列>V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列>P列かつI列<V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列>P列かつI列=V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列>P列かつI列>V列の場合 ⇒空白 貴方が「どのような式を作れば良いか判らない理由」は「すべての場合を網羅できてない、未定義の部分があるから」です。 つまり「大きい時、小さい時は決まってるけど、等しい場合どうすべきか決まってない」とか「有効な値が3つある時、どれとどれを比較すべきか明確になってない」とかの不備があるのです。 これらの不備をなんとかしないと、式は作れません。

  • kkkkkm
  • ベストアンサー率66% (1721/2591)
回答No.1

以下でいかがですか。 =IF(OR(I1="",AND(P1="",V1="")),"",IF(OR(V1>I1,P1>I1),"〇",""))

関連するQ&A

専門家に質問してみよう