Note: The other languages of the website are Google-translated. Back to English

Как найти и получить значение первой видимой ячейки после фильтрации в Excel?

В некоторых случаях может потребоваться получить значение первой видимой ячейки в отфильтрованном списке. Как этого добиться? Эта статья покажет вам способы ее решения.

Найти и получить значение первой видимой ячейки после фильтрации с помощью формулы массива
Найти и получить значение первой видимой ячейки после фильтрации с помощью VBA


Найти и получить значение первой видимой ячейки после фильтрации с помощью формулы массива

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

1. Выберите пустую ячейку для размещения первого видимого значения, введите в нее формулу ниже, а затем нажмите Ctrl + Shift + Enter ключи одновременно.

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))

Внимание: В формуле C2: C19 - это отфильтрованный список, который вы хотите вернуть для первого видимого значения ячейки, C2 - это первая ячейка списка. Вы можете изменить их по своему усмотрению.

Затем вы можете увидеть значение первой видимой ячейки в отфильтрованном списке, заполненном в выбранной ячейке, как показано выше.


Найти и получить значение первой видимой ячейки после фильтрации с помощью VBA

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

1. Выберите пустую ячейку, например E8, для размещения первого видимого значения ячейки отфильтрованного списка.

2. Нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

3. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.

Код VBA: найти и получить значение первой видимой ячейки после фильтрации в Excel

Sub FirstVisibleCell()
   With Worksheets("Sheet1").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With
End Sub

Внимание: В коде Sheet1 - это имя листа, который содержит отфильтрованный список. «C» - это имя столбца, из которого вы хотите получить первое видимое значение. Вы можете изменить их по своему усмотрению.

3. нажмите F5 нажмите клавишу для запуска кода, то первая видимая ячейка отфильтрованного списка, которая находится в столбце C, будет немедленно заполнена в ячейку E8.


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (17)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Как найти и получить значение десяти (10) первых видимых ячеек после фильтрации промежуточных итогов в Excel?
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуй,


Como faço para saber o número da célula toda vez que realizo filtro automático no vba via loop?
Для примера, ao filtrar o valor 1, retornou as linhas 2, 3 e 4. No próximo loop filtro o valor 2 e retorna as linhas 19, 20, 22.
Como faço para que eu realizar esse filtro eu pegue exatamente o valor da linha atual da linha do filtro e não o valor da primeira linha da planilha?
Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Отличный модуль в VBA, работал отлично, я это ценю! Большое спасибо за этот пост !!!!
Этот комментарий был сведен к минимуму модератором на сайте
Кто-нибудь может объяснить, как на самом деле работает эта формула?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
Этот комментарий был сведен к минимуму модератором на сайте
Я продолжаю получать ошибку времени выполнения «91». Переменная объекта или переменная блока не установлена. Мой рабочий лист — Sheet1 под названием AllBrands. Это моя формула:

Sub FirstVisibleCell()
С рабочими листами("ALLBRANDS").AutoFilter.Range
ActiveCell.Value2 = Range("H" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Конец с

End Sub

Любая помощь будет оценена!
Этот комментарий был сведен к минимуму модератором на сайте
Привет Баб,
Код работает хорошо в моем случае. Какую версию Excel вы используете?
Этот комментарий был сведен к минимуму модератором на сайте
К сожалению, ни формула, которая дает мне ошибку #ЗНАЧ, ни VBA не работают для меня, что дает мне ошибку времени выполнения «1004»
Жаль, что у меня Office 2019, и я ожидал, что одна из этих функций будет работать при фильтрации определенных ячеек... :-(
Этот комментарий был сведен к минимуму модератором на сайте
‌замечательно🌺 Спасибо миллион🙏
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо миллион🙏🌺
Этот комментарий был сведен к минимуму модератором на сайте
Оно работает. Огромное спасибо...
Этот комментарий был сведен к минимуму модератором на сайте
Эта формула работает, но имейте в виду, что если у вас есть пустые ячейки, формула может дать сбой и выбрать первое значение во всей таблице, а не только в отфильтрованных результатах. Обходной путь, который я нашел, заключался в замене пустых ячеек на NULL или пробел.
Этот комментарий был сведен к минимуму модератором на сайте
Сначала у меня были пробелы.... затем все ячейки были заполнены, но все еще имелся ответ #ЗНАЧ. Надеюсь, эта формула работает и с текстом...! Все равно спасибо за совет ;-)
Этот комментарий был сведен к минимуму модератором на сайте
Так что для меня ответ выше просто не работает так хорошо. У меня есть книга с более чем 23 тыс. строк, и я работал над ее оптимизацией на протяжении многих лет. Мое решение пришло ко мне сегодня утром в еще одной искре вдохновения.
Предполагая, что вы используете ТАБЛИЦУ для получения нужных данных, сделайте следующее: Одна строка (я назвал ее «Rownmbr») посвящена: =CELL([@[YOURFIRSROW]])
Где-то за пределами таблицы вы делаете формулу: = ДВССЫЛ (СЦЕПИТЬ ("A"; ПРОМЕЖУТОЧНЫЙ ИТОГ (105;
Вы просто заменяете «А» на то, откуда хотите получить данные. Для меня это отлично работает, и это не тяжелая формула, которая еще больше увязнет в документе.
Этот комментарий был сведен к минимуму модератором на сайте
Это решение отлично сработало для меня, так как я использовал таблицу. Инструкции было сложно выполнить, поэтому, надеюсь, это объяснение будет немного яснее.
Скажем, у вас есть таблица Excel с именем Table_Name. Сначала создайте новый столбец в таблице и назовите его «RowNumber». 
В этом новом столбце введите формулу «=СТРОКА([@RowNumber])». После этого новый столбец будет заполнен
В ячейке, где вы хотите отобразить первое видимое значение, введите формулу «= ДВССЫЛ («A» & ПРОМЕЖУТОЧНЫЙ ИТОГ (105, Table_Name [RowNumber]))». «A» — это буква столбца, который содержит нужное значение. вернуться.
Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ(105,...) возвращает минимальное значение всех видимых строк в заданном диапазоне, что в приведенном выше случае возвращает номер первой видимой строки.
Функция ДВССЫЛ возвращает значение ячейки для заданного адреса ячейки. Вот почему вам нужно, чтобы первая часть формулы содержала букву столбца, который вы хотите отобразить. Вторая часть формулы вернет номер строки.


Этот комментарий был сведен к минимуму модератором на сайте
Можете ли вы помочь мне написать эту формулу в листе Google с помощью arrayformula ()

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Этот комментарий был сведен к минимуму модератором на сайте
В следующем коде VBA не могли бы вы объяснить, что делает Спеццеллс (xlCellTypeVisible) (1) значит? Что (1) используется после Спеццеллс (xlCellTypeVisible)?
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо!
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL