كيف يمكنني إنشاء تخطيط Excel التي تشد بيانات من أوراق متعددة؟ [مغلق]
-
03-07-2019 - |
سؤال
ولدي أرقام المبيعات الشهرية المخزنة في ورقة منفصلة. وأود أن خلق قطعة المبيعات لمنتجات متعددة في الشهر. وسيمثل كل منتج في خط بلون مختلف على نفس الرسم البياني مع كل شهر يعمل على طول محور س.
ما هو أفضل وسيلة لإنشاء تخطيط سطر واحد أن يسحب من الخلايا النسبية نفسها على أوراق متعددة؟
المحلول
استخدم معالج التخطيطات.
في الخطوة 2 من 4، هناك علامة التبويب المسمى "السلسلة". هناك 3 مجالات ومربع قائمة على علامة التبويب هذه. يظهر مربع القائمة سلسلة المختلفة التي يتم بما في ذلك بالفعل على الرسم البياني. كل سلسلة لديه كل من حقل "الاسم" وحقل "القيم" التي هي محددة لهذه السلسلة. حقل النهائي هو حقل "الفئة (X) تسميات المحور"، وهو أمر شائع في كل مجموعة.
وانقر على زر "إضافة" أسفل مربع القائمة. وهذا إضافة سلسلة فارغة إلى مربع القائمة الخاصة بك. لاحظ أن قيم "الاسم" و "القيم" التغيير عند تسليط الضوء على سلسلة في مربع القائمة.
حدد سلسلة الجديدة.
وهناك رمز في كل حقل على الجانب الأيمن. هذا الرمز يسمح لك بتحديد الخلايا في المصنف لسحب البيانات من. عند النقر فوقه، معالج يخفي مؤقتا نفسه (باستثناء الحقل الذي يعملون في) يسمح لك بالتفاعل مع المصنف.
وحدد الورقة المناسبة في المصنف ومن ثم تحديد الحقول مع البيانات التي تريد أن تظهر في الرسم البياني. الزر على يمين حقل يمكن النقر على إظهار المعالج.
وعلى أمل أن يساعد.
وتحرير: وينطبق ما سبق إلى عام 2003 وقبل ذلك. لعام 2007، وعندما يتم تحديد الرسم البياني، يجب أن تكون قادرة على القيام بعمل مماثل باستخدام الخيار "تحديد البيانات" على "تصميم" علامة التبويب من الشريط. وهذا يفتح مربع الحوار إدراج سلسلة للتخطيط. يمكنك تحديد سلسلة تماما كما يمكن في Excel 2003، ولكن يجب استخدام وأزرار "إضافة" "تحرير" لتحديد سلسلة مخصصة.
نصائح أخرى
إليك بعض التعليمات البرمجية من اكسل 2010 التي قد تعمل. أنه يحتوي على تفاصيل زوجين (مثل تصفية الشخصيات سيئة ترميز من الألقاب) ولكن تم تصميمه لإنشاء عدة رسوم بيانية متعددة سلسلة من البيانات 4-الأبعاد جود كل البيانات المطلقة والقائمة على النسبة المئوية. تعديله كيف تحب:
Sub createAllGraphs()
Const chartWidth As Integer = 260
Const chartHeight As Integer = 200
If Sheets.Count = 1 Then
Sheets.Add , Sheets(1)
Sheets(2).Name = "AllCharts"
ElseIf Sheets("AllCharts").ChartObjects.Count > 0 Then
Sheets("AllCharts").ChartObjects.Delete
End If
Dim c As Variant
Dim c2 As Variant
Dim cs As Object
Set cs = Sheets("AllCharts")
Dim s As Object
Set s = Sheets(1)
Dim i As Integer
Dim chartX As Integer
Dim chartY As Integer
Dim r As Integer
r = 2
Dim curA As String
curA = s.Range("A" & r)
Dim curB As String
Dim curC As String
Dim startR As Integer
startR = 2
Dim lastTime As Boolean
lastTime = False
Do While s.Range("A" & r) <> ""
If curC <> s.Range("C" & r) Then
If r <> 2 Then
seriesAdd:
c.SeriesCollection.Add s.Range("D" & startR & ":E" & (r - 1)), , False, True
c.SeriesCollection(c.SeriesCollection.Count).Name = Replace(s.Range("C" & startR), "Â", "")
c.SeriesCollection(c.SeriesCollection.Count).XValues = "='" & s.Name & "'!$D$" & startR & ":$D$" & (r - 1)
c.SeriesCollection(c.SeriesCollection.Count).Values = "='" & s.Name & "'!$E$" & startR & ":$E$" & (r - 1)
c.SeriesCollection(c.SeriesCollection.Count).HasErrorBars = True
c.SeriesCollection(c.SeriesCollection.Count).ErrorBars.Select
c.SeriesCollection(c.SeriesCollection.Count).ErrorBar Direction:=xlY, Include:=xlBoth, Type:=xlCustom, Amount:="='" & s.Name & "'!$F$" & startR & ":$F$" & (r - 1), minusvalues:="='" & s.Name & "'!$F$" & startR & ":$F$" & (r - 1)
c.SeriesCollection(c.SeriesCollection.Count).ErrorBar Direction:=xlX, Include:=xlBoth, Type:=xlFixedValue, Amount:=0
c2.SeriesCollection.Add s.Range("D" & startR & ":D" & (r - 1) & ",G" & startR & ":G" & (r - 1)), , False, True
c2.SeriesCollection(c2.SeriesCollection.Count).Name = Replace(s.Range("C" & startR), "Â", "")
c2.SeriesCollection(c2.SeriesCollection.Count).XValues = "='" & s.Name & "'!$D$" & startR & ":$D$" & (r - 1)
c2.SeriesCollection(c2.SeriesCollection.Count).Values = "='" & s.Name & "'!$G$" & startR & ":$G$" & (r - 1)
c2.SeriesCollection(c2.SeriesCollection.Count).HasErrorBars = True
c2.SeriesCollection(c2.SeriesCollection.Count).ErrorBars.Select
c2.SeriesCollection(c2.SeriesCollection.Count).ErrorBar Direction:=xlY, Include:=xlBoth, Type:=xlCustom, Amount:="='" & s.Name & "'!$H$" & startR & ":$H$" & (r - 1), minusvalues:="='" & s.Name & "'!$H$" & startR & ":$H$" & (r - 1)
c2.SeriesCollection(c2.SeriesCollection.Count).ErrorBar Direction:=xlX, Include:=xlBoth, Type:=xlFixedValue, Amount:=0
If lastTime = True Then GoTo postLoop
End If
If curB <> s.Range("B" & r).Value Then
If curA <> s.Range("A" & r).Value Then
chartX = chartX + chartWidth * 2
chartY = 0
curA = s.Range("A" & r)
End If
Set c = cs.ChartObjects.Add(chartX, chartY, chartWidth, chartHeight)
Set c = c.Chart
c.ChartWizard , xlXYScatterSmooth, , , , , True, Replace(s.Range("B" & r), "Â", "") & " " & s.Range("A" & r), s.Range("D1"), s.Range("E1")
Set c2 = cs.ChartObjects.Add(chartX + chartWidth, chartY, chartWidth, chartHeight)
Set c2 = c2.Chart
c2.ChartWizard , xlXYScatterSmooth, , , , , True, Replace(s.Range("B" & r), "Â", "") & " " & s.Range("A" & r) & " (%)", s.Range("D1"), s.Range("G1")
chartY = chartY + chartHeight
curB = s.Range("B" & r)
curC = s.Range("C" & r)
End If
curC = s.Range("C" & r)
startR = r
End If
If s.Range("A" & r) <> "" Then oneMoreTime = False ' end the loop for real this time
r = r + 1
Loop
lastTime = True
GoTo seriesAdd
postLoop:
cs.Activate
End Sub
وعام 2007 هو أكثر قوة مع الشريط ..: =) لإضافة سلسلة جديدة في الرسم البياني القيام به: حدد الرسم البياني، ثم انقر فوق تصميم في أدوات الرسم البياني على الشريط، على الشريط التصميم، اختر "تحديد البيانات" في المجموعة بيانات، ثم سترى زر لإضافة لإضافة سلسلة جديدة.
والأمل من شأنها أن تساعد.