Попытка добавить год к оси X в файле Excel - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть следующий график, и я хочу показывать каждый год под его указанными c данными: 2000, 2001, 2002, ... 2016 вместо общего заголовка (Year 2000-2016), который можно увидеть прямо сейчас.

enter image description here

Но когда я пытаюсь добавить годы, весь график становится нестабильным, и моя информация теряется! Как мне это сделать?

1 Ответ

1 голос
/ 23 апреля 2020

Я предполагаю, что вы выбрали только столбец B при создании диаграммы. Вы должны попытаться создать новый график, но на этот раз выбрав оба столбца. Также было бы хорошо добавить заголовки к столбцам (я предполагаю, что заголовки в таблице написаны от руки). Я предполагаю, что для того, чтобы показать значение второй оси, вы должны нажать на кнопку «+», которую вы видите в правом верхнем углу графика. Должно появиться меню (элементы диаграммы). В этом меню вы увидите вход оси. Наведите курсор на него, и на его стороне должен появиться черный треугольник. Нажмите на этот треугольник. Подменю должно появиться. В нем вы увидите 3 входа: основной горизонтальный, основной вертикальный и другие параметры. Первичная вертикаль уже активна, первичная горизонталь - нет. Нажмите на него, чтобы включить. Теперь ваша горизонтальная ось будет иметь указанные значения. Вероятно, они будут числами от 1 до 17. Это потому, что вы не создали диаграмму, выбрав столбцы A и B. Поэтому, поэтому я предложил вам создать новую диаграмму. Вы также можете отредактировать вашу фактическую диаграмму, чтобы покрыть столбец A, но я не знаю, как долго вы хотели бы прочитать мое объяснение. :)

В любом случае, этот код также должен давать вам диаграмму, которую вы ищете:

Sub SubAddChart()

    'Declarations.
    Dim Report As Object

    'Creating data.
    Range("A1").FormulaR1C1 = "Number of uses in Neurosurgery"
    Range("A3").FormulaR1C1 = "2000"
    Range("A4:A19").FormulaR1C1 = "=R[-1]C+1"
    Range("A2").FormulaR1C1 = "=""YEAR ("" & MIN(" & Range("A3:A19").Address(True, True, xlR1C1) & ") & ""-"" & MAX(" & Range("A3:A19").Address(True, True, xlR1C1) & ") & "")"""
    Range("B2").FormulaR1C1 = "Number of uses"
    Range("B3").FormulaR1C1 = "0"
    Range("B4").FormulaR1C1 = "0"
    Range("B5").FormulaR1C1 = "2"
    Range("B6").FormulaR1C1 = "2"
    Range("B7").FormulaR1C1 = "1"
    Range("B8").FormulaR1C1 = "1"
    Range("B9").FormulaR1C1 = "8"
    Range("B10").FormulaR1C1 = "14"
    Range("B11").FormulaR1C1 = "15"
    Range("B12").FormulaR1C1 = "12"
    Range("B13").FormulaR1C1 = "13"
    Range("B14").FormulaR1C1 = "17"
    Range("B15").FormulaR1C1 = "21"
    Range("B16").FormulaR1C1 = "25"
    Range("B17").FormulaR1C1 = "31"
    Range("B18").FormulaR1C1 = "24"
    Range("B19").FormulaR1C1 = "29"

    'Creating chart.
    Set Report = ActiveSheet.Shapes.AddChart2(201, xlColumnClustered)

    With Report
        With .Chart
            'Setting source data.
            .SetSourceData Source:=Range(Range("A2"), Range("A2").End(xlDown).Offset(0, 1)), PlotBy:=xlColumns
            'Deleting years series collection.
            .SeriesCollection(Range("A2").Value).Delete
            'Changing X axis labels.
            .FullSeriesCollection(Range("B2").Value).XValues = "=" & ActiveSheet.Name & "!" & Range(Range("A3"), Range("A2").End(xlDown)).Address(, , xlR1C1)
            'Adding chart title.
            .HasTitle = True
            .ChartTitle.Caption = "=" & ActiveSheet.Name & "!" & Range("A1").Address(, , xlR1C1)
            'Adding axis title.
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Caption = "=" & ActiveSheet.Name & "!" & Range("B2").Address(, , xlR1C1)
            .Axes(xlCategory, xlPrimary).AxisTitle.Caption = "=" & ActiveSheet.Name & "!" & Range("A2").Address(, , xlR1C1)
            'Adding data labels.
            .SetElement (msoElementDataLabelOutSideEnd)
        End With
    End With

End Sub

Чтобы она работала, вы можете щелкнуть правой кнопкой мыши тег листа, где вы хотите разместить диаграмму (я предлагаю новый лист для первой попытки), нажмите «Показать код», вставьте код, нажмите на него, нажмите F5.

Дополнительные пояснения: я бы указал на учебное пособие по ознакомлению с диаграммой, подобное этому один: https://www.youtube.com/watch?v=DAU0qqh_I-A. После этого можно получить график, который он ищет. Основная проблема этого вопроса заключалась в том, что при создании диаграммы не все данные были выбраны / указаны. Выбор только данных в столбце B дает Excel только часть данных. Постарайтесь сделать график, а не сделать то, что мы хотели. Excel не будет искать за пределами выбранного / указанного диапазона метки или дополнительные данные в целом. Сначала нужно указать на них. Выбранный / указанный диапазон - это все, что Excel будет учитывать при создании диаграммы. Таким образом, выбрав только столбец B, Excel не догадывался, что данные в столбце A должны быть метками данных в нашей диаграмме. Заголовок диаграммы и заголовок оси были добавлены вручную. Это могло бы быть сделано автоматически самим Excel, если бы мы добавили вверху наших данных некоторые заголовки; конечно, мы должны были также выбрать / указать эти заголовки при создании диаграммы. Необходимо также учитывать, установлены ли на графике нужные элементы (например, метки данных). Чтобы это произошло, можно использовать верхнюю правую кнопку плюс рядом с графиком (после выбора), чтобы указать, какие элементы должны быть на графике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...