- ベストアンサー
関数でエラー
Excel2000で初めて関数に挑戦してみました。 「B4]に、もし「E4」が空欄だったら空欄のまま、数字が入っていたら「E4」から「F4以降の値の和」を引いた値を入れたいのです。 IF(ISBLANK(E4),"",E4-SUM(F4:AZ4) IF(AND(E4=""),"",E4-SUM(F4:AZ4)) それぞれの数式を試したのですが、途中で「#NAME」又は「正しくありません」などの表示がされてしまいます。 表示を無視して入力してみたら、「B4」に正しい数字の結果が得られたので成功したのだと思い、今度は数式だけを、コピー&ペーストで「B5」以下のセルに貼りつけました。ところが、数式だけを指定したはずなのに、数式と一緒に「B4」の値までが貼り付けられてしまいました。 結果的には、エラー表示を無視して作った数式なので無効なのでしょう。 「E4」や「F4」など、セルの番地を入れ始めると、「#NAME」が表示され、「-」マイナスを入れると「正しくありません」となってしまいます。 テキストをを参考にして作った数式なのですが、どこが間違ってるのかわかりません。 どうそ教えて下さい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! No.1です。 補足質問への回答になりますが、遅くなって申し訳ございません。 質問内容を読ませてもらっての私の憶測になりますが・・・ どこかのセルを絶対参照にする必要があるのではないかと思います。 E4から行の下に向かってE5・E6・E7・・・というようにオートフィルでコピーされていると仮定すると 前回回答の =IF(E4="","",E4-SUM(F4:AZ4)) の数式で F4:AZ4を固定しなければならないのでは? (もし間違っていたらごめんなさい) その場合は =IF(E4="","",E4-SUM($F$4:$AZ&4)) のような感じです。 この場合例えば7行目のセルの数式を見てもらえば =IF(E7="","",E7-SUM($F$4:$AZ44)) となっているはずです。 すなわち、オートフィルでコピーすると最初の数式の配置ですべてが同じように移動してしまいますので どこか固定したいセルを絶対参照にする必要があります。 参照セルを固定したい場合は そのセルを範囲指定してF4キーを押せば上記のような$マークが自動的に入ります。 以上、エラーが出る原因として感じた事ですが・・・ 参考になれば幸いです。m(__)m
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17070)
ちょっとこのコーナーの質問レベルになくて、ミスの情況の記述など理解するのが面倒。 B4に式を入れる。式を入れるときはまず=で始める。 次に>「E4」が空欄だったら・・ はIF関数で、ISBLANKなんて難しい関数でなく普通は =IF(E4="",と聞くその場合(TRUEの場合)は空白だから =IF(E4="","", (空欄のまま、というイメージではなく改めて空白をB4セルに入れると考える表現) そのまま、というのを式にするなら=IF(E4="",E4,とでもなろうか。 >F4以降の値の和・ 足すのはどこまで、というのが書いてない 行くのはどこから、が書いてない 後の実例を見るとAZ4列まで、とかE4とかが判るが質問文は質問文で完成するような、きっちりした表現を考えるクセを持たないと上達しない。 結果 =IF(E4="","",E4-SUM(F4:AZ4)) 質問に書いている式は IF(ISBLANK(E4),"",E4-SUM(F4:AZ4) とは微妙に違う。=が無い、最後の)が無い。 そういうことは判っているではすまない。何万人にも質問するのだからシャキット書くこと。 式の複写はB4セルでセル右下に+ハンドルを出して、下方向に引っ張る方法が多いが、B4をコピーし、B5:B30とかを範囲指定して貼り付け でも良い。
補足
確かに、分かりにくい質問の仕方だったかと思いますが、御回答をくださり、ありがとうございました。 今後の質問時の参考にさせて頂きます。 あの数式はネット上のExcel講座を参考にして、作ったのですが、他の回答者の方からも、シンプルな数式を教えた頂き、そちらのほうを使うことにしました。 以下、やはり分かりづらい部分が多々あるかもしれませんが、よろしくお願いします。 数式を入れるのは初めてだったので、心配なので入れる前にブックのバックアップをとっておきました。 今度はバックアップしたブックほうに数式を入れてみました。 そうしたら、どの数式もきちんと正しい値が返ってきて、フィルハンドルでコピーしてもちゃんと正しい値が出てきました。 狐につままれた気分で、再び最初に試したブックで同じように数式を入れてみましたが、やはり数式を直接入れたセルには正しい値が返ってくるのですが、フィルハンドルコピーをした部分は、コピー元の数値がそのまま貼り付けられてしまいます。(数式は各行に対応した正しいものが貼り付けられているのですが) 取り敢えずは、バクアップのブックで成功したので、解決済みなんですが、書式設定などを変えたわけでもないのになぜ片方のブックではだめだったのか疑問が残り、すっきりしません。 まだるっこしい質問に親切にお答え頂いて、本当にありがとうございました。 もしこの疑問に、お心当たりがあれば、再度ご教授頂ければ幸いです。 宜しくお願いします。
>今度は数式だけを、コピー&ペーストで「B5」以下のセルに貼りつけました。ところが、数式だけを指定したはずなのに、数式と一緒に「B4」の値までが貼り付けられてしまいました。 2000だとフィルコピー?という機能を使うようです。
補足
>2000だとフィルコピー?という機能を使うようです。 そうでしたね。早速その方法に切り替えました。 早速に御意見を頂きながら、すっかりお礼が遅くなってすみませんでした。 数式を入れるのは初めてだったので、心配なので入れる前にブックのバックアップをとっておきました。 今度はバックアップしたブックほうに数式を入れてみました。 そうしたら、どの数式もきちんと正しい値が返ってきて、フィルハンドルでコピーしてもちゃんと正しい値が出てきました。 狐につままれた気分で、何度も最初に試したブックで同じように数式を入れてみましたが、やはり数式を直接入れたセルには正しい値が返ってくるのですが、フィルハンドルコピーをした部分は、コピー元の数値がそのまま貼り付けられてしまいます。(数式は各行に対応した正しいものが貼り付けられているのですが) 取り敢えずは、バクアップのブックで成功したので、解決済みなんですが、書式設定などを変えたわけでもないのになぜ片方のブックではだめだったのか疑問が残り、すっきりしません。 まだるっこしい質問に親切にお答え頂いて、本当にありがとうございました。 もしこの疑問に、お心当たりがあれば、再度ご教授頂ければ幸いです。 宜しくお願いします。
- ahirudac
- ベストアンサー率46% (84/180)
>「#NAME」又は「正しくありません」 前者は関数名に間違いがある場合に表示されると思います。スペルに間違いがないか、全角文字が混じっていないか確認して頂くと良いかと。 後者は文法に間違いがある場合に表示される様です。質問者様の例でいけば、最初の「IF(ISBLANK(E4),"",E4-SUM(F4:AZ4)」はカッコの数があっていないので「正しくありません」と表示されると思います。 >数式と一緒に「B4」の値までが貼り付けられてしまいました エクセルでは一つのセルに数式と値が共存することは出来ないはずです。B4の値が表示されたのであればそれは数式の結果ということになるかと思います。 >「E4」や「F4」など、セルの番地を入れ始めると~ 「数式入力中に」ということであれば最初に書いたことが原因と思われます。数式入力中以外ということであればその状況が当方では推測できませんので、補足をして頂いた方が的確な回答が得られると思います。 ご参考までm(__)m。
補足
早速に御意見を頂きながら、すっかりお礼が遅くなってすみませんでした。 御回答を参考にして、スペルや全角半角の間違いに細心の注意をはらいながら、色々やってみました。 数式を入れるのは初めてだったので、心配なので入れる前にブックのバックアップをとっておきました。 今度はバックアップしたブックほうに数式を入れてみました。 そうしたら、どの数式もきちんと正しい値が返ってきて、フィルハンドルでコピーしてもちゃんと正しい値が出てきました。 狐につままれた気分で、何度も最初に試したブックで同じように数式を入れてみましたが、やはり数式を直接入れたセルには正しい値が返ってくるのですが、フィルハンドルコピーをした部分は、コピー元の数値がそのまま貼り付けられてしまいます。(数式は各行に対応した正しいものが貼り付けられているのですが) 取り敢えずは、バクアップのブックで成功したので、解決済みなんですが、書式設定などを変えたわけでもないのになぜ片方のブックではだめだったのか疑問が残り、すっきりしません。 まだるっこしい質問に親切にお答え頂いて、本当にありがとうございました。 もしこの疑問に、お心当たりがあれば、再度ご教授頂ければ幸いです。 宜しくお願いします。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 色々方法はあると思いますが・・・ 一例として =IF(E4="","",E4-SUM(F4:AZ4)) としてみてはどうでしょうか? 質問内容をそのままIF関数の「関数の引数」ダイアログボックスに当てはめただけですけど。 以上、参考になれば幸いです。m(__)m
補足
>=IF(E4="","",E4-SUM(F4:AZ4)) としてみてはどうでしょうか? こんなにすっきりした数式があったんですね。早速試してみました。 早速に回答を頂きながら、すっかりお礼が遅くなってすみませんでした。 皆さんのアドバイスを参考にしながら、あれから毎日Excelと格闘してました。 数式を入れるのは初めてだったので、心配なので入れる前にブックのバックアップをとっておきました。 今度はバックアップしたブックほうに数式を入れてみました。 そうしたら、どの数式もきちんと正しい値が返ってきて、フィルハンドルでコピーしてもちゃんと正しい値が出てきました。 狐につままれた気分で、何度も最初に試したブックで同じように数式を入れてみましたが、やはり数式を直接入れたセルには正しい値が返ってくるのですが、フィルハンドルコピーをした部分は、コピー元の数値がそのまま貼り付けられてしまいます。(数式は各行に対応した正しいものが貼り付けられているのですが) 取り敢えずは、バクアップのブックで成功したので、解決済みなんですが、書式設定などを変えたわけでもないのになぜ片方のブックではだめなのか疑問が残り、すっきりしません。色々試してるうちに、ブックの何かが変わってしまったのか。 まだるっこしい質問に親切にお答え頂いて、本当にありがとうございました。 もしこの疑問に、お心当たりがあれば、再度ご教授頂ければ幸いです。 宜しくお願いします。
お礼
お礼がすっかり遅くなってすみません。 >どこかのセルを絶対参照にする必要があるのではないかと思います。 今回は相対参照で良いようです。 あれから悪戦苦闘して、やっと原因がわかりました。 作業グループを指定して編集をしてましたが、その結果、計算方法が「自動」から「手動」に勝手に切り替わってしまっていたようです。 下記のMicrosoftのサポートページにやっとたどり着きました。 http://support.microsoft.com/default.aspx?scid=kb;ja;817716&Product=xlw2kINT 親切にアドバイスを頂き、大変感謝しております。 これからも宜しくお願いします。