Excelのグラフの対応するセカンダリY値に等しいプライマリ最大および最小Y値を設定しますか?


1

プライマリの最大Y値と最小Y値がセカンダリY軸でも同じ値になるように、チャートにスケールを設定する方法はありますか?

基本的に、私は見ているさまざまな銘柄(履歴ログ値)があり、それぞれに価格の独自の折れ線グラフがあり、次に3つの水平線(平均価格と1つの標準)を示すセカンダリシリーズを追加しました平均の上下の偏差。これにより、株価が変動する通常の価格帯を見ることができます(このシリーズは散布図としてあります)。私の問題は、ExcelがY軸ごとに異なる自動スケールを使用しているように見えることです(セカンダリシリーズに同じ最小値と最大値を含めようとしましたが、スケールがまだ異なる場合があります)。

理想的には、かなりの数の異なる株を見ているので、最大および最小のY値を各株の最高または最低価格に等しく設定できるいくつかの列を追加して、これを自動化したいと思います(主軸と副軸の両方)。次のサイトを見て、マクロ(http://peltiertech.com/Excel/Charts/AxisScaleLinkToSheet.html)を作成できるかどうかを確認しましたが、マクロを書くスキルがかなり不足しており、運があまりありませんでした。

ただし、このリクエストはVBAを介してのみ可能であることがわかっているので、基本的に長い話ですが、選択したチャートを、指定したパラメーターを使用して自動サイズ調整できるマクロをセットアップする方法を知っている人はいますか?(Say列Aは日付を示し、Bは価格を示し、右側のセクション(セルD1:F4など)は、XとYの最小値と最大値、およびマクロが読み取ることができるティックサイズを指定しますか? (空のマクロを作成し、マクロ自体にジャンプする方法を知っていますが、実際にコードを貼り付ける場所が少し失われ始めています)。


1
これは、Y軸がY(2)軸に等しいという意味ではありませんか?もしそうなら、なぜ副軸があるのですか?
mcalex

こんにちはmcalex、2番目の軸が必要な理由は、最初の軸で時間の経過とともに価格帯を表示し、平均を取り、平均の上下に1つの標準偏差があるため、上に3本の水平線を追加できるからです。過去の履歴と比較して在庫がどこにあるかを見ることができるように私のチャート。時間の経過に伴う通常の範囲と比較して、現在どこで取引されているかを簡単に確認できます。私の問題はY1とY2が異なるスケールを使用していたため、データが一致しませんでした。以下で作成されたマクロdavは、この修正を自動化するために完全に機能しました。カントーありがとう
スティーブ・ブランク

回答:


0

このコードスニペットは、リクエストの基本を提供します。ワークブックのモジュールでは、それは独立している必要があります。または、ここから他のワークシートに展開したり、チャートの一部を変更したりできます。最初の数行は、チャートを選択していない場合のエラートラップ用です。その他はすべてフォーマットします。スケールに使用するセルを参照範囲に指定するだけです。

サブCustomAxis()

If ActiveChart Is Nothing Then ' Error trap to ensure a chart is selected
    MsgBox "Please: Select a chart and try again.", vbExclamation

    Else

        ActiveChart.Axes(xlValue).MinimumScale = Range("A2") 'Set min scale to cell A2
        ActiveChart.Axes(xlValue).MaximumScale = Range("A3") 'Set max scale to cell A3
        ActiveChart.Axes(xlValue).MajorUnit = Range("A4") 'Set major tick to cell A4
        ActiveChart.Axes(xlValue).MinorUnit = Range("A5") 'Set minor tick to cell A5

End If

サブ終了


パーフェクト!どうもありがとうございました、感謝しています。これはうまくいきました。
スティーブ・ブランク

0

グラフにデータを追加することで、これをVBAから自動的に独立させることができます。

たとえば、セルF2に両方の軸のすべてのY値の最小値を計算する式を挿入し、F3に対応する最大値を計算する式を挿入します。このような:

等軸スケール-サンプルデータ

以下の最初のチャートはストックデータのみを示し、2番目のチャートはプライマリ軸に参照線を持つセカンダリ軸にストックデータを示しています(したがって、参照線はストックデータの後ろに表示されます)。

3番目のグラフでは、列Fの主軸に最小/最大データを追加し、4番目の軸では副軸に追加しました。

最後に、5番目のチャートでは、ラインまたはマーカーなしで最小/最大シリーズの両方をフォーマットして、非表示にしました。必要に応じて、凡例からそれらを削除できます。凡例を1回クリックし、削除する凡例エントリを1回クリックして、[削除]をクリックします。

ただし、データが変更されると、列Fの最小/最大計算が更新され、チャートも更新されます。

等軸スケール-チャートの進化

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.