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

Як знайти та отримати значення першої видимої комірки після фільтрації в Excel?

У деяких випадках вам може знадобитися отримати значення першої видимої комірки у відфільтрованому списку. Як цього досягти? Ця стаття покаже вам способи її вирішення.

Знайдіть і отримайте значення першої видимої комірки після фільтрації за формулою масиву
Знайдіть і отримайте значення першої видимої комірки після фільтрації за допомогою VBA


Знайдіть і отримайте значення першої видимої комірки після фільтрації за формулою масиву


Ви можете застосувати наступну формулу масиву, щоб отримати значення першої видимої комірки у відфільтрованому списку. Будь ласка, виконайте наступне.

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

=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 для додатків вікна, натисніть Insert > Модулі. Потім скопіюйте та вставте наведений нижче код 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

примітки: У коді Аркуш1 - це назва аркуша, що містить відфільтрований список. “C” - це назва стовпця, з якого ви хочете отримати перше видиме значення. Ви можете змінювати їх, як вам потрібно.

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


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (17)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Як знайти та отримати значення десяти (10) перших видимих ​​клітинок після фільтрації проміжної суми в Excel?
Цей коментар був мінімізований модератором на сайті
Ола,


Яке значення для параметра saber або номер цілула тода vez que realizo o filtero automático no vba через цикл?
Для прикладу, ao filterar o valor 1, retornou as linhas 2, 3 e 4. No proximo loop filtero 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" Об'єктна змінна або З змінною блоку не встановлено. Мій робочий аркуш — лист 1 під назвою AllBrands. Це моя формула:

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

End Sub

Будь-яка допомога буде вдячна!
Цей коментар був мінімізований модератором на сайті
Привіт Буб!
У моєму випадку код працює добре. Яку версію Excel ви використовуєте?
Цей коментар був мінімізований модератором на сайті
На жаль - ні формула - яка дає мені помилку #VALUE, ні VBA не працює для мене, даючи мені помилку під час виконання "1004"
Шкода, оскільки у мене Office 2019, і я очікував, що одна з цих функцій працюватиме під час фільтрації певних клітинок... :-(
Цей коментар був мінімізований модератором на сайті
‌чудово🌺 Дякую мільйон🙏
Цей коментар був мінімізований модератором на сайті
Мільйон дякую🙏🌺
Цей коментар був мінімізований модератором на сайті
Це працює. Дуже дякую...
Цей коментар був мінімізований модератором на сайті
Ця формула працює, але майте на увазі, що якщо у вас є порожні клітинки, формула може працювати неправильно й вибрати перше значення у всій таблиці, а не лише у відфільтрованих результатах. Обхідним шляхом, який я знайшов, було замінити порожні клітинки на NULL або пробіл.
Цей коментар був мінімізований модератором на сайті
Спочатку у мене були пробіли... потім усі клітинки були заповнені, але все ще з’явилася відповідь #VALUE. Сподіваюся, ця формула працює і з текстом...! Все одно дякую за пораду ;-)
Цей коментар був мінімізований модератором на сайті
Тому для мене наведена вище відповідь просто не працює так добре. У мене є робоча книга з понад 23 тисячами рядків, і я працював над оптимізацією протягом багатьох років. Моє рішення прийшло до мене сьогодні вранці як ще одна іскра натхнення.
Припускаючи, що ви використовуєте TABLE для отримання потрібних даних, виконайте наступне: Один рядок (я назвав його "Rownmbr") призначений для: =CELL([@[YOURFIRSTROW]])
За межами таблиці ви робите формулу десь:=INDIRECT(CONCATENATE("A";SUBTOTAL(105;Table1[Rownmbr])))
Ви просто замінюєте «А» на те, звідки ви хочете отримати дані. Для мене це чудово працює, і це не важка формула для використання, яка ще більше завантажить документ.
Цей коментар був мінімізований модератором на сайті
Це рішення ідеально спрацювало для мене, оскільки я використовував таблицю. Інструкціям було важко дотримуватися, тому, сподіваюся, це пояснення буде трохи зрозумілішим.
Скажімо, у вас є таблиця Excel з назвою "Назва_таблиці". Спочатку створіть новий стовпець у вашій таблиці та назвіть його «Номер рядка». 
У цьому новому стовпці введіть формулу "=ROW([@RowNumber])". Після цього новий стовпець буде заповнено
У клітинку, де потрібно відобразити перше видиме значення, введіть формулу "=INDIRECT("A"&SUBTOTAL(105,Table_Name[RowNumber]))" "A" — це літера стовпця, що містить потрібне значення повертатися.
Функція SUBTOTAL(105,...) повертає мінімальне значення всіх видимих ​​рядків у заданому діапазоні, яке у наведеному вище випадку повертає номер рядка першого видимого рядка.
Функція INDIRECT повертає значення комірки для заданої адреси комірки. Ось чому вам потрібно, щоб перша частина формули містила букву стовпця стовпця, який ви хочете відобразити. Друга частина формули поверне номер рядка.


Цей коментар був мінімізований модератором на сайті
Чи можете ви допомогти мені написати цю формулу на аркуші Google за допомогою arrayformula ()

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Цей коментар був мінімізований модератором на сайті
У наступному коді VBA ви можете пояснити, що робить SpecialCells(xlCellTypeVisible)(1) означає? Що (1) використовується для після SpecialCells(xlCellTypeVisible)?
ActiveCell.Value2 = Діапазон("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Цей коментар був мінімізований модератором на сайті
Дякую!
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця