[identity profile] silver-sviter.livejournal.com posting in [community profile] useful_faq
Как посчитать в Excel накопленное количество значений?

Например, есть таблица
1
1
2
3
3
3

Т.е. две единицы, одна двойка и три тройки. Надо в результате получить таблицу вида: 

2
3
6

Спасибо! 

UPD. Дошло. Плохо работать без выходных.

Date: 2011-03-05 06:20 pm (UTC)
From: [identity profile] homa.livejournal.com
Чего 2, чего 3, чего 6? Как формируются эти числа?

Date: 2011-03-07 08:39 pm (UTC)
From: [identity profile] olegmakarov.livejournal.com
Ох уж эти мне программеры... макросы пишут ))))

B6 - это ячейка с первой "a"


=СЧЁТЕСЛИ(B6:B15;"a")
=СЧЁТЕСЛИ(B6:B15;"b")
=СЧЁТЕСЛИ(B6:B15;"c")
дальше сами разберётесь?

Date: 2011-03-05 07:13 pm (UTC)
From: [identity profile] homa.livejournal.com
А мне самому стало интересно, даже макрос написал.
Sub Макрос1()
    'исходные данные находятся в столбце A на Листе1, начиная с 1 строки
    Range("A:A").Copy Destination:=Worksheets("Лист2").Range("A1")
    
    With Worksheets("Лист2").Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("A:A")
        .SetRange Range("A:A")
        .Apply
    End With
    
    CurKey = ""
    iCurKey = 0
    
    i = 1
    
    Do
        Key = Worksheets("Лист2").Range("A" + CStr(i) + ":A" + CStr(i)).Value
        
        If Key <> CurKey Then
            If iCurKey > 0 Then
                Range("B" + CStr(iCurKey)).Value = CurKey
                Range("C" + CStr(iCurKey)).Value = CStr(i - 1)
            End If
            
            CurKey = Key
            iCurKey = iCurKey + 1
        End If
            
        i = i + 1
    Loop Until Key = ""
End Sub

Date: 2011-03-05 09:47 pm (UTC)
From: [identity profile] sir-i-alexis.livejournal.com
Многословно =)

Sub mac1()
'читаем из первого столбца, пишем во второй.
    CountA = 1
    CountB = 1
    Value = Range("A1").Value
    Do
        CountA = CountA + 1
        If Range("A" & CountA).Value <> Value Then
            Value = Range("A" & CountA).Value
            Range("B" & CountB).Value = CountA - 1
            CountB = CountB + 1
        End If
    Loop Until Value = ""
End Sub

Date: 2011-03-05 10:00 pm (UTC)
From: [identity profile] homa.livejournal.com
Строго говоря, основная часть с точностью до незначащих мелочей совпадает с моей. А предварительная часть — это сортировка на другом листе, чтобы не портить исходный лист. Плюс я макросами на VBA не занимался никогда, да и на Ваське лет пять уже не писал.