• ベストアンサー

時間の引き算 #VALUE!と#REF!を空白にし

エクセル 時間の引き算 #VALUE!と#REF!を空白にしたい A列 1:00 2:00 なし 4:00 5:00 と入れて、B5には「=A5-A4」を入れて、上へオートフィルしました。 そうすると、画像のように B列 #REF! 1:00 #VALUE! #VALUE! 1:00 という結果になったのですが、 #VALUE!や#REF!を空白("")にするにはどうすればいいでしょうか? IF関数を使うのでしょうか? ご教授よろしくお願いします。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

=IF(ISERROR(A5-A4),"",A5-A4)

fasd1323
質問者

お礼

やはりIFをつかうのですね。 =IF(ISERROR(A5-A4),"",A5-A4) でうまく行きました。ありがとうございました。

その他の回答 (1)

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

B5セルには次の式を入力してもよいですね。 =IFERROR(A5-A4,"") B1セルからB5セルを選択してから右クリックし「セルの書式設定」の「表示形式」で時刻から選択します。 なお、式などを入力してドラッグコピーする場合には通常は上の行に式を入力して下方にドラッグコピーします。 B2セルに例えば次の式を入力して下方にドラッグコピーしてもよいでしょう。 =IF(COUNT(A1:A2)<>2,"",A2-A1) この式の意味はA1セルとA2セルに数値が入力している場合にはCOUNT(A1:A2)は2となりますが空白のセルや文字の入ったセルが有る場合には2以外の数値になりますのでその場合には空白のセルになるようにしています。

fasd1323
質問者

お礼

=IFERROR(A5-A4,"")でも=IF(COUNT(A1:A2)<>2,"",A2-A1)でもできました! 色々な方法があるのですね。ありがとうございました。

関連するQ&A

  • Excelにて空白行がある場合の引き算

    A1~A9まである整数,B1~B9まである整数が入っており, A10,B10ともに空白。 その後A11~A19まである整数,B11~B19まである整数が入っており, A20,B20ともに空白。 以下データが約20万ほどあるエクセルファイルがあります。 C列にAからBを引いた答えを入れたいのですが, 空白のセルがあるせいで,オートフィル(ダブルクリック)ができません。 (C1=A1-B1とすると,C9までしか計算できません。) A,Bが空白の場合,Cも空白にしたいです。 単純に,IF(A1="","",A1-B1)とやってみたのですが, やはりC9までしか計算できませんでした。 オートフィルのドラッグ以外の簡単なやり方があれば教えてください。

  • if エラー文字を空白にしたい#VALUE!

    #VALUE!や#REF!を空白にするには? A列に日付が入っていて、=A2-A1のように日付を引いてるのですが 文字が入ったり一番上だとエラーが返ります。 エラーの場合はエラー文字を空白にしたいのですが どうすればいいですか? IFステートメントを使うようですが数式がわかりません。

  • WEEKDAY 空白も7になってしまう

    オフィス2007です。 A1に2012/3/3といれ、 B1に=WEEKDAY(A1,1)といれ オートフィルすると、 A列に日付が入っていなくてもB列は7になってしまいます。 A列が空白の場合、B列に数式が入っていても空白にするには どのような式を入れればいいでしょうか?

  • エクセルで空白セルをのぞいて引き算をする

    A列の数字を順番に引き算していきます。 A1-A2(答えはB2へ) A2-A3(答えはB3へ) セルA4とA5が空白のときは、 A3-A6(答えはB6へ) A6-A7(答えはB7へ) どのセルが空白になるかは固定されていません。 B列にどんな計算式を入れるといいのかわかりません。 教えてください。よろしくお願いします。

  • 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)」ではだめですよね? よろしくお願いします。

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

    エクセル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に手入力により変更する必要が発生してしまいます。 コピーペースト後、式変更の必要ない関数は作れるでしょうか? 連続する場合はオートフィルを使いたいのでそこは崩さない方法です。 また、マクロは使わない方法でお願いします。

  • 「#REF!」を空白表示する関数

    G371に「#REF!」がある場合かゼロがある場合に任意のセルに空白を表示するような関数を作りたいのですが、どうしたらよいでしょう? ちなみにこの場合の「#REF!」はエラーの表示(左脇に出る「!」というマーク)はありません。 何もないセルに自分で「#REF!」と打ち込んだものです。 以下の3つの関数を試しましたが「#REF!」がそのまま表示されるだけでした。 =IF(OR(G371=0,ISERROR(G371)),"",G371) =IF(OR(G371=0,ISTEXT(G371)),"",G371) =IF(OR(G371=0,G371="#REF!"),"",G371)

  • #value!を非表示にしたい

    エクセルの関数に関する質問です。 Book「A」または「A'」のセルを参照にして、いくつかの関数をBook「B」、Book「C」およびBook「D」に書き込みました。 まずは、Book「A」のセル「a」またはBook「A'」のセル「a'」のどちらか入力されている方のセルを表示させる関数をBook「B」のセル「b」に作りました。 これです。↓ =if(「a」="",(if(「a'」=""," ",「a'」),「a」) 次に、セル「b」を参照にして、 =if(「b」=""," ",「b」) という関数をBook「C」のセル「c1」に作りました。 「a」または「a'」に入力されていなければ、「c1」は空欄になるはず・・・だけど、実際には参照セルに関数が入力されているからどうかな・・・と思いましたが、これは見事に、成功しました。 これが成功したので、さらに、「c2」に、 =if(「c1」=""," ",datedif(「b」,「c1」,"Y")) を作りました。 しかし、空欄か年齢のどちらかになるはずのセルが、「#value!」がでてきてしまい、空欄が出てきません。「a」または「a'」に入力されていれば問題なく年齢を計算して返してくれるのですが、「#value!」は目障りなので、表示させたくありません。参照を「a」または「a'」までさかのぼって関数を作ればもちろん問題ないのですが、いろいろ並べ替えなどをしておりそれは最高に面倒くさいのです。参照を「b」や「c1」にするとオートフィルを使って楽にできるので、こっちの方法を採用したいと思っています。 上の関数を使った結果出てきてしまった「#value!」を解決するにはどのような方法があるのでしょうか? 長くなった上にややこしくなって申し訳ありません。ぜひともご意見よろしくお願いします。

  • 関数によって空白したのを数値「0」に置き換える

    A.............B...............C 1 ZZ............6..............× 2 AA........... 1 3 BB 4 CC............3 B列にはそれぞれ関数が入っています。 セルB1には、B2、B3、B4の数値の合計です。 C1のセルには、C1数値とB2、B3、B4の数値の合計が一致しているか否かの判定する関数が 入っており、一致していなければ、"×"が表示させるようにしています。 しかし、ここで問題が起きました。 「VALUE」というエラーが表示されました。 上記の表では、セルB3は、空白になっております。 本来は、セルが空白になっている場合は、「0」が格納されていると思うのですが、 ここには、関数によって、文字列?の「空白」に置き換えられています。 例えば = IF((Z5) ,5, "") ようにです。 多分、関数によって文字列として認識される空白("")を置いたためと思います。 関数によって置き換えた空白("")を数値「0」として認識できる関数を教えてください。 いろいろな方法があると思いますが、「関数」のみで教えてください。 C1には、以下の関数が入っています。 =IF((B1) = (B2+B3+B4) ,"○","×")

  • excel 空白のセルがある行を削除するマクロ

    A列に、みかん りんご バナナ 肉 などと入力されており、 B1に=if(countif(A1,"*みかん*")+countif(A1,"*りんご*")+countif(A1,"*バナナ*"),"fruit","") という感じで、fruit か 空白 を返す関数が入力されており、オートフィルでB列に数式をコピーするマクロを実行します。 その次に、B列で空白のセルがある場合、その行を削除するというマクロを下記のように入力しましたが、削除されません。 Dim lastRow As Long Dim i As Long lastRow =Range("B"&Rows.count).End(xlup).Row For i =lastRow To 5 Step -1 If Cells(i,"B").Value="" Then Rows(i).Delete XlShiftUp End If Next i 間違いをどなたか教えてください。 ちなみに、B列が関数では無く、ただの文字列の場合("fruit")ではマクロが実行できました。 関数の値からマクロを実行することは不可能なのでしょうか? 解答、宜しくお願い致します。

専門家に質問してみよう