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


0

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

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

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

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


что вы хотите с ними сделать после выбора? Все ячейки в одном столбце или несколько? Одним из обходных путей может быть вставка вспомогательного столбца, в котором вы с помощью формулы проверяете, удовлетворяют ли ваши ячейки критериям, чем вы можете фильтровать для своих ячеек.
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 Извините, в коде обнаружена небольшая ошибка. Должно работать лучше сейчас.
Кристофер Вебер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.