Страницы: 1
RSS
Сложности с точечной диаграммой, help, please!
 
Дорогие коллеги!

Убив несколько часов в попытках разобраться, в итоге впал в отчаяние и решил обратиться за советом к общественности.

В файле примера простенькая таблица - 3 столбца: список сотрудников, их потенциал в баллах и их производительность в баллах.
На основании этой таблицы кем-то мне неизвестным (увы - а то бы спросил напрямую) построена диаграмма, где баллы производительности это ось У, баллы потенциала - ось Х, каждому сотруднику соответствует точка в месте пересечения осей Х и У, плюс имеется разбитый на сегменты задник, позволяющий ранжировать сотрудников по группам в зависимости от того, где оказалась точка пересечения.

Вопросов два.

Первый, за который мне очень стыдно. КАК такое сделать??? Все мои попытки повторить успехом не увенчались. При создании точечной диаграммы Excel откладывает на ней отдельно 2 точки для каждого сотрудника, а не одну в месте пересечения Х и У. И как сделать такой разделенный на зоны задник (не считая варианта просто рисунок вставить), тоже не понятно.
Если кто-нибудь сможет рассказать алгоритм, буду очень признателен.

Второй - не уверен, что это вообще возможно. Наши сотрудники HR хотят, чтобы третье значение на оси Х было не 2.33, как сейчас в файле примера, а ровно 2, при этом остальные остались прежними. Существует ли возможность задавать произвольные деления на осях, или только через определенные интервалы?

Заранее благодарю за помощь!
 
  • При построении диаграммы ряды данных добавляйте не выделив всю таблицу, а добавляя каждый ряд отдельно. Работа с диаграммами - Выбрать данные - Элементы легенды (ряды) добавить. Дальше руками выбираете нужную ячейку для соответствующего свойства ряда (откуда брать Имя, Значение X, Значение Y)
  • Параметры осей выставлены вручную. Щелкните по какому нибудь значению на оси, и вам откроется окошко с ее параметрами (там все увидите)
  • Настройка подписи рядов на диаграмме. Щелкните по маркеру нужного ряда - Работа с диаграммами - Макет - Подписи данных - Дополнительные параметры подписей данных...
  • Цитата
    как сделать такой разделенный на зоны задник (не считая варианта просто рисунок вставить)

он именно так и сделан. Формат области построения - Заливка - Рисунок или текстура
  • Цитата
    чтобы третье значение на оси Х было не 2.33, как сейчас в файле примера, а ровно 2, при этом остальные остались прежними

настройками так не сделать (или я не знаю как). Можно наложить сверху Надпись (из автофигур) и в нее вписать 2.00. Подогнав шрифт и прочее под соседние значения

З.Ы. модераторам - не получается уменьшить интервал между пунктами маркированного списка
Изменено: Sanja - 28.06.2016 00:02:26
Согласие есть продукт при полном непротивлении сторон
 
Цитата
dr_soulburner написал:
КАК такое сделать???

1) Строите диаграмму по двум столбцам с цифрами обычным способом.
2) Выделяете ячейки с фамилиями и запускаете этот макрос

Код
Private Sub add_names()
    On Error Resume Next
    Set sel = Selection
    If sel.Rows.Count < 1 Then Exit Sub

    With ActiveSheet.ChartObjects(1).Chart
        For i = 1 To .SeriesCollection(1).Points.Count
            .SeriesCollection(1).Points(i).HasDataLabel = True
            .SeriesCollection(1).Points(i).DataLabel.Caption = sel.Cells(i, 1).Text
        Next
    End With
End Sub


3) щелкаете на ось диаграммы - ПКМ - параметры оси. там увидите
Цитата
Существует ли возможность задавать произвольные деления на осях
4)
Цитата
как сделать такой разделенный на зоны задник (не считая варианта просто рисунок вставить)
в вашем примере это как раз рисунок.
 
Dima S,  тогда уж
Код
.SeriesCollection(1).Points(i).DataLabel.Caption = sel.Cells(i, 1).Offset(, -1).Text
там в подписи рядов нужны не сами данные, а фамилии сотрудников
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
нужны не сами данные, а фамилии сотрудников
Цитата
Dima S написал:
Выделяете ячейки с фамилиями и запускаете этот макрос
)
 
Виноват
Согласие есть продукт при полном непротивлении сторон
 
Для черновой работы можно такой макрос использовать.
Код
Sub Add_Chart()
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
For I = 7 To 15
    With ActiveChart
        .SeriesCollection.NewSeries
        With .SeriesCollection(I - 6)
            .Name = "=Лист1!$B$" & I
            .XValues = "=Лист1!$C$" & I
            .Values = "=Лист1!$D$" & I
            .ApplyDataLabels
            .DataLabels.ShowValue = False
            .DataLabels.ShowSeriesName = True
        End With
        .SetElement (msoElementLegendNone)
    End With
Next
    ActiveChart.Axes(xlValue).MinimumScale = 1
    ActiveChart.Axes(xlValue).MaximumScale = 3
    ActiveChart.Axes(xlValue).MinorUnitIsAuto = True
    ActiveChart.Axes(xlValue).MajorUnit = 0.6666
    ActiveChart.Axes(xlCategory).MinimumScale = 1
    ActiveChart.Axes(xlCategory).MaximumScale = 3
    ActiveChart.Axes(xlCategory).MinorUnitIsAuto = True
    ActiveChart.Axes(xlCategory).MajorUnit = 0.6666
End Sub
Изменено: Sanja - 28.06.2016 00:43:50
Согласие есть продукт при полном непротивлении сторон
 
Спасибо вам большое, неравнодушные люди, что не оставили без ответа!

Ушёл экспериментировать. )
Страницы: 1
Читают тему
Наверх