- ベストアンサー
#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!」を解決するにはどのような方法があるのでしょうか? 長くなった上にややこしくなって申し訳ありません。ぜひともご意見よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> =if(「a」="",(if(「a'」=""," ",「a'」),「a」) aとa'が両方空欄の場合、bにスペース1個が返ってきてますよ。 > =if(「b」=""," ",「b」) c1も、bが空欄のときにスペースが返るようになってますね。 これではc1が空欄になれないので、スペースをdatedif関数の引数として使おうとし、 エラーになります。きちんと空欄を返しましょう。
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
個人的に、近頃よく使っている方法です。 算式は変更せず、セルの書式設定でエラー表示を見せなくするだけの方法です。ごまかし技です。ご参考?に。 エクセルでエラーを表示したくない http://www.okweb.ne.jp/kotaeru.php3?q=436392
お礼
nishi6さん、ありがとうございます。 エラーを消すのって、いろいろな方法があるんですね。どうしても消えないとき、この方法を使ってみようと思います。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 つまり、DATEDIF関数に渡す引数が不正な値の場合があるわけですね。 その場合はISERROR関数でエラーかどうかを判別してやればいいと思います。 DATEDIF(省略) の部分を、 IF(ISERROR(DATEDIF(省略)),"",DATEDIF(省略)) とします。 詳細はヘルプを参照して下さい。
お礼
maruru01さん、お返事ありがとうございます! ISERROR関数は、質問を検索したらたくさん出てきたのですが、その時はよくわかりませんでした。でもmaruru01さんのアドバイスのおかげで、少し分かってきたので、これからつかってみようと思います。エクセル関数ってすごいんですね。ちょっとばかり感動です。
お礼
grumpy_the_dwarfさん、ありがとうございました。質問を細かい所まで見ていただいて、本当に感謝です! 「" "」を「""」にしたらうまくいきました! 実はず~っと前、「空欄だったら空欄にする」条件で初めてIF関数を使った時に、何かのミスでうまく出てこなかったのです。その時にこの「空欄だったらスペースにする」で解決してきました(なぜかこれだとうまくいった)。それ以降、わざとスペースにしてきたのです。しかし今回試してみたら、スペースじゃなくて空欄にしてもきちんと出てきました。 これで、いろいろなことが解決しそうです。 どうもありがとうございました。