Anladım. Verilerimi, tanımlanmış iki dizi ile kurmaya ihtiyaç duymaya başladı; burada, bir seri ilgilenilen grup ve ikincisi de eş gruplar ve ardından koşullu olarak hücreleri benim veri tabanımdaki gruba dayanarak doldurmak zorunda kaldı. Kurulum, aşağıdaki talimatlarda anlaşılması ve ayrıntılı görünmesi için çok zaman aldı, ancak aslında o kadar da kötü değil.
Maviyle vurgulanan her şey bir formül, bu yüzden nasıl yaptım:
- B sütununda, hangi dizinin hangisi olduğunu tanımlamak için bir formül kullandım: = IF (A5 & A; 1 $, "Eşler", "Grup")
- X ve Y değerlerimi girdim (C ve D sütunları).
- Kabarcık ölçümü (E sütunu) seriye göre otomatik olarak ayarlamak için ayarlayın: = IF (A5 = A
- Ondalık basamakları kesmek için F ve G sütunları kullanılır.
- H'den L'ye kadar olan sütunlar, grubun bir eş veya ilgilenilen grup olmasına bağlı olarak gerçek veri dizisi kurulumunu yansıtır.
- X'ler her zaman aynı kalacak, H sütununu orijinal X ekseni değerine bağladım: = C5
- Sütun bir eş grubu ise uygun Y değerini alır: = IF ($ B5 = $ I3, $ D5, NA ())
- J sütunu, akran grubu kabarcık boyutunu ayarlar: = IF (ISNA ($ I5), NA (), $ E5)
- K sütunu ilgilenen gruptaysa uygun Y değerini çeker: = IF ($ B5 = $ K $ 3, $ D5, NA ())
- L sütunu ilgilenilen kabarcık büyüklüğünün grubunu belirler: = IF (ISNA ($ K5), NA (), $ E5)
- M sütunu tüm kabarcık boyutlarını eşit olarak ayarlar ve tüm grupların ve logolarının birlikte gösterildiği son grafik oluşturma için kullanılır.
- Hücreler O4 (= VLOOKUP (A1, Logolar! A: B, 2, FALSE)) ve P4 (= IF (O4 = 1, "grup 1", IF (0 = 2, "grup2", IF (0 = 3, ") grup3 ", IF (O4 = 4," grup4 ")))))) ilgilenilen grup seçildiğinde doğru logoyu tanımlayın ve çekin.
Daha sonra tüm logolarımı / görüntülerimi ayrı bir sekmede ("Logolar") ayarlamak ve bağlamak zorunda kaldım. Oz du Soleil'in "Hücre değerine göre bir resim seç" konulu YouTube videosu, bunun başarılmasında son derece yardımcı oldu. Doğrudan bağlantıyı gönderecek kadar itibarım yok.
Baloncuk çizelgelerimi yarattım ve formatladım, sonra H (X ekseni), I / K (Y ekseni) ve J / L (kabarcık boyutu için Z ekseni) sütunlarını kullanarak her seri için gereken verileri seçtim.
Grup logomun tamamı için sadece bir seriye ihtiyacım vardı çünkü bütün baloncuklar aynı büyüklükte olacaktı. X, Y ve Z eksenleri için sırasıyla C, D ve M sütunlarını kullandım. Daha sonra her grup logosunu kendi baloncuklarına uyguladım.
Kodun kendisi kurulumdan sonra oldukça açık bir şekilde sona erdi:
Dim i As Long
Dim iLastRow As Long
Dim Cells As Range
'This section looks up each group name on the tab and cycles through the loop
Application.ScreenUpdating = False
With ActiveSheet
iLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 4 To iLastRow - 1 'Group names start in A5
'Selects, copies, and pastes the next group name in the list
Sheets("Groups").Select
ActiveSheet.Cells(i + 1, 1).Copy
Range("A1").Select
Selection.PasteSpecial paste:=xlPasteValues
'Selects, copies, and pastes the group logo onto the bubble
ActiveSheet.Shapes.Range(Array("Picture 7")).Select
Selection.CopyPicture xlScreen, xlPicture
ActiveSheet.ChartObjects("Chart 6").Activate
ActiveChart.FullSeriesCollection(2).Select
Selection.paste
'Variables needed for directory and file names
GroupName = Sheets("Groups").Range("A1")
yearmo = Sheets("Groups").Range("A2")
'Will create a new folder for the final images if it doesn't already exist
If Len(Dir("DirPath\" & yearmo, vbDirectory)) = 0 Then
MkDir "DirPath\" & yearmo
End If
'Set up image file names
Dim NewFileName As String
NewFileName = "\" & yearmo & " - " & GroupName & " - X_Y.jpg"
'Selects and saves the bubble chart as a JPG
ActiveChart.ChartArea.Select
ActiveChart.Export "DirPath\" & yearmo & NewFileName
Next i
End With
'After all individual bubble have been created, need to
'set up state file name to generate image with all logos for the state
Dim StateFileName As String
StateFileName = "\" & yearmo & " - STATE - X_Y.jpg"
'Selects and saves the state bubble chart as a JPG
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveChart.Export "DirPath\" & yearmo & StateFileName
Grafikte etiketleri kullanmamaya karar verdim, çünkü dinamik olarak konumlandırmalarını sağlamak çabaya değmezdi. Bunun yerine grafiğin altında bağlantılı metin kutuları oluşturmaya gittim.
Umarım bu başkalarına biraz yardım eder; kesinlikle manuel güncellemelerden büyük bir zaman tasarrufu.