Сохранение значения COUNTIF после удаления дубликатов (Excel 2007) - PullRequest
0 голосов
/ 28 августа 2010

У меня есть электронная таблица с несколькими повторяющимися строками.Мне нужно, чтобы эти данные были отсортированы в порядке их частоты, поэтому я настроил COUNTIF и отсортировал их.Теперь я хотел бы удалить дублирующиеся строки, но оставьте COUNTIF с тем же значением и добавьте в него Excel, если в будущем в таблицу будут добавлены другие дубликаты.

Как я могу это сделать?

РЕДАКТИРОВАТЬ:

Это может сделать его немного более сложным, но ниже приведен пример данных, как это сейчас (последнее число обозначает количество происшествий с моим COUNTIF):

123 |Да |2,901 |4 243 |5555 |Джон |4
123 |Да |2,919 |4,528 |5555 |Джон |4
123 |Да |2,901 |4 243 |5555 |Джон |4
123 |Да |4 243 |4 128 |5555 |Джон |4
111 |80 |2,919 |4,452 |2222 |Джо |2
111 |80 |11,00 |2,901 |2222 |Джо |2

И вот как мне это нужно:

123 |Да |2,901 |4 243 |5555 |Джон |4
111 |80 |2,919 |4,452 |2222 |Джо |2

Обратите внимание, что, несмотря на то, что некоторые значения не являются точными, первые ячейки (столбец A) одинаковы.

Надеюсь, что это немного яснее.

1 Ответ

1 голос
/ 29 августа 2010

В случае, если кому-то интересно, ниже приведено решение моей проблемы.

Sub Count()

Dim sID As String Dim sOldID As String Dim lLastRow As Long Dim lrow As Long Dim lcount As Long

lLastRow = ActiveSheet.Cells (Rows.Count, 1) .End (xlUp) .Row

lrow = 2 sID = ActiveSheet.Cells (lrow, 1). Значение sOldID = ActiveSheet.Cells (1,1). Значение lcount = 1

Делать пока Лен (sID) <> 0

If sID <> sOldID Then
    ActiveSheet.Cells(lrow - 1, 19).Value = lcount
    sOldID = sID
    lcount = 1
    lrow = lrow + 1
Else
    lcount = lcount + 1
    ActiveSheet.Rows(lrow).Select
    Selection.Delete Shift:=xlUp
End If

sID = ActiveSheet.Cells(lrow, 1).Value

Цикл

ActiveSheet.Cells (lrow - 1, 19). Значение= lcount

End Sub

...