Bunu her zaman vba ile yapıyorum. Ofis 95'ten beri aynı yöntemi kullandığımdan eminim, sütun yerleştirme için küçük değişiklikler yapıldı. Değişkenleri tanımlamazsanız, daha az satırla yapılabilir. Grubunuzu tanımlamanız gereken birçok şey veya daha fazla şeyden geçmeniz durumunda, bu daha hızlı yapılabilir.
Bir 'grubun' 2-5 hücreye dayandığı durumlarla karşılaştım. Bu örnek yalnızca bir sütuna bakar, ancak herhangi biri onunla oynamak için zaman ayırırsa kolayca genişletilebilir.
Bu, 3 sütun olduğunu varsayar ve group_values sütununa göre sıralamanız gerekir. Makroyu çalıştırmadan önce, group_values sütununda karşılaştırmak istediğiniz ilk hücreyi seçin.
'group_values, some_number, empty_columnToHoldSubtotals
'(burada işler gider)
'çerez 1 boş
'çerez 3 boş
'kek 4 boş
'şapka 0 boş
'şapka 3 boş
' ...
'Dur
Alt toplam ()
'iki karakter dizisi ve alt toplam sayıcı
Dim thisOne, thatOne As String
Dim subCount İkili Olarak
'değerleri tohumla
thisOne = ActiveCell.Value
thatOne = ActiveCell.Offset (1, 0)
subCount = 0
'durma değerine ulaşana kadar devam edecek bir döngü kur
İken (ActiveCell.Value <> "dur")
'bir hücre değerini altındaki hücreyle karşılaştırır.
Eğer (thisOne = thatOne) O zaman
'Hücreler eşitse, satır sayımı alt hesaba eklenir.
subCount = subCount + ActiveCell.Offset (0, 1) .Değerlendirme
Başka
'Eğer hücreler eşit değilse, alt sayı yazılır ve alt toplamı sıfırlar.
ActiveCell.Offset (0, 2) .Value = ActiveCell.Offset (0, 1) .Value + subCount
subCount = 0
Bittiğinde
'sonraki hücreyi seç
ActiveCell.Offset (1, 0) .Seçin
'Aktif hücrenin değerlerini ve altındaki değerleri değişkenlere ata.'
thisOne = ActiveCell.Value
thatOne = ActiveCell.Offset (1, 0)
Wend
Son Alt