Việc tạo biểu đồ trong Excel vô cùng đơn giản, nhưng làm cách nào để phân chia tỷ lệ trục X và Y  cân xứng và đẹp mắt thì đang là vấn đề của không ít người dùng Excel. Trong bài viết này, UniTrain sẽ hướng dẫn bạn hai cách tự động để chia tỷ lệ trục biểu đồ Excel:

1. Sử dụng tính năng Format Axis trong Excel

2. Chạy mã VBA Excel

1. Sử dụng tính năng định dạng trục để thay đổi tỷ lệ trục biểu đồ trong Excel

Để tự động thay đổi trục biểu đồ bằng cách sử dụng tính năng Format Axis trong Excel, hãy cùng thao tác các bước dưới đây:

Bước 1: Tạo dữ liệu cho trục X và Y (như hình dưới).

Dataset for X and Y axis

Bước 2: Chèn biểu đồ cột 2-D bằng cách chọn ô B4 > Insert > chọn biểu tượng biểu đồ và chèn biểu đồ cột (như hình dưới).

Process of generating Bar Chart

Sau đó, biểu đồ cột sẽ hiển thị như hình dưới:

The Bar Chart

Bước 3: Nhấp chuột phải và chọn Format Axis

Selecting "Format Axis" from Bar Chart

Sau đó, chọn Axis option > Units > thay đổi thành 3000

change major unit using Axis Options feature to set chart axis scale

Bạn sẽ thấy Maximum Bounds sẽ tự động thay đổi thành từ 20000 thành 21000 và đơn vị của trục Y thay đổi từ 2000 thành 3000 như hình dưới:

The value scale of Y-axis changed automatically

Tuy nhiên, đối với trục X, người dùng không thể thay đổi tỷ lệ vì đang sử dụng văn bản thay vì giá trị. Đó là lý do tại sao người dùng giữ nguyên dữ liệu ngang của biểu đồ. Bạn nhấp chuột phải > chọn Format Axis > chọn Automatically select based on data trong mục Axis TypeAutomatic trong mục Vertical axis crosses.

Format Axis option on X-axis

2. Chạy mã VBA Excel để tự động thay đổi tỷ lệ trục biểu đồ

Cách thao tác:

Bước 1: Chọn Developer > Visual Basic.

selecting visual basic

Khi cửa sổ Microsoft Visual Basic for Applications hiển thị, bạn chọn Insert > Module.

Selection of module

Bước 2: Chèn mã dưới đây vào Module.

Function ChartAxisScale(sheetName As String, chartName As String, MinOrMax As String, _
ValueOrCategory As String, PrimaryOrSecondary As String, Value As Variant)
Dim chart As chart
Dim text As String
'Set the function to control the chart
Set chart = Application.Caller.Parent.Parent.Sheets(sheetName) _
.ChartObjects(chartName).chart
'Set Primary axis Value
If (ValueOrCategory = "Value" Or ValueOrCategory = "Y") _
And PrimaryOrSecondary = "Primary" Then
With chart.Axes(xlValue, xlPrimary)
If IsNumeric(Value) = True Then
If MinOrMax = "Max" Then .MaximumScale = Value
If MinOrMax = "Min" Then .MinimumScale = Value
Else
If MinOrMax = "Max" Then .MaximumScaleIsAuto = True
If MinOrMax = "Min" Then .MinimumScaleIsAuto = True
End If
End With
End If
'Set Primary axis Category
If (ValueOrCategory = "Category" Or ValueOrCategory = "X") _
And PrimaryOrSecondary = "Primary" Then
With chart.Axes(xlCategory, xlPrimary)
If IsNumeric(Value) = True Then
If MinOrMax = "Max" Then .MaximumScale = Value
If MinOrMax = "Min" Then .MinimumScale = Value
Else
If MinOrMax = "Max" Then .MaximumScaleIsAuto = True
If MinOrMax = "Min" Then .MinimumScaleIsAuto = True
End If
End With
End If
'Set secondary axis value
If (ValueOrCategory = "Value" Or ValueOrCategory = "Y") _
And PrimaryOrSecondary = "Secondary" Then
With chart.Axes(xlValue, xlSecondary)
If IsNumeric(Value) = True Then
If MinOrMax = "Max" Then .MaximumScale = Value
If MinOrMax = "Min" Then .MinimumScale = Value
Else
If MinOrMax = "Max" Then .MaximumScaleIsAuto = True
If MinOrMax = "Min" Then .MinimumScaleIsAuto = True
End If
End With
End If
'Set secondary axis category
If (ValueOrCategory = "Category" Or ValueOrCategory = "X") _
And PrimaryOrSecondary = "Secondary" Then
With chart.Axes(xlCategory, xlSecondary)
If IsNumeric(Value) = True Then
If MinOrMax = "Max" Then .MaximumScale = Value
If MinOrMax = "Min" Then .MinimumScale = Value
Else
If MinOrMax = "Max" Then .MaximumScaleIsAuto = True
If MinOrMax = "Min" Then .MinimumScaleIsAuto = True
End If
End With
End If
If IsNumeric(Value) Then text = Value Else text = "Auto"
ChartAxisScale = ValueOrCategory & " " & PrimaryOrSecondary & " " _
& MinOrMax & ": " & text
End Function
Sub Axis_Scale()
End Sub

Entering VBA code into the box

Sau đó, chọn Run > Run Sub/UserForm.

Run the VBA code

Sau khi chạy mã VBA, bạn có thể tạo user-defined function. Sau đó, quay lại trang tính Excel, chọn ô B20 và nhập:

=ChartAxisScale(“Sheet1″,”Chart 2″,”Max”,”Value”,”Primary”,C19)

Entering user defined function to change chart axis scale

Xem thêm

Khóa học Excel for Analysts

Khóa học Ứng dụng VBA trong Excel

Cách tra dữ liệu trên tab Excel

Cách kiểm tra phạm vi tên bằng Excel VBA

[Tải miễn phí] Excel Shortcuts for Win and Mac 

 

Tags