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
Mở bao lì xì – Nhận ưu đãi đầu năm 2025

UNITRAIN ƯU ĐÃI THÁNG 1 Bạn đã sẵn sàng nâng cấp kiến thức, phát triển kỹ năng và bắt đầu hành trình chinh phục mục tiêu sự nghiệp trong năm nay

Xem thêm
UniTrain ưu đãi Giáng sinh và chào đón năm mới 2025

NĂM MỚI – KỸ NĂNG MỚI Năm mới là thời điểm lý tưởng để mỗi nhân sự hiện đại lên kế hoạch phát triển bản thân, nâng cấp kỹ năng và

Xem thêm
Những lỗi thiết kế báo cáo Power BI phổ biến bạn nên tránh 

Tạo báo cáo không khó nhưng việc thiết kế báo cáo đẹp và hợp lí lại là một thử thách với người dùng Power BI. Đôi khi trong quá trình làm

Xem thêm
Mẹo và thủ thuật định dạng báo cáo Power BI

Power BI được ưa chuộng và sử dụng rộng rãi trên toàn thế giới vì các biểu đồ trực quan, phân tích đa chiều cùng khả năng tùy chỉnh, định dạng

Xem thêm