返回列表 上一主題 發帖

[發問] 請問這種階梯圖有辦法用EXCLE畫出來嗎?

回復 10# maxchou


    可以把你最後的檔案上傳嗎? 我再找空檔想想怎麼幫你,因你目前還無權限下載檔案.

TOP

回復 11# infoverdad


先謝過infoverdad前輩!謝謝!
其實我有許多張這樣的圖要畫,數據也都跟我之前上傳的檔案差不多,只是在於直條的數量不一樣,
有跟上傳的差不多約十個,也有20幾個直條以上的,
之前都是用XY誤差線畫出線條,再用貼圖案的方式完成,
這種方式非常手工,而且耗時,而且後端資料只要一改,X座標寬度就會變,也有可能會因為Y軸的大小而改變順序,
所以才想說是不是可以用EXCEL,我只要輸入數字,圖表便可以自動連動,這樣可以節省手工調整直條時間。
(預期後端資料還要修改好幾次........)

如果infoverdad前輩方便的話,是否可以先以我之前上傳的test.zip為範例,先教教我呢?
以上報告,再次表達我誠摯的謝意!

TOP

回復 12# maxchou


我用的方式還是太累要一個個設(我試的時候很耗時間),可能無法幫到你.
試試參考下列網址吧!
"XY圖本可選資料範圍就可以完成,但A欄資料會變成X軸資料,就算將全部資料轉置(選轉90度)依然如此(2003版),因此每組XY需一組一組設定。如圖形需常增加資料組數,可以用巨集方式處理,先錄製一段巨集,再增加迴圈指令就可以自動增加資料,不用每次由頭重設..."
[轉貼] from http://www.dolamo.com/problem/software/1/27340

TOP

回復 13# infoverdad


謝謝infoverdad前輩,我會到您提供的網址研究看看,
但看起來有點困難度........
若有所突破,在回來報告!

TOP

本帖最後由 infoverdad 於 2011-9-6 00:11 編輯

回復 4# maxchou


用您的資料改了這個巨集,請試試吧!
(不過資料要先整理過 如附件) Draw-stair.rar (50.49 KB)
畫出之圖形:
  1. Sub DrawRangeCol()

  2.     Dim myRange As Range
  3.     Dim i As Integer

  4.     Set myRange = Sheets("test").Range("N1:X102")
  5.    
  6.     Charts.Add
  7.     ActiveChart.ChartType = xlColumnClustered
  8.     ActiveChart.SetSourceData Source:=myRange, PlotBy:=xlColumns
  9.    
  10.     i = 1
  11.     For i = 1 To myRange.Columns.Count
  12.    
  13.         ActiveChart.SeriesCollection(i).Values = "=test!R2C" & i + 13 & ":R102C" & i + 13
  14.         ActiveChart.SeriesCollection(i).Name = "=test!R1C" & i + 13
  15.    
  16.         ActiveChart.Axes(xlCategory).Select
  17.         ActiveChart.SeriesCollection(i).Select
  18.         With Selection.Border
  19.             .Weight = xlThin
  20.             .LineStyle = xlNone
  21.         End With
  22.         Selection.Shadow = False
  23.         Selection.InvertIfNegative = False
  24.         Selection.Interior.ColorIndex = xlAutomatic
  25.       
  26.     Next
  27.       
  28.     ActiveChart.ChartArea.Select
  29.     ActiveChart.HasLegend = True
  30.     ActiveChart.Legend.Select
  31.     Selection.Position = xlBottom
  32.    
  33.     ActiveChart.PlotArea.Select
  34.     With ActiveChart.ChartGroups(1)
  35.         .Overlap = 100
  36.         .GapWidth = 0
  37.         .HasSeriesLines = False
  38.     End With
  39.    
  40. End Sub
複製代碼

TOP

回復 15# infoverdad

太感謝infoverdad前輩了,這麼幫忙!感激不盡!
不過我還差13分才可以下載附件,有個不請之請,
不知道infoverdad前輩是不是可以把資料調整完的畫面貼上來呢?
我自己先手動調整,試著用巨集畫畫看(因為我還沒有使用巨集畫過圖形)。
不過還是要再次感謝!

TOP

本帖最後由 infoverdad 於 2011-9-6 13:34 編輯

回復 16# maxchou


    我試試,但你的資料有小數點,是最大的麻煩處.

N2 =IF(AND(ROW()>=$K$2,ROW()<=$L$2),$B$2,0)
O2 =IF(AND(ROW()>=$K$3,ROW()<=$L$3),$B$3,0)
...
X2 =IF(AND(ROW()>=$K$12,ROW()<=$L$12),$B$12,0)


TOP

回復 16# maxchou


    你也可以去下面的網址下載一個zip檔入附件(funchart5_brickyard.zip)
funchart5_brickyard.zip (11.05 KB)

http://peltiertech.com/Excel/Charts/Brickyard.html

原理是一樣的 但您可已看看它的解說與實例

TOP

回復 17# infoverdad

謝謝infoverdad前輩這麼費心花時間幫我想這圖形要怎麼畫,真的是非常感謝!!
我大概可以用infoverdad前輩上傳的圖片複製出來一樣的圖形(雖然我不是很懂公式與巨集),
但我想請問infoverdad前輩關於L2-L12這是怎麼決定?是I2+1嗎?
另外所提之小數點問題,是不是就說因為差距小於1,所以無法在N2-X102填入數據?也就畫不出來。
再次感謝!

TOP

本帖最後由 infoverdad 於 2011-9-6 18:48 編輯

回復 19# maxchou


1. L2=K2+J2-1  
2. yes

TOP

        靜思自在 : 改變自己是自救,影響別人是救人。
返回列表 上一主題