web-dev-qa-db-ja.com

Excelグラフのx軸とy軸を反転

これはそれほど難しいことではありませんが、どうすればいいのかわかりません。

これに似たテーブルがあります

   %low %high
 0   0   12
 1  13   26
 ...
19  90   94
20  95  100

グラフ化すると、Excelのデフォルトでは、最初の列がx軸になり、2番目と3番目の列がy値としてプロットされます。代わりに、最初の列をy軸に配置します。簡単な方法があると思いますが、わかりません。私が検索で見つけたもののほとんどは「行/列の切り替え」ボタンを提案していますが、それは別のことをします。

助けてくれてありがとう。

4
Pat

グラフ化するものを手動で選択できます。

これが私のサンプルデータです:

enter image description here

散布図を作成することを選択します。データソースを編集したら、[追加]ボタンをクリックします。

enter image description here

シリーズ名には何でも選択できますが、私は列ヘッダーを選択します。 X値はもちろんX列の値です。 Y値は、Y列の1つです。

enter image description here

2番目のデータセットについても同じ手順を繰り返します。

5
Eric F

以下は、最初の列にYが配置され、後続のデータに1つ以上のXのセットが配置されたデータからXY散布図を作成する単純なVBAルーチンです。データの範囲を選択するか、その範囲内の単一のセルを選択して、コードを実行します。

Sub ChartFromInput_YXX()
    ' assumes first column of input range has Y values
    ' assumes subsequent columns have X values
    ' assumes first row of input range has series

    Dim rngDataSource As Range
    Dim iDataRowsCt As Long
    Dim iDataColsCt As Integer
    Dim iSrsIx As Integer
    Dim chtChart As Chart
    Dim srsNew As Series

    If Not TypeName(Selection) = "Range" Then
        '' Doesn't work if no range is selected
        MsgBox "Please select a data range and try again.", _
            vbExclamation, "No Range Selected"
    Else
        Set rngDataSource = Selection
        If rngDataSource.Cells.Count = 1 Then
            ' expand to data range including active cell
            Set rngDataSource = rngDataSource.CurrentRegion
        End If
        With rngDataSource
            iDataRowsCt = .Rows.Count
            iDataColsCt = .Columns.Count
        End With

        '' Create the chart
        Set chtChart = ActiveSheet.Shapes.AddChart.Chart

        With chtChart
            .ChartType = xlXYScatterLines

            '' Remove any series created with the chart
            Do Until .SeriesCollection.Count = 0
                .SeriesCollection(1).Delete
            Loop

            For iSrsIx = 1 To iDataColsCt - 1
                '' Add each series
                Set srsNew = .SeriesCollection.NewSeries
                With srsNew
                    .Name = rngDataSource.Cells(1, 1 + iSrsIx)
                    .Values = rngDataSource.Cells(2, 1) _
                        .Resize(iDataRowsCt - 1, 1)
                    .XValues = rngDataSource.Cells(2, 1 + iSrsIx) _
                        .Resize(iDataRowsCt - 1, 1)
                End With
            Next
        End With
    End If
End Sub
3
Jon Peltier

たまに軸を交換する必要がある場合、これは tutorial がおそらく最も簡単な方法を示します。

  1. グラフを右クリックし、コンテキストメニューの[データの選択]をクリックします。
  2. [データソースの選択]ダイアログボックスで、[Y列]をクリックして強調表示し、[凡例エントリ(シリーズ)]セクションの[編集]ボタンをクリックします。
  3. [シリーズの編集]ダイアログボックスが表示されます。シリーズXの値とシリーズYの値を入れ替えてから、[OK]ボタンを続けてクリックして両方のダイアログボックスを閉じてください。

写真のリンクを参照してください。

1
Iizuki

反復的なタスクが必要な場合、受け入れられたソリューションは時間がかかる可能性があります。すばらしいJon Peltierには、 これのための単純なアドイン があります。 彼のページ をご覧ください。

この他の ドキュメントページ で述べたように:

XY軸の切り替え

これは、スイッチXY軸のドキュメントページのプレースホルダーです。

つまり、利用できるドキュメントはありません。それでも、実際に試す価値はあります。学ぶのは本当に簡単です。