エクセル関数「偽」の場合が2つある場合はどうしたらよいですか?

このQ&Aのポイント
  • エクセルで特定の条件に基づいて値を返すためには、IF関数を使用することができます。
  • 条件分岐を行うために、IF関数を2つ組み合わせることで解決することができます。
  • 例えば、C列とD列が空白ではない場合には「エラー」という値を返し、それ以外の場合には「ID」という値を返すような式を使用することができます。
回答を見る
  • ベストアンサー

エクセル関数 “偽”の場合が2つある場合はどうしたらよいですか?

エクセル関数 “偽”の場合が2つある場合はどうしたらよいですか? エクセルで下記のようなファイルがあり、CとDが空白ではない場合別々の“偽”をBに返したいのですが、どうしたらよいでしょうか?うまく説明できないのですが・・・ つまり、B のところにIDもしくは"エラー"もしくは"削除"を入れたいのです。 IFを使っていたのですが、良くわかりません。 よろしくお願い致します!   A     B      C      D   ID        エラー日付  削除日付 1 あ    あ     2 い    エラー  2010年9月 3 う    削除          2009年3月 4 え    エラー  2007年1月 私ができたのは、ここまで…・ =IF(C1&D1="","A1","エラー") IFを2つにするとIDが二つ出てきてしまったり…

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

お示しのようにB列をするのでしたらB1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(C1<>"","エラー",IF(D1<>"","削除",A1))

dartford7
質問者

お礼

きゃ~!!すごい!できました!! ありがとうございました!!!!! うれし~

その他の回答 (5)

  • TYWalker
  • ベストアンサー率42% (281/661)
回答No.6

真と偽っていうのは、男と女、右と左、白と黒のように、2つの値しかもち得ないときにいうものです。 「違う偽を返したい」というのは偽の値が2つあると言っているわけで、この時点で破綻しています。 エクセル以前に論理学の問題です。 Cがヌルでないならエラーを返すIFと、Dがヌルでないなら削除を返すIFとを作り、2つの文字列を連結すればいいと思います。

dartford7
質問者

お礼

ご回答ありがとうございました。

  • choco_jiji
  • ベストアンサー率31% (528/1701)
回答No.5

もっと簡単な方法があるかもしれませんが。 条件を順に追っていくと… 1)まず、Dが空白でない時→B="削除" 2)次に、Cが空白でない時→B="エラー" 3)どちらでもない時→B=A ということでしょうかね。 IF(条件,TRUE,FALSE)なので、 まずは1)の条件を入れます。"空白ではない"のでnot()を使います。 TRUEは"削除"ですね。 ここでFALSEの時、次の条件に移行しますので、さらにIF()を置きます。 あとは同様に… コレを式にすると・・・ =IF(not(D1=""),"削除",IF(not(C1=""),"エラー",A1)) となります。 この式をあえて日本語で書くなら 「もしD1が空白でなければ,B1は"削除",違ければ『もしC1が空白でなければ,B1は"エラー",違ければB1はA1と同じ。』。」 です。 ただし、この場合はDに日付が入っている時点でBには"削除"を返しますのでCに日付が入っていても"削除"となります。

dartford7
質問者

お礼

あ、NOTというのがあるのですね。 勉強になります! ご回答ありがとうございました!

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

一例です。 C列とC列の組み合わせは4通りですので全てに対応してみました。 =CHOOSE(((C1<>"")*1+(D1<>"")*2)+1,A1,"エラー","削除","エラー&削除")

dartford7
質問者

お礼

こういう方法もあるのですね。 ご回答ありがとうございました!

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

エクセルの関数(特にIF関数)を良く勉強してないために、袋小路的方向に行ってしまっているようだ。 IF関数には、「IF関数のネスト的使いかた」という、典型的パターンを学習直後に直ぐ出てくる使い方がある。 Googleででも「IF関数 ネスト」で照会して、記事の中の実例をみて、自分の場合に応用してみてください。 エラーを出す条件 削除を出す条件がはっきり文章化(意識化)されてないのが問題。 多分D列が空白でなければ、B列は、削除 B列が空白でなければ、エラー と出すだけの問題では。

dartford7
質問者

お礼

ご回答ありがとうございました!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

C1セルかD1セルのどちらかにデータがある場合にはエラーと表示し、そうでない場合にはA1セルの値を返すのでしたら次の式をB1セルに入力して下方にオートフィルドラッグします。 =IF(OR(C1<>"",D1<>""),"エラー",A1)

dartford7
質問者

お礼

早速のご回答ありがとうございます。 エラーだったのか削除したのかを見分けたいのです~。 残念です。

関連するQ&A

  • エクセルのIF関数で、真の場合OK!で偽の場合指定のセルの値が出るよう

    エクセルのIF関数で、真の場合OK!で偽の場合指定のセルの値が出るようにしたいのですが、可能でしょうか? A  B C D E F 10 8 1 0 1 1 10 8 2 0 0 OK! EはA-(B+C+D)で、FはEが0の場合OK!、偽の場合Eの値になる様にしたいです。 わかりにくいかとも思いますが、よろしくお願い致します。

  • Excelの関数がうまく使えません。

    Excelで関数がうまく使えません。 「=IF(E2>=2000,200,IF(E2>=1000,100,IF(E2>=500,50," ")))」というのをH列のセルに入力しています。 計算はうまく?いくのですが、偽の場合に空白にしているのに、E列が空白でも200と反映されてしまいます。 ちなみにE列には「=IF(ISNUMBER(D2),(C2*D2)," ")」このような関数を使っております。 H列が空白のときに正しく空白にするにはどうしたらよいのでしょうか? 教えてください。

  • エクセルについて、

    エクセルについて、 A1は空白、B1には=IF(A1=0,"",A1)、C1にB1をコピー-値貼り付け、D1に=IF(C1>0,1,0)とすると、D1には1と表示されます。C1には値は表示されていないのになぜそうなるのでしょうか?おそらくC1には何かデータが入ってているのでしょうが、これを削除してC1を空白セルにするにはどうしたらいいのでしょうか?

  • IF関数の”真”と”偽”が理解できません

    IF関数について、解説をお願いしたいのですが 初心者です、ヘルプその他を調べながら セルA1にセルB1が30,000以上ならば525を 30,000未満ならば315を表示したいので =IF(B1<=30000,"315","525") で目的は達成できたのですが 本来は=IF(B1<=30000,"525","315") 真525 偽315になるのでないかと思うのですが なぜ真315 偽525になるのでしょうか 理解が出来ずに悩んでおります また、B1が空白の場合は、A1は空白を表示を付け加えたいのですが この点もご教授いただけないでしょうか

  • EXCEL関数について

    いつもお世話になっております。 突然ですみませんが、ご教授ください。 A1に収入、B1に支出、C1に残高、D1に繰越残高とします。 C1に=D1+A1-B1 を入れたいのですが、この時に A1とB1が空白の場合、C1も空白になるような式を入れたいのですが、 C1 =IF(OR(A1="",B1=""),"",D1+A1-B1 と入れても偽の場合の式がVALUEになってしまいます。 どういった式を入力すれば良いか教えてください。 宜しくお願いいたします。

  • エクセルでIFとANDを使った関数について教えて下さい

    A B C D E F G 1 1 2 3 結果 2/3 2/4 2/5 2 2/3 2/4 2/5 合格 0 0 1 3 上記のような表を作成しようとしています。条件が、 D1が「合格」で、 C2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じなら「1」、 違うなら「0」、 B2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」なら「1」、違うなら「0」、 A2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」で、B2が「空欄」なら「1」、違うなら「0」 を返しなさい。 という関数を作りたいのですが、上手くいきません。 IFとANDを使えばいいと思うのですが、どのように組み合わせれば 良いでしょうか。 真を返す、優先順位は、C2、B2、A2、のセルです。 C2に日付が入ってるときはB2とA2に日付が入っていても カウントされないように(偽が入るように)したいのです。 ちなみに、最初は、 =IF($D2="合格",IF($C2=E$1,1,IF($B2=E$1,1,IF($A2=E$1,1,0))),0) と、入れてましたが、これだと、C2に日付が入った時にC2だけカウント したいのに、B2もA2もカウントされてしまいます。 どうか、良きアドバイスをお願いします!!

  • エクセルの簡単な関数ですが。

    私はエクセルで旅日記を書いています。 A列には「今日で何日目か」 B列には「日付」 C列には「曜日」 D列には「行動時刻」です E列には「内容」です。 質問です。 A3に =IF(B3="","",DATEDIF($B$2,B3,"D")) としB3に日付が入ったら、「一日目、2日目」と増える(つもり)で書いたのですが、2日目で【1】と入ります。2日目だから【2】としたいのです。 仕方なく、B2にダミーの日付を入れて誤魔化していますが、この場合どんな関数を使ったらいいんでしょうか。

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

    セル内(日付が入力されていて、空白の場合もある) A1 には 8/10 B1 には 8/11 C1 には 8/12 と入力されている場合に・・・ D1のセルにA1~C1に入力されている日付の どれかが自動で入力されるように設定したいのですが どうしたらいいのかわかりません。 もし知っている方いましたら、宜しくお願いします。

  • エクセルの関数を教えてください

    下のような表で、E7に =IF(AND(D6>A1,OR(C7:C12<(A7-0.05))),"A",IF(AND(D6<A1,OR(B7:B12>(A7+0.05))),"B","")) と関数を入れましたが求めているものになりません。 文章にすると、D6がA1より大きかった場合かつC7からC12の間でA7から0.05を引いた数値が どれか一つでもあればA、D6がA1より小さかった場合かつB7からB12の間でA7から0.05を足 した数値がどれか一つでもあればBそれ以外は空白というものです。 正しい関数を教えてください。       A    B     C     D      E 1    98.483  98.501  98.446  98.477 2    98.477  98.482  98.442  98.452  3    98.449  98.461  98.365  98.372  4    98.372  98.396  98.350  98.387  5    98.388  98.472  98.379  98.414 6    98.412  98.479  98.389  98.439 7    98.433  98.603  98.430  98.555 8    98.559  98.579  98.465  98.500 9    98.500  98.600  98.467  98.569 10   98.568  98.635  98.530  98.546 11   98.548  98.579  98.486  98.494 12   98.497  98.569  98.460  98.534 13   98.534  98.565  98.527  98.542

  • IF関数についてです

    エクセル初心者です。 わかりづらかったらすいません。 たとえば A1*B1の結果をF1へ。 C1+D1+E1の結果をG1へ。 で、F1+G1の結果をH1へ。 という表を作っています。 で、結果が0の時に空白を返したいので、それぞれを IF(A*B=0、””、A*B)として、 IF(C1+D1+E1=0、””、C1+D1+E1)としています。 最後にF1+G1の結果も0、もしくは空白の時に空白を 返したいのですがどのように数式を入れればよいのでしょうか。 自分なりにいれてみましたがエラーがでてしまいます。 よろしくお願いいたします。

専門家に質問してみよう