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
Học và ứng dụng trí tuệ nhân tạo (AI) cho người mới trong năm 2025

Hướng dẫn chi tiết cho người mới bắt đầu học và ứng dụng trí tuệ nhân tạo AI, từ nền tảng học miễn phí đến công cụ AI không cần code.  

Xem thêm
[ƯU ĐÃI THÁNG 07/2025] Đóng sớm tháng Bảy – Giá hời hết sảy

Chào hè tháng 07, UniTrain mang đến ưu đãi kép cho học viên: Giảm ngay 177.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. Khóa

Xem thêm
Trực Quan Hóa Chỉ Số Hiệu Suất (KPI) Trong Power BI

Khi cần trình bày một chỉ số quan trọng trong báo cáo và so sánh với mục tiêu đề ra, KPI Visual trong Power BI là công cụ trực quan và

Xem thêm
Xu hướng mới của trí tuệ nhân tạo (AI) trong năm 2025

Cập nhật các xu hướng mới nhất về trí tuệ nhân tạo AI năm 2025 như GPT-5, video AI, giáo dục thông minh và chiến lược AI tại Việt Nam. Trí

Xem thêm