[[20061021191342]] 『PPMグラフのXY軸の交点』(花形) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『PPMグラフのXY軸の交点』(花形)
どなたか教えて下さい。

散布図でPPMグラフをつくってまして、X軸とY軸の交点を平均値の入ったセルから取りたいのですが、、、入力するしか方法はないのでしょうか??

お願いします。


 手で入力する、コピペする、(=A1などのように)セルを参照する、などの方法が考えられます。
 (ちゅうねん)

散布図を追加して、交点をマークすることになると思います

データ表を提示できませんか?

ジーコ


(ちゅうねん)さん
ありがとうございます。
ただ分析用でして、手入力、こぴぺ、などの作業は避けたいのですが、、セル参照もグラフの特性として無理っぽいです。

以前の(NANA)さんの回答に下記のようなものがありました。
この方法しかないのでしょうか?。
(花形)

X軸との交点にしたい値が A1

 Y軸との交点にしたい値が A2
 にあるとすると

 Sub XY()
  Dim X As Integer, Y As Integer
   X = Range("A1") '←実際のセル番地に変更して下さい。
   Y = Range("A2") '←実際のセル番地に変更して下さい。

    ActiveChart.Axes(xlValue).Select
    With ActiveChart.Axes(xlValue)
        .MinimumScaleIsAuto = False
        .MaximumScaleIsAuto = False
        .MinorUnitIsAuto = False
        .MajorUnitIsAuto = False
        .Crosses = xlCustom
        .CrossesAt = X
        .ReversePlotOrder = False
        .ScaleType = xlLinear
    End With

    ActiveChart.Axes(xlCategory).Select
    With ActiveChart.Axes(xlCategory)
        .MinimumScaleIsAuto = False
        .MaximumScaleIsAuto = False
        .MinorUnitIsAuto = False
        .MajorUnitIsAuto = False
        .Crosses = xlCustom
        .CrossesAt = Y
        .ReversePlotOrder = False
        .ScaleType = xlLinear
    End With
 End Sub

 こんな感じです。
 マクロの記録をつついただけなので
 思いがけないことが起きるかもしれません。

 変更したいグラフをアクティブにした状態でに実行して下さい。

ジーコさん
ありがとうございます。
データ表は↓こんな感じです。XY軸の交点を平均値を基に反映させたいのですが。。
  
1	50000	1.2
2	4000	1
3	10000	0.5
4	30000	0.6
5	20000	0.8
6	30000	-0.2
平均	24000	0.65


ジーコさんさっきのは見難いので再度、、データ表です。

1  50000 /1.2                                                                         2  4000  /1                                                                         
3  10000 /0.5                                                                         
4  30000 /0.6                                                                         
5  20000 /0.8                                                                         
6  30000 /-0.2                                                                         
平均 24000 /0.65


散布図でPPMグラフをつくってまして

ということは、下のグラフになるのでしょうか?

http://briefcase.yahoo.co.jp/bc/taka816jp/lst?&.dir=/d6c5&.src=bc&.view=l

平均値を示すマーカーを表示すればよろしいのでしょうか?


 ↑どちら様でしょうか?
 HNを書き込んでくださいな^^
 
 ちなみに、、、
 ←ここに、半角スペースを入れると改行等の文章を整形してくれます。
 URLなどは、スペース無しで入力するとリンクされます。

入れないと
(ここで改行してます。)
このように繋がってしまいます。
 

 (キリキ)(〃⌒o⌒)b

 花形さんの最初にご呈示のテーブルを修正がてら・・・
 たぶん、ジーコさんが名前を書き忘れたと思われます。
 有益なレスでなくてごめんなさい。

 (HANA)

もうちょっと複雑な感じです。
X軸は平均値の24000、Y軸はもう一方の平均値0.65
このふたつで交点を作ります。
なので、データは4つのブロックに散布した図になります。
イメージとしてはデータ表の値の載せ替えだけでグラフが切り替わるようにしたかったのですけど、。、(花形)

ああ、、(HANA)さん、よかったらさっきのマクロ詳しく教えて下さい。

↓↓↓こんな感じで実行させました。
けど、うまく動きません。エラー内容は"実行時エラー6オーバーフローしました。"
となります。"Y = Range("E18")"←この部分が引っかかってます。
それと値によってはうまくいくのですが、X数値軸の交点が"0"になります。

  ActiveSheet.ChartObjects("グラフ 18").Activate

    ActiveChart.ChartArea.Select
  Dim X As Integer, Y As Integer
   X = Range("H18")
   Y = Range("E18")

    ActiveChart.Axes(xlValue).Select
    With ActiveChart.Axes(xlValue)
        .MinimumScaleIsAuto = False
        .MaximumScaleIsAuto = False
        .MinorUnitIsAuto = False
        .MajorUnitIsAuto = False
        .Crosses = xlCustom
        .CrossesAt = X
        .ReversePlotOrder = False
        .ScaleType = xlLinear
    End With

    ActiveChart.Axes(xlCategory).Select
    With ActiveChart.Axes(xlCategory)
        .MinimumScaleIsAuto = False
        .MaximumScaleIsAuto = False
        .MinorUnitIsAuto = False
        .MajorUnitIsAuto = False
        .Crosses = xlCustom
        .CrossesAt = Y
        .ReversePlotOrder = False
        .ScaleType = xlLinear
    End With
End Sub

(花形)


こんなことでしょうか?

http://briefcase.yahoo.co.jp/bc/taka816jp/lst?&.dir=/2bdf&.src=bc&.view=l

ジーコ


ジーコ さん 
はいそうです。!
(花形)

 ごめんなさいね、マクロはよく分からないのですよ。
 >思いがけないことが起きるかもしれません。
 は、「私にとって」と言うことだったので・・・・。

 >"実行時エラー6オーバーフローしました。" 
 解決できるかどうか分かりませんが、
 Dim X As Integer, Y As Integer を
 Dim X As Variant, Y As Variant に変えてみて下さい。

 >それと値によってはうまくいくのですが、X数値軸の交点が"0"になります。
 エラーが出ない場合でも交点が0になりますかね?
 どんな値の時に上手く行かないか分かりますか?

 (HANA)

(HANA)さん
どうもありがとうございました。。
Dim X As Integer, Y As Integer を
 Dim X As Variant, Y As Variant に変えてみて下さい。
こちらで一発解消されました。とりあえず、こちらで対応させて頂きます。そしてマクロも頂きます。自分でもマクロを記録させてたのですが、うまくいかなくて、、助かりました。あっそれとジーコさん わかりにくい文章にレスどうもありがとうございました。

 解決済みの過去の文章なのですが、変数の宣言を変えるより
 ROUND関数等使って、有効桁数でまるめを行ってもらった方が
 良かったような気がします。

 ↓にも書きましたが。参照元です。
[[20060612182658]]『散布図の交点に関して』(Pp)

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.