• ベストアンサー

Excel IF関数

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

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

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答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/8248)
回答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
  • ベストアンサー率65% (1615/2454)
回答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が空白セルなのに〇がついていまいました。

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答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枚投稿したからと思い消してもマルチメディアの選択がないのです。どうしたらはりつけられるでしょうか?本題とは違いますが宜しくお願いします

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答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
  • ベストアンサー率65% (1615/2454)
回答No.4

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

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.3

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

nafun0404
質問者

補足

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

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答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
  • ベストアンサー率65% (1615/2454)
回答No.1

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

関連するQ&A

  • セルの内容を合わせるエクセル関数

    お世話になります。 エクセルの関数にて、下記条件を満たす関数が作れないので 分かる方がいましたら教えてください。 A列には文字列が、B列には空白か1の数字がランダムに(1番上の行は必ず空白セル)入力されています。 これに対して、B列に空白から1が続いているセルまでをひとくくりとして、 右側のセルに表示させたいです。 画像では C2セル=A2 C3セル=IF(B3=1,C2&A3,A3)としてC4セル以降にコピペ D2セル=IF(B2="",C2,"")としてD3セル以降にコピペしていますが、 C列でひとくくりになるセルが下へ行ってしまい、 希望する結果に表示されないです。 関数が組める方がいましたらご伝授頂けますでしょうか。

  • IF関数について

    IF関数について A列のセルに住所が入力されていて、「中野区」という文字列が含まれているときに「○」そうでない場合は「-」をB列セルに表示させる方法で B列セルに、 =IF(COUNTIF(A1,"*中野区*"),"○","-") を入力すれば良いことがわかりました。 この条件に加えて、A列のセルが空白の場合上の行を参照するという条件を加えたいと思います。 例A3のセルが空白の場合A2を参照しB3に表示させる。 因みに、A2も空白の場合A1を参照する。 って感じにしたいです。 宜しく御願いします。

  • よろしくお願いいたします。写真のように表のなかに数

    よろしくお願いいたします。写真のように表のなかに数字が記載されてる所と空白の所があるのですが、I列とP列とV列の比較を、したいのです。その比較とは、 1番小さい数字を、抜き出したいのです。計算結果を求めるところは、表の終わった列でかまわないのですが、空白セルもあるのと、数字が入ってる人セルと無いセルがあるのでどのようにしたらいいのでしょうか?よろしくお願いいたします

  • エクセル 空白を消す関数 IF?

    エクセル2002を使っています。 A1のセルに「あい うえお」 A2のセルに「かきく けこ」 A3のセルに「さ しすせそ」…と200行入力してあります。 空白(スペース)を消したいのですが、スペースが入っている位置はまちまちなので、リプレイス関数は使えません。 何とか関数を使って、空白を消す事は出来るのでしょうか? 私が思いついたのはIF関数で、『もしA1のセルに空白があったら空白を消す』と命令できるかも・・・と思ったのですが、式がどのようになるのか分からないし、もっと簡単な、もしくは別の関数があったらぜひ知りたいです。

  • エクセルIF関数について

    エクセルIF関数について A2セルにA1セルが空白なら空白。8:00ならば、8:00。8:00>ならA3セルに(そのままの値を)表示せよ。 という関数を入れたいのですが、どの関数をどのように定義すれば良いのかわかりません。 IF関数かな?と思ったのですが、IF関数で偽のときは、「別のセルに入力せよ」などというような定義って出来るのでしょうか? どなたか教えてください。

  • エクセルの関数について

    エクセルの関数について お世話になります。 エクセルの関数について質問をさせて頂きます。 チェック用の数式として、下記のような場合、 D2とH行に同じ数字があった場合はA2に○を この場合、 =IF(ISNA(MATCH(D2,H:H,0)),"","○") このような数式を使っております。 この数式を少しアレンジして、 D2とH行に同じ数字があった場合はA2に○を、 D2とI行に同じ数字があった場合はA2に×を、 このような数式を作りたいと考えております。 また、 I2とD列に同じ数字があった場合、J2に空白、 同じ数字が無かった場合に×が入る数式として、 [J2]=IF(ISNA(MATCH(I2,D:D,0)),"×","") このようなものを使っています。 こちらも少しアレンジをして、 I2もしくはH2とD列に同じ数字があった場合、J2に空白、 同じ数字が無かった場合に×が入る。 このような数式を作りたいと考えております。 こちらの2点、中々良い数式ができずに悩んでおります。 どなたか、エクセルの関数に詳しい方、良いアドバイスを 頂けると嬉しいです。 どうぞよろしくお願い致します。

  • エクセル 複数条件のIF関数 

    0から360の数字がランダムに入力されているA列があります。この数字を以下の条件でB列に入力したいのです。 (1)288以上なら280を引く (2)144以上なら144を引く (3)72以上なら72を引く (4)72未満ならその数字のまま入力 結果として、72未満の数字がB列に入力されることになります、 IF関数を使えばできるのかなと思いますが、違う方法でもよいです。 4万セルくらいを処理するので一番簡単な方法を教えてください。 よろしくお願いいたします。

  • エクセルのIF関数について

    エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、     A列  B列  C列  D列 1行目  111 2行目  222 3行目  333 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999 上記のようなシートがあったとして、     A列  B列  C列  D列 1行目  111       999 2行目  222       333 3行目  333   ○   123   × 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999   ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

  • IF関数をひとつのセルに二つ使いたい。

    A列のセルには、 「空白」、「0.5」、「1」、「1,5」、「2」が入るのですが B列のセルには 隣接するA列が「0.5」~「1,5」までは500、 「2」以上だと1000、 A列が空白だとB列も空白にしたいです。 でも最初からB列には関数 「=IF(1<A1,1000,500)」を入れてオートフィルしているので 空白のセルも勝手に「500」に入力されてしまいます。 そもそも「=IF(1<A1,1000,500)」ではだめですよね? よろしくお願いします。

  • エクセル関数で教えてください。

    例えば、A列の1行目からA列の100行目まで社員の名前が重複せずに100人分あります。B列1行目からW列100行目までにランダムに数字が入っています。数字は重複していません。この、数字(例えば5という数字)のセルの場所を特定したいのですが、関数でこの場所を特定する方法を教えていただけませんか? 結果的に必要なのは、5という数字が何行目にあるかだけですので、それだけ分かれば良いのですが。良い方法が見つかりません。 今回はマクロは一切使わない条件です。よろしくお願いいたします。

専門家に質問してみよう