Excel2000のグラフについて教えていただきたいのですが

有るセルの数字から、別のセルへ計算で値を作りその値でグラフを作ろうとしているのですが。
何も入っていないセルは何も入っていないように、たとえば
if(a1="","",a1*3)
の様に式を入れたのですが。グラフにするとこの空白セルと0と認識しているようです。
x軸に一杯ポイントがうたれます。
グラフにこの空白セルを表示しないようにするにはどうしたらよろしいでしょうか。
空白セルを削除するとうまく行くのですが、いっぱいあって面倒なので何かいい方法がないか探しております。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

> if(a1="","",a1*3)



上の式で2番目の "" を 強引に NA()
にしたらいかがでしょう?
つまり、

if(a1="",NA(),a1*3)

としたら??
(でも "" を勝手に 0 としてしまうのは納得できませんね。
バグと言ってもいいのでは??)

また、これとは直接関係ありませんが、対象とするグラフをクリックし、次に
[ツール] メニューの [オプション] をクリックし、[グラフ] タブをクリックする。
そこで [空白セルのプロット] の指定するオプションを指定することにより
空白に関する表現の仕方を変えられますよ(特に折れ線グラフの場合)。
    • good
    • 0
この回答へのお礼

ちょっと汚くなりましたが、目的は達せられました。
早い対応、ありがとうございます

お礼日時:2001/05/29 14:33

>ちょっと汚くなりましたが


#N/Aを観かけ上見えなくするのであれば

 ・数式の入っている範囲を選択
 ・条件付き書式
 ・数式に =A1="" を記入
 ・書式設定で文字色を白に!

でスッキリします。
    • good
    • 0
この回答へのお礼

ありがとうございます
ワークシートの方も人に見せる時はやってみます。

お礼日時:2001/05/30 09:02

keronyanさんの提示したif文ですが、


・a1が""の場合は""
・a1が""以外の場合にはa1×3
が帰ります。

ここでif文の引数""は空文字列と空白セルが該当しますが、返値の""は空文字列となります。

従って、提示された状況(x軸一杯)は至極仕様通りの結果でしょう。

これは一見同じ様な空文字列と空白セルは内部的に扱いが違う事に起因しています。


で、解決方法ですが、私は以下の様にしています。

・if文を『if(a1="",0,a1*3)』に変更。
・if文全体をドラッグして範囲指定。
・[編集][コピー]から[形式を選択して貼り付け][値]で式を数値化。
・指定範囲はそのままで、[編集][置換]で『0』を『』に[完全に同一なセルだけを検索]で全置換。

以上でif文で0が返ったセルは空白セルになります。

なお、式を残したい場合にはこの手法は使えません。
また有効な数値に0が含まれる場合には、暫定変換の0を999等の有効値が取り得ない数値に換える必要が在ります。
    • good
    • 0
この回答へのお礼

>これは一見同じ様な空文字列と空白セルは内部的に扱いが違う事に起因しています。

扱いが違うならば空白セルと同じ扱いをしてくれる物を用意してほしい物ですね。
もしくは、空白セルと見なすようなオプションとか

式は次の計算に利用したいので残したいのです。
ありがとうございます

お礼日時:2001/05/30 08:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

Qエクセルの関数で,たとえばB15のセルの値を返すには?

エクセルの関数の質問です。

たとえば,
A1のセルに7
A2のセルに8
が入力されているとします。

ここで,少し回りくどいのですが,
A1(の7)と,A2(の8)と,関数などを使って,
あるセルに,B15のセルの値を返したいのですが,
可能でしょうか?

間違ってますが,
=B(A1+A2)
のような式を書きたいのですが…。


あっさりと,
=B15
とすればいいのはわかっていますが,
やむえない事情がありまして…。

よろしくお願いします。

Aベストアンサー

=INDIRECT("B"&A1+A2)
で良いと思います。

QA1セルにAと入力すると、A2セルに3000A3セルに2000A4セルに1000と表示させたい。

A1セルに「A」と入力する1回だけで、
A2セルに「3000」
A3セルに「2000」
A4セルに「1000」
A5セルに「合計数字」を表示させたいのですが、
式をご教授願いたいです。

よろしくお願いします。

Aベストアンサー

D1:G3
A500030001000
B500300130
C1200800300
A1にA,B,Cのどれかを入れる。
A2に =VLOOKUP($A$1,$D$1:$G$2,ROW(),FALSE)と入れて、
A4まで(G-D-1列数だけの行数)式を複写する。
結果
A1がBの場合A1:A4は
B
500
300
130

A1の空白の場合に対処して
=IF(A1="","",VLOOKUP($A$1,$D$1:$G$2,ROW(),FALSE))
が良いでしょう。
(既回答とほぼ同じ式ですが、1箇所違うところがあります。)

Q入力セルが空白の時 隣りと隣のセル(こちらも入力セル)を空白にできるかどうか?

こういったことできないでしょうか。

 A1  B2  C3
9:00  ~  10:00 と場合に

A1とC3に直接値を入力しています。

A1セルに値がはいらないとき B2のチルダも C3の値も 空白になってくれると
よいなと思うのですが 良い方法はありますでしょうか。

ご存知の方ご教示いただければ助かります。

Aベストアンサー

こんばんは!

>C3のセルのことを B2に入力した式で
>管理できないかと思っているのですが・・・

関数では無理だと思います。
VBAになりますが一例です。

画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
A1・C3セルにデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
If Intersect(Target, Range("A1,C3")) Is Nothing Then Exit Sub
If Target.Count = 1 Then
With Target
If .Row = 1 Then
If .Value <> "" Then
If Range("C3") <> "" Then
Range("B2") = "~"
End If
Else
Range("B2,C3").ClearContents
End If
Else
If .Value <> "" Then
Range("B2") = "~"
Else
Range("B2").ClearContents
End If
End If
End With
End If
End Sub '//この行まで//

※ A1セルがC3セルより大きな値になった場合などの細かいエラー処理はしていません。

こんな感じをお望みなのでしょうか?m(_ _)m

こんばんは!

>C3のセルのことを B2に入力した式で
>管理できないかと思っているのですが・・・

関数では無理だと思います。
VBAになりますが一例です。

画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
A1・C3セルにデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
If Intersect(Target, Range("A1,C3")) ...続きを読む

Qマクロによって、既に値の入っているセルや空白のセルに値を追加して入れたい

こんにちは

宜しければお力をお貸しください。
A1などのセルにユーザー定義によって数字の1を(1)として入力してあり、B1も(2),C1が空白のセルだとします。

この時、A1:C1の範囲を選択しマクロを実行することで、A1=(1)①、B1=(2)②、C1=③と指定の範囲の既に入力されている値を変えずに追加で丸数字で連番を振る方法を教えて頂きたいです。

Aベストアンサー

No7です。
>条件2の設定で選択したセル1が”(2)”や”(3)”の時でも同様に(2)①、(3)①と表示されるのでしょうか?あまり詳しくないためバカなことを聞いていたらすみません…。

はい。そうなります。
以下のマクロを標準モジュールで登録し、実行してください。
---------------------------------------------------
Option Explicit

Public Sub Macro1()
Dim maru As Variant
maru = Array("○", "①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨", "⑩", "⑪", "⑫", "⑬", "⑭", "⑮", "⑯", "⑰", "⑱", "⑲", "⑳")
Dim sh1 As Worksheet
Dim shw As Worksheet
Dim sName As String
Dim sa As String
sName = ActiveSheet.Name '選択されているシート名
Set sh1 = Worksheets(sName) '選択されているシートをsh1で参照する
sa = Selection.Address '選択されたセル領域を取得
Worksheets.Add after:=Worksheets(Worksheets.Count) '作業用のシートを末尾に追加(作業完了後削除する)
Set shw = Worksheets(Worksheets.Count) '作業用のシートをshwで参照する
shw.Activate '作業用のシートをactivateする
Dim tmp As Variant
Dim i As Long
tmp = Split(sa, ",") 'セルは複数選択されているので","で分割する
For i = 0 To UBound(tmp)
Range(tmp(i)).Value = True '選択されたセルの該当箇所へTRUEを設定(但し作業用シートへ設定)
Next
ActiveCell.SpecialCells(xlLastCell).Select '選択されたセルの最後のセルへ移動
Dim row, col, endRow, endCol, ctr As Long
endRow = Selection.row '選択されたセルの最後のセルの行を取得
endCol = Selection.Column '選択されたセルの最後のセルのカラムを取得
ctr = 0
For row = 1 To endRow '1列から最後のセルの行まで繰り返し
For col = 1 To endCol '1カラムから最後のセルのカラムまで繰り返し
If Cells(row, col) = True Then '選択されたセルの位置なら
ctr = ctr + 1 '番号をカウントアップ
If ctr <= UBound(maru) Then '番号が20以内なら
If ctr = 1 Then '番号が1(先頭のセル)なら
sh1.Cells(row, col) = sh1.Cells(row, col) & maru(ctr) 'そのセルの内容+①を設定
Else
sh1.Cells(row, col) = maru(ctr) '②~⑳を設定
End If
Else
sh1.Cells(row, col) = maru(0) '番号が20を超えているので○を設定
End If
End If
Next
Next
Application.DisplayAlerts = False 'シート削除時の警告を出さないようにする
Worksheets(Worksheets.Count).Delete '作業用のシートを削除
Application.DisplayAlerts = True 'シート削除時の警告を出すようにする(元に戻す)
sh1.Activate '選択されたシートに戻す
End Sub
--------------------------------------------------------------
セルを選択した状態で、上記のマクロを実行してください。
セルの書式は標準にしておいてください。
選択したセルの最初のセルは(1)、(2)、(3)などの文字を格納しておいてください。
入力時、(1)と入力すると-1になってしまうので、'(1)と入力してください。
(1)の前にシングルクオート「'」を付けます。そうすれば、-1と表示されません。

No7です。
>条件2の設定で選択したセル1が”(2)”や”(3)”の時でも同様に(2)①、(3)①と表示されるのでしょうか?あまり詳しくないためバカなことを聞いていたらすみません…。

はい。そうなります。
以下のマクロを標準モジュールで登録し、実行してください。
---------------------------------------------------
Option Explicit

Public Sub Macro1()
Dim maru As Variant
maru = Array("○", "①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨", "⑩", "⑪", "⑫", "⑬", "⑭", "⑮", "⑯", "⑰", "⑱", "⑲", "⑳")...続きを読む


人気Q&Aランキング

おすすめ情報