Значения временных рядов не соответствуют горизонтальной оси на моей диаграмме Excel

РЕШЕНО С ИСПОЛЬЗОВАНИЕМ ГРАФИКА XY ВМЕСТО ГРАФИКА

Я хочу создать диаграмму в Excel, содержащую несколько рядов, связанных по дате (т. е. один ряд заканчивается 2018/12/31, следующий начинается 2018/12/31). Необработанные данные берутся из листа с двумя столбцами; столбец даты и столбец значения.

Рассматриваемая здесь диаграмма называется «бета» и содержит 3 временных ряда. Это моя попытка:

Sub UpdateGraph
Dim ws             As Worksheet
Dim rng_NF3        As Range
Dim rng_Barra      As Range
Dim rng_NF3_Date   As Range
Dim rng_Barra_Date As Range
Dim rng_Total_Date As Range
Dim rng_Total_Val  As Range
Dim cht_Name       As String
Dim ArrDate        As Variant
Dim arrValues      As Variant


        cht_Name = "Beta"  ' Example
        Set ws = Activesheet
        Set cht = ws.ChartObjects(cht_Name)
        Set rng_NF3 = ws.Range(ws.Cells(2, 4), ws.Cells(200, 4)) ' Set range of values from NF3 (GEM3)
        Set rng_Barra = ws.Range(ws.Cells(201, 4), ws.Cells(500, 4)) ' Set range of values Barra
        Set rng_NF3_Date = rng_NF3.Offset(0, -1) ' Set range of date for NF3 observations
        Set rng_Barra_Date = rng_Barra.Offset(0, -1) ' Set range of date for Barra observations
        Set rng_Total_Date = Union(rng_NF3_Date, rng_Barra_Date)
        Set rng_Total_Val = Union(rng_NF3, rng_Barra)
        ArrDate = rng_Total_Date.Value
        arrValues = rng_Total_Val.Value
        With cht.Chart
            .FullSeriesCollection(1).Format.Line.ForeColor.RGB = ws.Cells(1, 20).Interior.Color
            .FullSeriesCollection(2).Format.Line.ForeColor.RGB = ws.Cells(2, 20).Interior.Color
            .FullSeriesCollection(1).Values = rng_NF3 ' Value series for NF3
            .FullSeriesCollection(2).Values = rng_Barra ' Value series for Barra
            .FullSeriesCollection(1).XValues = rng_NF3_Date
            .FullSeriesCollection(2).XValues = rng_Barra_Date
             If cht_Name = "Beta" Then ' Defining Beta = 1
             .FullSeriesCollection(3).Format.Line.ForeColor.RGB = ws.Cells(1, 21).Interior.Color '  Color
             .FullSeriesCollection(3).Values = 1 ' Should be a range with the same number in all elements, not working but another issue.
             .FullSeriesCollection(3).XValues = rng_Total_Date
             End If
             ' X-axis
             With cht.Chart.Axes(xlCategory)
                .CategoryType = xlTimeScale
                '.MajorUnitScale = xlMonths
                .MinimumScale = ArrDate(LBound(ArrDate, 1), 1)
                .MaximumScale = ArrDate(UBound(ArrDate, 1), 1)
                .MajorUnit = 3 ' Manually set x-axis unit scale
                '.MajorUnitIsAuto = True
             End With
            ' Y-axis
            With cht.Chart.Axes(xlValue)
                .MinimumScaleIsAuto = True
                .MaximumScaleIsAuto = True
                .MajorUnitIsAuto = True
            End With
        End With

End sub

Я хотел, чтобы ряды продолжались друг за другом, но вместо этого они оба начинаются с первой даты горизонтальной оси. Я подозреваю, что Excel не распознает мою попытку сопоставить дату моего временного ряда с датой оси X.

Вот так выглядит моя фигура. Я использую линейную диаграмму. Значения временных рядов не соответствуют горизонтальной оси на моей диаграмме Excel

Вы используете точечную диаграмму?

Tim Williams 27.05.2019 09:11

Я использую линейную диаграмму.

BlackBear 27.05.2019 09:16

Попробуйте график рассеяния

Tim Williams 27.05.2019 09:17

@TimWilliams Это решило проблему, спасибо.

BlackBear 27.05.2019 09:20
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
4
814
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ответ предоставлен @TimWilliams, если он не создаст сообщение, я по возможности отмечу это как ответ.

Решение состоит в том, чтобы использовать точечную диаграмму X-Y (доступна линейная опция) вместо линейной диаграммы, которую я использовал изначально.

Другие вопросы по теме