Board logo

標題: [發問] 關於動態範圍定義名稱 [打印本頁]

作者: t76725    時間: 2011-9-2 21:19     標題: 關於動態範圍定義名稱

[attach]7671[/attach][attach]7672[/attach][attach]7673[/attach][attach]7674[/attach][attach]7675[/attach]

我想問的是:有什麼辦法 可以讓我直接在[attach]7672[/attach]貼上我要的值之後 圖形他就會自動出現?
               就可以跳過來源資料在選來選去這個步驟???
               我看過版主說的動態範圍定義名稱但是還是搞不清楚 怎麼使用!可以交交我嗎???
作者: oobird    時間: 2011-9-3 09:59

http://forum.twbts.com/thread-1405-1-1.html
Hsieh版主的第一個教學題就是講這個
作者: infoverdad    時間: 2011-9-3 10:05

回復 1# t76725


我試了一下只發現一個方法,不過來源資料會將我在【資料範圍】所填入的自訂名稱(例:test!data)自動轉為位址型式的範圍(例:=test!$A$1:$G$18)
作法如下:
假設:原始資料範圍的左上角在工作表"test"的A1, 且原先已有圖表
情況1.未來若僅新增列資料
將原始資料範圍改為清單(資料=>清單=>建立清單) => 則未來若有新增列資料,會自動更新圖表
[attach]7677[/attach]

情況2. 未來若會新增欄資料,則須如下做:
1. 以 插入=> 名稱 => 定義將原始資料範圍設為動態名稱data=OFFSET(test!$A$1,,,COUNTA(test!$A:$A),COUNTA(test!$1:$1))
[attach]7678[/attach]

2. 圖表=>來源資料=>在【資料範圍】填入=test!data =>確定
使用時機:每當有新增欄資料,須重作步驟2
[attach]7679[/attach]
作者: t76725    時間: 2011-9-4 20:52

回復 3# infoverdad


    努力研究中 但是一只卡在圖表=>來源資料=>在【資料範圍】填入=test!data =>確定
   按了三四個小時 還是摸不出來..
作者: t76725    時間: 2011-9-4 21:14

回復 4# t76725
作者: infoverdad    時間: 2011-9-4 22:47

回復 5# t76725


    沒您的資料檔,很難猜測您是哪兒卡到了!! 請問有先定義名稱嗎?
作者: t76725    時間: 2011-9-4 22:54

回復 6# infoverdad
我把檔案傳上去 你幫我看一下 可以嗎?
作者: infoverdad    時間: 2011-9-4 22:55

回復 7# t76725


    我試試吧!  不過沒看到您的檔?
作者: t76725    時間: 2011-9-4 23:12

回復 7# t76725
作者: t76725    時間: 2011-9-4 23:18

回復 9# t76725

我需要問的是:我在9月1號 新增一筆新的數據,我要把9月1號的數據新增到圖表裡面
                         我的做法是在圖表按右鍵>來源資料>數據>新增>名稱點選9/1日,X值=Sheet1!$M$2:$M$26 Y值=Sheet1!$A$2:$A$26
                         >確定 。 才完成這個圖表。
                         動態範圍這個方式是可以讓我直接貼上日期跟數據就可以省下圖表按右鍵>來源資料>數據>新增>名稱點選9/1日,
                         X值=Sheet1!$M$2:$M$26 Y值=Sheet1!$A$2:$A$26>確定 這個步驟嗎?
作者: infoverdad    時間: 2011-9-5 00:08

回復 10# t76725


    我試了一下, 問題點:
1. A1是空格 請補個標題如"data", 再將游標停在data(即A1) 插入=>名稱=>定義 data  =OFFSET(Sheet1!$A$1,,,COUNTA(Sheet1!$A:$A),COUNTA(Sheet1!$1:$1))
2. 您雖是畫XY散佈圖, 可是X與Y坐標軸恰好相反, 雖用我的方法可以一次將多筆資料設入,可是電腦會自動把您的圖倒過來(如下)

[attach]7724[/attach]
作者: t76725    時間: 2011-9-5 12:43

回復 11# infoverdad


    這問題解決了 但是變成說 我按右鍵>來源資料>數據>新增>名稱點選9/1日,X值=Sheet1!$M$2:$M$26 Y值=Sheet1!$A$2:$A$26
    名稱正確但是X值跟Y值跟我要的方好是相反 所以圖形上全部都變掉了 我也試了好多方式都行不通也!
作者: t76725    時間: 2011-9-5 12:45

回復 12# t76725


    X值=Sheet1!$M$2:$M$26 Y值=Sheet1!$A$2:$A$26
    如果Y值可以是X值=Sheet1!$A$2:$A$26  Y值=Sheet1!$M$2:$M$26
    那這問題就圓滿了
作者: infoverdad    時間: 2011-9-5 13:25

回復 13# t76725


    我所說的第2個問題點正是如此!
作者: infoverdad    時間: 2011-9-5 18:30

本帖最後由 infoverdad 於 2011-9-5 18:31 編輯

回復 14# infoverdad

可能須以VBA來解決了!!
可我的功力不夠,只能做到下面的重畫,代碼及檔案附上,看是否有人可以做到只處理新增某欄資料的部份.
[attach]7731[/attach]
[attach]7732[/attach]
  1. Sub RedrawXYchart()

  2. '編製一個循環分別為每個系列(點)指定數據區域(X,Y坐標)
  3. Dim i As Integer

  4. Dim myRange As Range
  5. Set myRange = Sheet1.UsedRange
  6. myRange.Select

  7. Charts.Add
  8. ActiveChart.ChartType = xlXYScatterSmooth
  9. ActiveChart.SetSourceData Source:=myRange, PlotBy:=xlColumns

  10. For i = 1 To Sheet1.UsedRange.Columns.Count - 1

  11. ActiveChart.SeriesCollection(i).Name = "=Sheet1!R1C" & i + 1
  12. ActiveChart.SeriesCollection(i).XValues = "=Sheet1!R2C" & i + 1 & ":R26C" & i + 1
  13. ActiveChart.SeriesCollection(i).Values = "=Sheet1!R2C1:R26C1"

  14. Next
  15.     ActiveChart.ChartArea.Select
  16.     ActiveChart.HasLegend = True
  17.     ActiveChart.Legend.Select
  18.     Selection.Position = xlBottom

  19. End Sub
複製代碼

作者: t76725    時間: 2011-9-5 22:32

哇! 謝謝妳infoverdad  
今天又研究了一下 我發覺說
這樣好像不太能符合公司的需求
我倒是覺得VBA 比較可以解決這一切
對你的這程式碼 很有興趣
不曉得如果只是很單純的我第一頁PO的那些圖片
VBA是否可以輕而一舉得把它寫出來?
作者: infoverdad    時間: 2011-9-6 00:14

回復 16# t76725


    您可以自行測試吧 只要邏輯是類似的話




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)