Microsoft Excel, как выбрать все ячейки, которые соответствуют определенному условию (т.е. больше, чем значение)

0

Я использую Microsoft Excel 2013 и хочу выбрать все ячейки, которые содержат значение, превышающее значение. Как мне это сделать ?

Я пытался использовать Перейти к спец., Но кажется, что он может выбирать только те ячейки, которые имеют определенные свойства, такие как пробелы, формулы или видимые ячейки.

Я также нашел расширение Microsoft Excel, такое как Ablebits, но за него нужно платить, и я предпочитаю функцию по умолчанию из excel.

Заранее спасибо.

Charas
источник
что вы хотите с ними сделать после выбора? Все ячейки в одном столбце или несколько? Одним из обходных путей может быть вставка вспомогательного столбца, в котором вы с помощью формулы проверяете, удовлетворяют ли ваши ячейки критериям, чем вы можете фильтровать для своих ячеек.
Máté Juhász
данные идут для более 30 столбцов, а для каждого столбца - около 100 строк, я собираюсь удалить все ячейки, которые содержат значение, превышающее определенное значение, все данные являются числами
Charas
Просто для ясности. Когда вы говорите «удалить», вы имеете в виду удалить его и сдвинуть все ячейки под ним на один шаг вверх .Delete Shift:=xlUpили сдвинуть строку влево .Delete Shift:=xlToLeft? Или вы просто хотите оставить пустую ячейку?
Кристофер Вебер
Удалите и сдвиньте все ячейки вверх
Charas
Вы можете использовать фильтр, затем применить фильтр Больше, чем значение, вы увидите ненужные ячейки, выберите ячейки и Перейти к специальным и использовать только видимый, он выберет тот, который вы хотите удалить, затем удалите строки, если вы хотите удалить всю строку
Сэм

Ответы:

1

Один из способов - просмотреть все данные с помощью небольшого макроса.

Sub clean()
Dim r As Range, i As Integer
Set r = Range("A1:AE150")
Application.ScreenUpdating = False
Do
    i = 0
    For Each cell In r
        If cell.Value >150000 Then
            cell.Delete Shift:=xlUp
            i = i + 1
        End If
    Next cell
Loop While i > 0
Application.ScreenUpdating = True
End Sub

Предупреждение
Действия макроса не могут быть отменены. Всегда сохраняйте перед запуском, чтобы предотвратить потерю данных.

Обратите внимание, что этот макрос потерпит неудачу, если будут задействованы таблицы

Кристофер Вебер
источник
Итак, я создал новый макрос, отредактировал макрос и добавил ваши коды, удалил «Или любой другой диапазон, который вы хотите, измените r на Range (« A2: AE150 »), изменил ячейку. Значение> 150000, затем я запустил макрос, Я удалил некоторые ячейки, которые содержат значение> 150000, но все еще есть много ячеек, которые имеют значение> 150000 и не удалены, я что-то упустил?
Charas
@ Charas Вы правы. Это смущает смещение клеток. Как говорят, A5 очищен от высокого значения, новое высокое значение может быть смещено в A5. И не проверяется снова. Запускать его несколько раз - это один из способов исправить это. Или написать лучший код. (извините за это)
Кристофер Вебер
Да, я думаю, потому что макрос перемещается влево, что, когда ячейка удаляется и перемещается вверх, ячейка, которая перемещается вверх, больше не проверяется. Как удалить клетки, не перемещая их вверх? это просто ячейка. Удаляется тогда? Затем я вручную удалю все пробелы после запуска макроса.
Charas
@Charas Поскольку вы не можете технически удалить ячейки, не перемещая их, вы можете установить значение в ничего, изменив cell.Delete Shift:=clUpна cell.Value = "". Я также обновил код, чтобы повторить процесс, пока не будет сделано. Поэтому попробуйте любое из этих решений.
Кристофер Вебер
@Charas Извините, в коде обнаружена небольшая ошибка. Должно работать лучше сейчас.
Кристофер Вебер