人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: mai_mai_mail
●カテゴリ:コンピュータ インターネット
✍キーワード:#N/A オプション グラフ セル ゼロ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● p332
●35ポイント

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

数式はないと思います。

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

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

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

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

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

るのが楽です。

手順は、

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

・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

|<

◎質問者からの返答

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


2 ● satoha
●35ポイント

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


値のコピーを使う

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

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

オートフィルタを使う

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ