Series Workshop Online - VBA in Excel 06/06/2026

Thực hành thiết lập tự động hóa các thao tác thủ công trong xử lý dữ liệu và lập báo cáo trong Excel

Cách tự động chia tỷ lệ trục biểu đồ trong Excel

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 

 

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

1 + 1 = ? (Nhập Haii để trả lời đúng)

Bài viết liên quan
Data Analysis Breakthrough Scholarship 2026

Với mong muốn tạo điều kiện cho các bạn trẻ tiếp cận kiến thức bài bản và phát triển tư duy phân tích dữ liệu thực tiễn, Data Analysis Breakthrough Scholarship 2026 chính

Xem thêm
Ưu đãi tháng 05/2026

Chương trình ưu đãi 05/2026 này mang đến ưu đãi kép cho học viên: Giảm ngay 155.000đ trên mức ưu đãi đóng sớm khi học viên đăng ký bất kỳ khóa học nào trong tháng này.

Xem thêm
So sánh ChatGPT vs Gemini vs Claude 2026: Nên chọn AI tool nào?

Ba cái tên ChatGPT, Gemini và Claude xuất hiện ở khắp nơi khi nói về AI, nhưng không cái nào là “tốt nhất tuyệt đối”. Mỗi tool có điểm mạnh khác

Xem thêm
Claude là gì? Tìm hiểu AI assistant của Anthropic và cách dùng 2026

Nếu bạn đã nghe tên ChatGPT nhưng chưa biết Claude là gì, bạn đang bỏ qua một trong những AI assistant mạnh nhất hiện nay, đặc biệt nếu công việc của

Xem thêm