%20%D0%B4%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D1%8B%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%20%D0%B2%20Excel%2C%20%D0%A2%D0%9E%D0%9B%D0%AC%D0%9A%D0%9E%20%D0%95%D0%A1%D0%9B%D0%98%20%D0%B8%D1%85%204%20%D0%B8%D0%BB%D0%B8%20%D0%B1%D0%BE%D0%BB%D0%B5%D0%B5%20%D1%8D%D0%BA%D0%B7%D0%B5%D0%BC%D0%BF%D0%BB%D1%8F%D1%80%D0%BE%D0%B2%3F.png)
У меня есть документ Excel, в котором более 300 строк данных. Столбец A отсортирован по именам сотрудников, и мне нужно выделить только тех людей, которые имеютменьше 4вхождения в пределах листа.
Есть ли способ удалить все имена с 4 или более? Или выделить все имена с 4 или более?
Спасибо!
решение1
Допустим, мы начнем с:
и запускаем этот короткий макрос:
Sub RowKiller101()
Dim rKill As Range, r As Range, wf As WorksheetFunction
Dim rBig As Range
Set rBig = Intersect(Range("A:A"), ActiveSheet.UsedRange)
Set rKill = Nothing
Set wf = Application.WorksheetFunction
For Each r In rBig
If wf.CountIf(rBig, r.Value) > 3 Then
If rKill Is Nothing Then
Set rKill = r
Else
Set rKill = Union(rKill, r)
End If
End If
Next r
If rKill Is Nothing Then Exit Sub
rKill.EntireRow.Delete
End Sub
Мы получим:
решение2
Для решения без использования VBA:
Введите формулу, как =countif($A:$A,$A1)
в столбце B, и ваша таблица будет выглядеть примерно так:
A B
1 Joe 3
2 Joe 3
3 Joe 3
4 Amy 5
5 Amy 5
6 Amy 5
7 Amy 5
8 Amy 5
Затем выберите A1
, перейдите в Условное форматирование (пользовательское правило) и введите формулу =B1>=4
. Затем примените правило к нужному вам объему в столбце A. Отсутствие привязки $
означает, что правило будет перемещаться вместе с примененной ячейкой.
решение3
Студент Гэри: Решение VBA для удаления всех элементов, кроме <4.
Селвит: Формула решения для фильтрации только элементов <4.
Этот ответ: Решение условного форматирования для выделения только элементов <4.
(Вы также можете сослаться наСтатья о поддержке офисаоб использовании формул в условном форматировании, которое, как выясняется, использует COUNTIF
в качестве примера.)
- Выберите диапазон данных (в примере я выбрал все столбцы)
A:A
- На
Home
ленте нажмитеConditional Formatting
и затемNew Rule...
- Выбирать
Use a formula to determine which cells to format
- Введите формулу типа
=COUNTIF($A:$A,$A1)<4
A. Измените$A:$A
на любой диапазон, в котором вы ищете дубликаты. Например, это может быть$G$12:$G$48
.$
Важно, потому что это делает егоабсолютная ссылкакоторый не меняется от ячейки к ячейке.
B. Измените$A1
напервыйЯчейка в выбранном диапазоне. Обратите внимание, что здесь только одна$
, потому что мы хотим, чтобы столбец был абсолютным. Мы хотим, чтобы номер строки (1
в данном случае) был относительным к текущей ячейке.
C. Результат таков, что условное форматирование дляA1
будет использовать формулу=COUNTIF($A:$A,$A1)<4
, но дляA2
будет использовать формулу=COUNTIF($A:$A,$A2)<4
. Вот что делает для вас управление абсолютными и относительными ссылками ($
или нет$
). - Нажмите
Format...
кнопку и выберите любое форматирование, которое вам нравится. В этом случае я выбрал выделение ячеек желтым фоном. - Нажмите
OK
, чтобы закрыть окно условного форматирования и увидеть результаты.
Обратите внимание, что из-за того, как я это сделал, все пустые строки также выделены. Если это не работает для вас, есть несколько способов исправить это. Я рекомендую вариант 1, потому что это простой способ следить за своим списком по мере его роста.
- Измените формулу, которую вы используете в шаге 4, на
=AND($A1<>"",COUNTIF($A:$A,$A1)<4)
- Вместо того чтобы выбирать все столбцы
A:A
, как я сделал на шаге 1, выберите только диапазон данных. - После создания условного форматирования вернитесь в
Conditional Formatting Rules Manager
(Главная лента > Условное форматирование > Управление правилами...) и измените полеApplies to
с=$A:$A
на что-то конкретное, например=$A$1:$A$19
. Это тот же результат, что и при использовании варианта 2, но он позволяет вам изменить его постфактум.