Thắc mắc về Format Axis trong biểu đồ động

Liên hệ QC

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,924
Tôi có 1 biểu đồ gồm 4 series, trong đó 2 series đầu có dữ liệu dạng % và 2 series cuối có dữ liệu dạng number
Tôi dùng 4 checkbox để hiển thị 4 series lên biểu đồ

untitled.JPG


Câu hỏi đặt ra là: Làm sao để khi tôi check vào 1 checkbox tương ứng với series thuộc dạng % thì trục tung cũng hiển thị % và ngược lại, nếu check vào checkbox tương ứng với series thuộc dạng number thì trục tung cũng hiện thị number
Các bạn xem file đính kèm và giúp tôi vấn đề này vớiuntitled.JPG
 

File đính kèm

  • Book1.xls
    33 KB · Đọc: 36
Có lẽ phải có 1 miếng VBA rồi:

PHP:
ActiveSheet.ChartObjects("Chart 7").Activate
    ActiveChart.Axes(xlValue).Select
'Format Number'
    Selection.TickLabels.NumberFormat = "#,##0"
'Format Percentage'
    Selection.TickLabels.NumberFormat = "0%"
 
Có lẽ phải có 1 miếng VBA rồi:

PHP:
ActiveSheet.ChartObjects("Chart 7").Activate
    ActiveChart.Axes(xlValue).Select
'Format Number'
    Selection.TickLabels.NumberFormat = "#,##0"
'Format Percentage'
    Selection.TickLabels.NumberFormat = "0%"
Oh, không sư phụ à! Nếu dùng VBA thì em làm đươc rồi
Ở đây em muốn hỏi có cách nào khác thuần công thức không? Format hoặc dùng 1 vùng tạm gì gì đó ---> Nói chung là bất cứ cách nào, miễn không VBA
 
Thử mấy cách rồi
Cả trong 2007 và 2010 có chức năng nhớ format (general + Link to source) cũng chỉ được dòng 1, 3, và 4, thất bại dòng 2

Nếu chọn 1 trước mới chọn đến 2 thì OK, nếu chọn 2 trước thì tèo

Chọn riêng rẽ 1, 3, 4 cũng OK

Nhưng general thì không có dấu phân cách hàng ngàn, không đẹp.

Đồng thời đã nghĩ một cách khác: Dùng công thức & dùng Add-In Chart Labeler, nhưng kẹt nỗi cái Major Unit không giống nhau

Để nghĩ thêm vụ dùng trục giả xem thế nào.
 
Còn 1 chuyện nữa nhờ sư phụ giúp:
Với Checkbox thứ nhất thì không có vấn đề gì, còn từ checkbox 2 trở đi, mỗi khi check vào, trục hoành hiển thị thiếu chữ... chẳng hạn Tháng 8 mà nó cứ hiện thành chữ Au (thay vì Aug)
Em làm đủ kiểu vẫn không giải quyết được... Bực mình ghê
 
Sao không dùng 2 trục cho khoẻ, 1 trục hàng ngàn, 1 trục phần trăm. Chỉ khổ thân lão chết tiệt thôi.

[video=youtube;6wu8KI7-mCU]http://www.youtube.com/watch?v=6wu8KI7-mCU[/video]
 

File đính kèm

  • CheckboxChart.xls
    57 KB · Đọc: 21
Không biết nguyên nhân là gì mà khi đủ khi thiếu, nhưng định dạng Axis Label nghiêng đi 45 độ hoặc 90 độ thì OK.
Ẹc, làm cái file trên mất mấy tiếng đồng hồ, post lên 1 cái là đi ngủ, không kịp coi câu hỏi phụ.

Mà fie này làm kỹ lắm đó, thử thay số khoảng chia trục xem? Thí dụ serie 1 chia 6 khoảng, serie 3 chia 5 khoảng.
Hoặc thay Max các trục.
Với lại trục cho 2 serie dưới có 2 chọn lựa: Nếu xem đồng thời thì dùng trục giả có giá trị khác (từ 0 đến 1 triệu, serie 4 nằm sát đáy), nếu xem riêng serie 4 thì trục chia theo tỷ lệ khác (từ 0 đến 50 ngàn thôi, serie 4 nằm thoải mái hơn).

Để cải tiến thêm có thể thay Min trục nữa là OK.

Một trục giả đúng chuẩn "chếttiệt" là có thể điều chỉnh Min, Max, và thay đổi Major Unit
 
Lần chỉnh sửa cuối:
Đã cải tiến theo chuẩn chết tiệt. Các ô màu vàng là các ô có thể thay đổi: Min, Max, Major Unit

attachment.php
 

File đính kèm

  • MinMaxtruc.jpg
    MinMaxtruc.jpg
    30.2 KB · Đọc: 121
  • CheckboxChart2.rar
    12.3 KB · Đọc: 51
Lần chỉnh sửa cuối:
Đã cải tiến theo chuẩn chết tiệt. Các ô màu vàng là các ô có thể thay đổi: Min, Max, Major Unit

attachment.php


Hoành tráng quá... cái này thì.. quá sức tưởng tượng của em rồi
Ẹc... Ec... mang về xài, nghiên cứu sau..
(Tuy nhiên vẫn còn bực mình cái thằng "Au" ---> Chả hiểu cái quái quỷ gì...)
 
Hoành tráng quá... cái này thì.. quá sức tưởng tượng của em rồi
Ẹc... Ec... mang về xài, nghiên cứu sau..
(Tuy nhiên vẫn còn bực mình cái thằng "Au" ---> Chả hiểu cái quái quỷ gì...)

Chỉ là quy đổi mọi giá trị về khoảng giá trị từ 0 đến 1 thôi, 1 triệu cũng thế mà 5000 cũng thế, kể cả % cũng thế:
- Quy Min về 0 và Max về 1 (Min bao nhiêu, Max bao nhiêu cũng vậy), mục đích là cho đường biểu diễn nằm gọn vào cùng 1 chỗ.
- Dùng 1 trục duy nhất và fix Scale 0, 1
- Dùng trục giả với tính toán tỷ lệ thích hợp
- Tính giá trị label tương ứng
- Dùng Add-in Chart Labeler gán giá trị này cho label trục giả

Kết quả:
- Tăng Min giữ Max: đường biểu diễn giãn chiều cao xuống dưới, mở rộng và dịch chuyển dần xuống trục hoành, cho thấy rõ hơn sự khác biệt giá trị giữa các point.
- Giảm Min giữ Max: đường biểu diễn chạy ra xa khỏi trục hoành và co chiều cao lại, khó thấy sự khác biệt giá trị giữa các point.

- Tăng Max giữ Min: Đường biểu diễn dịch chuyển xuống gần trục hoành, nhưng co lại, khó thấy sự khác biệt giá trị giữa các point.
- Giảm Max giữ Min: đường biểu diễn chạy ra xa khỏi trục hoành, nhưng giãn ra.

- Vừa tăng Min vừa giảm Max: Một dạng Zoom in 1 chiều: đường biểu diễn giãn ra theo chiều đứng ra cả 2 phía trên và dưới
- Vừa tăng Max vừa giảm Min: Một dạng Zoom out 1 chiều: đường biểu diễn co lại theo chiều đứng và gom lại ở giữa chiều đứng.

Mọi việc thay đổi này liên quan đến độ rộng khoảng nhìn thấy (Max - Min) và vị trí Min trên trục.

Toàn công thức cộng trừ nhân chia đơn giản.
 
Lần chỉnh sửa cuối:
Minh hoạ việc thay đổi Min Max trục dẫn đến dịch chuyển hoặc Zoom đường biểu diễn theo chiều đứng.
(Ghi chú: Đã edit bài trên cho chính xác)

[video=youtube;Z59VHSaL3Sw]http://www.youtube.com/watch?v=Z59VHSaL3Sw[/video]
 

File đính kèm

  • CheckboxChart3.rar
    20.7 KB · Đọc: 18
Lần chỉnh sửa cuối:
Tôi có 1 biểu đồ gồm 4 series, trong đó 2 series đầu có dữ liệu dạng % và 2 series cuối có dữ liệu dạng number
Tôi dùng 4 checkbox để hiển thị 4 series lên biểu đồ

View attachment 72742


Câu hỏi đặt ra là: Làm sao để khi tôi check vào 1 checkbox tương ứng với series thuộc dạng % thì trục tung cũng hiển thị % và ngược lại, nếu check vào checkbox tương ứng với series thuộc dạng number thì trục tung cũng hiện thị number
Các bạn xem file đính kèm và giúp tôi vấn đề này với

Em không nhớ trong EX 2007 có khác gì với các bản thấp hơn trong vấn đề này không.
Em làm rất đơn giản với cách tùy biến một chút với "name" =IF(Production!$B$35,Production!$D$11:$O$11,IF(Pro duction!$B$36,Production!$D$18:$O$18,0))
[video=youtube_share;LeR-adIvNNE]http://youtu.be/LeR-adIvNNE[/video]
 

File đính kèm

  • Book1.xls
    29.5 KB · Đọc: 18
Lần chỉnh sửa cuối:
Em không nhớ trong EX 2007 có khác gì với các bản thấp hơn trong vấn đề này không.
Em làm rất đơn giản với cách tùy biến một chút với "name" =IF(Production!$B$35,Production!$D$11:$O$11,IF(Pro duction!$B$36,Production!$D$18:$O$18,0))
Bạn có thể cho file bạn đã làm xong lên đây được không? Ví tôi sửa name như bạn vừa nói, chẳng được gì cả (thử nghiệm trên cả Excel 2003 và Excel 2007)
 
Em đưa file rồi đó, Anh kiểm tra xem
Quên mất là format Axit ->number chọn linked to source
 
Lần chỉnh sửa cuối:
Minh hoạ việc thay đổi Min Max trục dẫn đến dịch chuyển hoặc Zoom đường biểu diễn theo chiều đứng.
(Ghi chú: Đã edit bài trên cho chính xác)

[video=youtube;Z59VHSaL3Sw]http://www.youtube.com/watch?v=Z59VHSaL3Sw[/video]
1536218815747.png
Bác cho e hỏi e chỉnh sửa ngày tháng bên cột time nhưng bên biểu đồ nó ko nhảy. bác chỉ e cách với ah. thank bác
 

File đính kèm

  • Bieu do nhiet do.xls
    315 KB · Đọc: 4
Web KT
Back
Top Bottom