• ベストアンサー

エクセルのセルにFALSEがでるんですけど‥

IF(C2<30000,B2*0.05,IF(30000<=C2<70000,B2*0.07,IF(C2>=70000,B2*0.1))) という式をオートフィルでコピーしたんですけど、答えがちゃんと出るところと、「FALSE]と表示されるところがあります。なぜでしょうか?教えて下さい。 答えが表示されるところは(B2=24000,C2=93000),(B5=9500,C5=20000)などで、「FALSE」と表示されるところは(B3=12000,C3=60000),(B6=18000,C6=54000)などです。よろしくお願いします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 まず、FALSEと表示される原因と、「30000<=C2<70000」という書き方とは関係ありません。 FALSEが出るのは、最後のIF文の第3引数が省略されているからです。 本来 =IF(条件,真の場合,偽の場合) とすべきところを、 =IF(条件,真の場合) とした場合、条件が偽になると、「FALSE」が返されます。 次に、「30000<=C2<70000」という条件ですが、 この式では、まず、 「30000<=C2」 が評価され、その結果「TRUE」か「FALSE」という論理値が返されます。 その結果に対して、 「TRUEまたはFALSE<70000」 が評価されますが、論理値に対して比較演算子を使用すると必ずFALSEになります。 したがって、2番目のIF文の条件は必ずFALSEになり、つまり最後のIF文を評価し、その結果を返します。 なので、 「C2>=70000」 という条件を満たす場合(B2、B5)は、B2*0.1が表示され、 条件を満たさない場合(B3、B6)は、上記の理由で「FALSE」を返します。 なお、数式については、実際はNo.4の方の式でOKになります。

gomarun
質問者

お礼

みなさん大変丁寧にわかりやすく回答してくださってありがとうございます。  おかげ様で理解できました。  また何か質問することがあると思いますのでよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • kunimaru3
  • ベストアンサー率38% (12/31)
回答No.4

NO.1です よく考えたらこれでいいみたいです =IF(C2<30000,B2*0.05,IF(C2<70000,B2*0.07,B2*0.1))

全文を見る
すると、全ての回答が全文表示されます。
noname#148473
noname#148473
回答No.3

Excelでは「30000<=C2<70000」のような比較式は使えないです。「AND(C2>=30000,C2<70000)」としないといけません。 ですから、ご質問の関数式は、 =IF(C2<30000,B2*0.05,IF(AND(C2>=30000,C2<70000),B2*0.07,IF(C2>=70000,B2*0.1))) とすれば、FALSE表示はなくなるはずです。 ただ、実際には2番目のIF文が実行される場合には、既にC2>=30000であることが確定していますし、3番目のIF文に入る場合には、既にC2>=70000であることが確定していますので、 =IF(C2<30000,B2*0.05,IF(C2<70000,B2*0.07,B2*0.1)) で十分です。

全文を見る
すると、全ての回答が全文表示されます。
  • taranko
  • ベストアンサー率21% (516/2403)
回答No.2

IF(C2<30000,B2*0.05,IF(30000<=C2<70000,B2*0.07,IF(C2>=70000,B2*0.1))) 上の式ですが2つめのIFの後の30000<=がいらないのでは ないでしょうか。 IF(C2<30000,B2*0.05,IF(C2<70000,B2*0.07,B2*0.1)) はじめのIFで30000未満 次はELSEの条件の中なので既に30000以上の 条件が満たされていて70000未満だけを指定すれば 良いです。 最後もあえてIFを使わなくてもELSEでそれ以外に してしまっても良いと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • kunimaru3
  • ベストアンサー率38% (12/31)
回答No.1

こんにちは、式の中で下記の部分が間違っています 30000<=C2<70000 このようにしたらいかがでしょうか? =IF(C2<30000,B2*0.05, IF(AND(30000<=C2,C2<70000),B2*0.07, IF(C2>=70000,B2*0.1)))

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELのFALSE行削除について

    EXECLでif文実施結果でFALSE行が発生してしまいます。 この行を自動で消す方法はありますでしょうか? マクロで実施する方法でもご存知でしたらご教授願います。 例 sheet1               sheet2   A  B  C  D            A      B      C      D 1 11 12  a  x         1 11     12      a     あいう      2 11 12  b  x   ⇒     2 FALSE FALSE   FALSE   FALSE 3 11 12  a  x         3 11     12      a     あいう 4 11 12  b  x         4 FALSE FALSE   FALSE   FALSE sheet2A1にif=('sheet1'!C1="a",'sheet1'!A1) B1にif=('sheet1'!C1="a",'sheet1'!B1) C1にif=('sheet1'!C1="a",'sheet1'!C1) D1にif=('sheet1'!C1="a","あいう") として、これを1行目のif文を下にコピーして使用しています。 又、もっと効率のいい方法がある! と言った答えもいただけたら非常に助かります。 よろしくお願いします。

  • 空白セルから連番をつける

    エクセル2000を使用しています。 1.B4に以下の式を入力し、C列に文字入力するとB列に連番がふるようにしています。     =IF(C4="","",ROW()-3) 2.B53までこの式をオートフィルし、50行の連番としています。     =IF(C4="","",ROW()-3)     =IF(C5="","",ROW()-3)     =IF(C6="","",ROW()-3)           ・           ・           ・     =IF(C53="","",ROW()-3) 3.B54は区切りのため空白となっています。 4.B55から再び連番を付けるため以下の式を入力しています。     =IF(B55="","",ROW()-54) ここからが質問ですが、4項の式をB4~B53からコピーペーストすると、     =IF(B55="","",ROW()-3) となるため、末尾の3を54に手入力により変更する必要が発生してしまいます。 コピーペースト後、式変更の必要ない関数は作れるでしょうか? 連続する場合はオートフィルを使いたいのでそこは崩さない方法です。 また、マクロは使わない方法でお願いします。

  • FALSE を 空欄(または表示させない)にしたい

    EXCELの2007を使っています。 星取り表を作成中です。  A B C D 1*● 2  * 3    * 4      * 勝敗を○と●で表示するために、上のように「B1」に●を入れると「A2」に○が入るように =IF(B1="○","●",IF(B1="●","○")) という式を入れました。これによってちゃんと表示はされるのですが、同じように、表の左斜め下の各セルに式を入れた時に、右斜め上が空白の時に「FALSE」の表示が出てしまします。 これを表示させないようにさせるためにはどうしたらいいのでしょうか?

  • エクセルで「FALSE」以外のセルをカウント

    エクセルでうまく計算できなくて困っています。 どうか知恵を貸して下さい…。   A  B 1 あ FALSE 2 あ FALSE 3 い FALSE 4 0 FALSE 5 0 FALSE AとB列に同じような計算式が入っており、 その結果が表示されています。 (例えば…、A1に「=Sheet2!C1+Sheet2!C2」など) この状態で、A1:B5の範囲で0とFALSE以外の数をカウントするには どうすればよろしいのでしょうか? COUNTIF関数などを使ってもうまくいきません…。

  • 数式内のセルのオートフィル

    数式内のセルのオートフィル エラー値 #N/Aを返す数式 =IF(A1=0,NA(),A1) をA2に入力しているのですが、 この式ををA2~R2まで入力したいと思っています。 ひとつひとつ、=IF(A1=0,NA(),A1)、=IF(B1=0,NA(),B1)、=IF(C1=0,NA(),C1)…と 入力していけばいい話なのですが、 数が多いため、オートフィル機能のような形で連続セルを入力したいのですが、 なにかよい方法はないでしょうか?

  • FALSEの場合は空白にしたい

    本表の時に、=IF(D2="",・・・の関数を使用したとき、B2、C2、D2に数字がない場合にはFALSEが表示されます。B2、C2、D2に数字が入力されていない場合にFALSEを表示しない方法を教えていただけますか。 ・・A・・B ・C ・D 1・・・・(1)・(2)・(3) 2・(1)・・3・ 3・(2)・・5・3 注)質問した時に表がおかしくなるので、・・・を利用してるだけです =IF(D2="",IF(C2="",IF(AND(B2>0),B1),IF(AND(B2>0,C2>0),C1)),IF(AND(B2>0,C2>0,D2>0),D1))

  • エクセルの文字列中の指定した位置の文字列の置き換え(REPLACE)。

    エクセルの文字列中の指定した位置の文字列の置き換え(REPLACE)。 エクセルのセルA1に 「A123B1234X9876C123DD」と入力されています。 これを 「A123-B123X9876-C123-DD」としたいです。 現在 ・B1のセルに=REPLACE(A1,5,0,"-") ・C1のセルに=REPLACE(B1,15,0,"-") ・D1のセルに=REPLACE(C1,20,0,"-") と入れて、D1にできた値の 「A123-B123X9876-C123-DD」 をコピーして E1のセルに「形式を選択して貼り付け」「値」で貼り付けして B1~D1を削除して ・A1のセルには元の「A123B123X9876C123DD」 ・B1のセルには編集後の「A123-B123X9876-C123-DD」 が表示されるようにしています。 このA列が100行もあるとうんざりです。 式をオートフィルでコピーしていくのですが  ・B1に式を入れてオートフィルでB100までコピー  ・C1に式を入れてオートフィルでC100までコピー  ・D1に式を入れてオートフィルでD100までコピー  ・D1~D100をコピーしてE1~E100に「形式を選択して貼り付け」「値」で貼り付け  ・B,C,D列を列削除  3回は式を入れないといけないです。一発で編集する方法はありますでしょうか?

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

    A列に1,2,3・・・と回数があり、B列に一桁の数字(0~9)がランダムにあり、C列(C1)には『=IF(B1=1,"○","")』とあり、C2以降オートフィルでコピーされています。 B列の数値が『1』の時にだけC列に『○』が入りますが、D列に『C列の○と○の間隔』を数字で表示したいのですが、『=IF(B10=1,COUNTBLANK(C2:C9)+1,"")』としても、オートフィルで全てのD列にコピーしても参照セル範囲がランダムなので上手く行きません。 ○印が出現したら直前回の○印からの出現間隔を関数で自動表示したいのですが、関数が分かりません。あるいは関数の組合せ方法が思い浮かびません。 分かりやすく言うと、例えばナンバーズなどのある桁の0から9までの数字のうち、任意の数字が出現するたびにその横の列に○印を付け、さらにその横の列に出現した間隔を自動で表示できる関数が知りたいのです。 言葉で上手く表現できませんが、分かる方教えて下さい。お願いします。

  • オートフィルについて

    =if(a2=1,0,b1+1) こういう式で横にオートフィルしていったときに a2=1の1を2、3、4・・・と1づつふやしていって a2=1がb2=1、c2=2と勝手にオートフィルされてしまうのを とめる方法はありませんか? この問題分かる方教えてください

  • Excelのオートフィルについてお尋ねします。

    Excelのオートフィルについてお尋ねします。 オートフィルを実行した後、オートフィルオプションが 表示されますが、例えば、下記のように セルのコピー(C) 連続データ(S) 書式のみコピー(フィル)(F) この場合の(C)(S)(F)は、何なんでしょうか? キーボードから操作できるのかと思いましたが、変化ありません。 解答宜しくお願いします。

このQ&Aのポイント
  • SDカードを挿入して画像を印刷する際に問題が発生しています。
  • スマホのブラザーアプリからも印刷はできますが、ハガキサイズで印刷できないため困っています。
  • 接続は無線LANで行っており、使用しているOSはAndroidです。
回答を見る

専門家に質問してみよう