Bài viết: Chiêu thứ 57: Tạo biểu đồ có thể thay đổi theo dữ liệu

Liên hệ QC

kyo

Nguyễn Khắc Duy
Thành viên danh dự
Tham gia
4/6/06
Bài viết
901
Được thích
2,715
Chiêu thứ 57: Tạo biểu đồ có thể thay đổi theo dữ liệu


Nếu bạn sử dụng tên dãy động thay vì tham chiếu tương đối, biểu đồ của bạn sẽ được vẽ lại vào thời điểm mà bạn thêm mới dữ liệu. Để có thể làm rõ vấn đề này, bạn hãy tạo một bảng dữ liệu như hình dưới đây:

chieu57-1.jpg


Nếu bạn vẫn còn thắc mắc về tên dãy động, mời bạn đọc lại chiêu thứ 47: "Tạo dãy có thể mở rộng và thu hẹp” tại đây.

Bạn hãy vào thẻ Formulas -> ở Defined Names, chọn Define Name (với Excel 2003, chọn Insert -> Name -> Define) và tạo một cái tên là NhietDo_Ngay với công thức là =OFFSET($A$1,1,0,COUNTA($A:$A)-1,1). Bạn lưu ý trong công thức có -1 tại COUNTA vì với phép trừ này, bạn sẽ bảo đảm được rằng tiêu đề sẽ không được tính vào.

chieu57-2.jpg


Trên công thức bạn nhìn thấy, cột A đã được tham chiếu cho công thức COUNTA. Sự thật là sẽ tốt hơn nếu bạn chỉ cho tham chiếu một số lượng ô nhỏ phù hợp với dữ liệu của bạn thay vì là tham chiếu cả cột với cả hàng ngàn ô không cần thiết. Tuy vậy, với những phiên bản Excel gần đây thì vấn đề này cũng rất nhỏ mà thôi bởi vì Excel bây giờ đã xử lý cả ngàn ô một cách nhanh chóng hơn rất nhiều.

Tiếp đó, bạn hãy tạo tiếp một cái tên là NhietDo với công thức là =OFFSET($B$2,0,0,COUNTA($B:$B)-1,1).

chieu57-3.jpg


Bây giờ, để tạo một biểu đồ sử dụng những gì bạn vừa làm ở trên, bạn hãy quét chọn A1:B11, chọn thẻ Insert -> ở Charts, chọn Column và chọn biểu đồ đầu tiên (2D Clustered Column Chart).

chieu57-4.jpg


Sau đó, chọn thẻ Design -> ở Data, chọn Select Data -> Ở phần Legend Entries (Series), chọn "Nhiệt độ” -> Edit -> thay đổi ở dòng "Series Values:” là =Sheet1!NhietDo -> OK.

chieu57-5.jpg


Trở về hộp thoại Select Data Source -> chọn "Ngày” -> chọn Edit ở phần Horizontal (Category) Axis Label -> gõ vào =Sheet1!NhietDo_Ngay -> OK -> OK.

chieu57-6.jpg


Với Excel 2003, bạn có thể thêm công thức ở Bước 2 của Chart Wizard tại thẻ Series, dòng "Values:” là =Sheet1!NhietDo và dòng "Category (X) axis labels:” là =Sheet1!NhietDo_Ngay.

Và kết quả của bạn có được sẽ như hình dưới đây:

chieu57-7.jpg


Lưu ý: Ở phần gõ công thức, bạn phải bảo đảm rằng bạn có gõ cả tên của sheet. Bởi vì nếu không, bạn sẽ gặp phải lỗi như thế này:

chieu57-8.jpg


Vậy là bây giờ, mỗi khi bạn thay đổi dữ liệu, biểu đồ của bạn cũng sẽ tự động được cập nhật theo.

chieu57-9.jpg


Vẽ biểu đồ dựa trên 10 dữ liệu gần nhất

Một cách áp dụng khác cho biểu đồ là bạn có thể thiết kế để nó tự động cập nhật dựa trên 10 dữ liệu gần nhất. Bạn cũng làm như những gì đã từng làm ở trên, chỉ khác là, với tên NhietDo_Ngay, bạn thay bằng công thức: =OFFSET($A$1,COUNTA($A:$A)-10,0,10,1) và tên NhietDo, bạn thay bằng công thức: =OFFSET(Sheet1!$A$1,COUNTA(Sheet1!$A:$A)-10,1,10,1)

Nếu bạn muốn thay đổi con số 10 bằng một con số khác, chẳng hạn như 20 dữ liệu gần nhất chẳng hạn, bạn hãy lưu ý đến số 10 trên công thức (đã được tô đậm) và thay bằng con số bạn muốn.

Một số bài viết có liên quan:
1/ Chiêu thứ 56: Hai biểu đồ trong một biểu đồ hình bánh
2/ Chiêu thứ 55: Cắt rời một "miếng” từ một "chiếc bánh đồ thị” (Pie Chart)

3/ Chiêu thứ 54: Sử dụng PivotTable với dữ liệu từ một workbook khác
4/ Chiêu thứ 53: Di chuyển dòng Grand Total của PivotTable
5/ Chiêu thứ 52: Tự động tạo PivotTable
6/ Chiêu thứ 51: Chia sẻ PivotTable nhưng không chia sẻ cấu trúc dữ liệu của nó
7/ Chiêu thứ 49: Nhận biết tên của dãy trong worksheet
8/ Chiêu thứ 48: Sử dụng dãy động cách linh hoạt nhất
9/ Chiêu thứ 47: Tạo dãy có thể mở rộng và thu hẹp
10/ Chiêu thứ 46: Sử dụng tên để tạo hàm tự tạo

http://www.giaiphapexcel.com/vbb/content.php?437
 
Upvote 0
Web KT
Back
Top Bottom