『折れ線グラフで[#N/A]をプロットさせない方法』

折れ線グラフで「#N/A」を補完してプロットさせない方法はありますか?。

折れ線グラフを作成していて非常に困っています。 グラフデータは関数で作成しています。 返される値がゼロの場合は、プロットさせないためにif関数を使って「#N/A」となるようにしています。 ここで問題が起こっているのですが、セルが「#N/A」となっている場合、 「ツール」→「オプション」→「グラフ」タブ:(補完してプロットする)にチェックしていなくても、勝手にグラフが繋がってしまいます。 関数計算結果がゼロ(#N/A)となる場合には、グラフとして表示してほしくない(その部分は途切れてほしい)のですが、うまくいきません。 なにか「セルが空白」と認識させるような命令はないでしょうか? もしくは、他にその部分が途切れて表示されるような技はないでしょうか? マクロを使うような高度なテクニックはありません

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/03/17 01:10:16
  • 終了:2010/03/24 01:15:02

回答(2件)

id:p332 No.1

p332回答回数36ベストアンサー獲得回数32010/03/17 02:20:12

ポイント35pt

空白という特殊な値を返す関数や演算子は存在しないので、セルが空白と認識される

数式はないと思います。

ユーザー定義関数(マクロで定義する関数)を使っても無理のようです。

また、グラフの設定を工夫しても無理かと思います。

(折れ線グラフは、通常、途中のデータに欠損があってもつないで書くのが一般的で、欠損

部分を保管したくない場合は散布図を使うのが一般的かと思います。)

したがって、セルの値を消すしかないですが、その場合は、置換機能を使って空白にす

るのが楽です。

手順は、

・対象のデータをコピーし、適当な場所に「形式を指定して貼り付け」-「値」をする

・Ctrl + Hで、不要な値を、空白で、置換する

となります。

ご参考までに、不要なデータを削除するマクロを記載いたします。

使う場合は、対象のセル範囲を選択して下記のコードを実行すれば"#N/A"のセルが空白になります。

|>

Sub deleteNA()

Dim Rng As Range

Dim TarRng As Range

Dim tmp As Variant

Set Rng = Selection

For Each TarRng In Rng

tmp = TarRng.Value

'エラー値の時セルの値を削除する

If VarType(tmp) = vbError Then

TarRng.ClearContents

'「#N/A」という文字列の時も削除する

ElseIf tmp = "#N/A" Then

TarRng.ClearContents

End If

Next

End Sub

|<

id:mai_mai_mail

ありがとうございます。非常に参考になりました。

2010/03/17 02:42:54
id:satoha No.2

satoha回答回数26ベストアンサー獲得回数12010/03/18 09:00:33

ポイント35pt

マクロを使った回答は他の方がされているので、他の方法で。


値のコピーを使う

※選択範囲のすべての数式が値に置き換わります。

  1. #N/AのときNull("")になるように関数を修正
  2. データ範囲をコピー(コピーしたら範囲を選択したままにする)
  3. 右クリックまたはメニューの「編集」から「形式を選択して貼り付け - 値」で選択範囲に上書き

オートフィルタを使う

※選択範囲の#N/A分の数式が消えます。

  1. グラフデータの元になっている範囲のどこかのセルを選択
  2. メニューの「データ」から「フィルタ - オートフィルタ」を実行
  3. 該当の系列で矢印をクリックして、値が#N/Aになっているものを抽出
  4. そのまま上から下まで選択してDeleteキーを押す
  5. 該当の系列で矢印をクリックして、(すべて)を選択してもとの表示に戻す
  6. メニューの「データ」から「フィルタ - オートフィルタ」を実行(解除)

どちらも再計算がかかるものにはよろしくありませんが……お試しください。

  • id:Km1967
    値をゼロにするという提案はダメなようだから、回答者は気をつけよう。
    http://q.hatena.ne.jp/1268745968#c174485
    理由が別のところにあることに自分で気づいてキャンセルという事もあるようだ。重ねて気をつけよう。
    http://q.hatena.ne.jp/1261132248
  • id:nobnob3
    http://takashixxx.blog88.fc2.com/blog-entry-75.html
    エクセルの質問ですよね。
    いろいろ調ましたがマクロを使う以外にはだめそうでした。
    もしかしたら参考になるのは、表示したくない行か列を選んで非表示くらいです。
  • id:p332
    satohaさんの回答について何点かコメントさせていただきます。
    ・空白セルの値はNullではなくEmptyです。(VBAでNullを入力するとEmptyに変換されます)
    ・数式を「=""」としても、値はEmptyにならず、長さゼロの文字列になります。
    ・「形式を選択して貼り付け - 値」をしても、長さゼロの文字列のままで、Emptyにはなりません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません