Finding the first blank cell in your workbook can become a fairly repetitive task, especially in situations like adding new rows into a large data set. In this article, we are going to show you how to find the first blank cell in a range in Excel, and also show you how to create a hyperlink to cells directly.
Download Workbook
Formula
Finding the position: {=MATCH(TRUE,ISBLANK(RANGE),0)}
The address: { =CELL(«address»,INDEX(RANGE,MATCH(TRUE,ISBLANK(RANGE),0)))
Hyperlink: {=HYPERLINK(“#”&CELL(«address»,INDEX(RANGE,MATCH(TRUE,ISBLANK(RANGE),0))))}
* range is the reference from the work range
** {} characters are put by Excel automatically. Do not type them.
How it works
Excel doesn’t have a built-in formula to find the first blank cell in a range. However, there is the ISBLANK function, which tests a cell, and returns a Boolean value according to its content. The function returns TRUE if cell is blank, FALSE otherwise. Thus, finding the first FALSE value means to find the first blank cell.
MATCH function can help locate a TRUE value. Once the position is found, you can use it with the INDEX function to return its reference. CELL and HYPERLINK functions can use the reference information to display the address and create a hyperlink.
The problem is that the ISBLANK function can only work with a single cell. You need to use a helper column to populate TRUE and FALSE values which doesn’t sound too practical. Instead, you can forego using a helper column by using an array function.
Use the reference of your range of values in the ISBLANK function. This action will return an array of Boolean values. The first FALSE value indicates the position of the first blank cell in the range. Wrap the function with MATCH to get the position.
Use Ctrl + Shift + Enter key combination instead of just pressing the Enter key to enter the formula as an array formula.
=MATCH(TRUE,ISBLANK(B5:B12),0)
Return address of the first blank cell
The INDEX function has a lesser known feature which is returning the cell reference, instead of its value. Once the reference is found, you can use it with other functions that need a reference. The CELL function is one of them.
The CELL function can return the address of a reference. If you need the address as a string, use the following formula.
=CELL(«address»,INDEX(B5:B12,MATCH(TRUE,ISBLANK(B5:B12),0)))
As you have guess already, this formula needs Ctrl + Shift + Enter as well.
Hyperlink to the first blank cell
The HYPERLINK function has a unique ability like converting a text into a hyperlink. You can create hyperlinks anywhere on an Excel workbook. Just remember to add a “#” character in front. “#” character tells Excel that the following path is an Excel reference.
=HYPERLINK(«#»&CELL(«address»,INDEX(B5:B12,MATCH(TRUE,ISBLANK(B5:B12),0))))
maverick Пользователь Сообщений: 20 |
Прошу помощи знающих. К сожалению, я пока «не очень» дружен с VBA =) Помогите, плз. |
vlanib Пользователь Сообщений: 26 |
[В1].End(xlDown).Offset(1, 0).Value = «Последняя свободная ячейка столбца В» |
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
В общем случае макрос может выглядеть так: |
maverick Пользователь Сообщений: 20 |
{quote}{login=vlanib}{date=13.05.2010 10:37}{thema=}{post}[В1].End(xlDown).Offset(1, 0).Value = «Последняя свободная ячейка столбца В»{/post}{/quote} уточнение: мне необходима первая, а не крайняя свободная ячейка. Можно как-то переделать? |
maverick Пользователь Сообщений: 20 |
{quote}{login=Юрий М}{date=13.05.2010 10:41}{thema=}{post}В общем случае макрос может выглядеть так: Спасибо огромное! |
Serge Пользователь Сообщений: 11308 |
А как переделать код: Sub Макрос1() , что бы искалась первая пустая ячейка в том столбце, в котором находится активная ячейка? |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Sub Макрос1() Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Serge Пользователь Сообщений: 11308 |
Спасибо! |
maverick Пользователь Сообщений: 20 |
тут же возник попутный вопрос: |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Sub Макрос1() Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Serge Пользователь Сообщений: 11308 |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
{quote}{login=maverick}{date=13.05.2010 11:16}{thema=}{post}тут же возник попутный вопрос: Sub Макрос1() Если максимальное+1 Все применено к первому столбцу Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Спасибо! =) |
|
А как можно такое провернуть: |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Какое отношение вопрос имеет к данной теме? Создавайте тему по правилам и получите ответ. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
А как прописать, что бы просматривался только диапазон P4:P16 , т.к. после этого идут дальше заполненные ячейки. |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Range(«P16»).End(xlUp).Select Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
{quote}{login=The_Prist}{date=13.05.2010 11:16}{thema=}{post}Sub Макрос1() Я сам — дурнее всякого примера! … |
{quote}{login=The_Prist}{date=24.12.2011 01:20}{thema=}{post}Range(«P16»).End(xlUp).Select{/post}{/quote} Dim iLastRow As Long Переносит на ячейку Р2, а необходимо с верху вниз с Р4 до Р16 в зависимости от заполнения ячеек. Т.к. ячейка Р19 и ниже содержит данные. |
|
Hugo Пользователь Сообщений: 23254 |
Вот это Можно так: Это от P16 идём вверх. Sub tt() |
Hugo Пользователь Сообщений: 23254 |
Вернее так, с обработкой ошибки, когда всё будет заполнено: Sub tt() |
{quote}{login=Hugo}{date=25.12.2011 01:58}{thema=}{post}Вернее так, с обработкой ошибки, когда всё будет заполнено: Sub tt() Спасибо. Но нужно чтобы он выделял ячейки с Р4 до Р16, а в этом макросе он вставляет в свободную ячейку надпись Всё заполнено!!!. Т.к. данные в эти ячейка вставляются тоже через макрос а не в ручную. |
|
{quote}{login=}{date=25.12.2011 02:06}{thema=Re: }{post}{quote}{login=Hugo}{date=25.12.2011 01:58}{thema=}{post}Вернее так, с обработкой ошибки, когда всё будет заполнено: Sub tt() Спасибо. Но нужно чтобы он выделял ячейки с Р4 до Р16, а в этом макросе он вставляет в свободную ячейку надпись Всё заполнено!!!. Т.к. данные в эти ячейка вставляются тоже через макрос а не в ручную. Попробую так: Sub tt() |
|
{quote}{login=}{date=25.12.2011 02:12}{thema=Re: Re: }{post}{quote}{login=}{date=25.12.2011 02:06}{thema=Re: }{post}{quote}{login=Hugo}{date=25.12.2011 01:58}{thema=}{post}Вернее так, с обработкой ошибки, когда всё будет заполнено: Sub tt() Спасибо. Но нужно чтобы он выделял ячейки с Р4 до Р16, а в этом макросе он вставляет в свободную ячейку надпись Всё заполнено!!!. Т.к. данные в эти ячейка вставляются тоже через макрос а не в ручную. Попробую так: Sub tt() Опа. Заработало. Спасибо всем!!! |
|
Убрал лишнее и оставил только это: |
|
Hugo Пользователь Сообщений: 23254 |
On Error Resume Next всёж оставьте |
Станислав Пользователь Сообщений: 120 |
{quote}{login=Hugo}{date=25.12.2011 02:29}{thema=}{post}On Error Resume Next всёж оставьте :){/post}{/quote} Спасибо. |
А не подскажите ли вы, мне нужно нечто похожее, как выбирать каждую ячейку первого столбца, пока не наткнешься на пустую, естественно после выбора будет какое-либо действие, и это вроде как должно выполняться через цикл, если я правильно понимаю… помогите пожалуйста |
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
floove, Вы демонстрируете недюжинную сообразительность. Тема называется «Поиск первой свободной ячейки в стообце». Все ответы посвящены этому. И тут появляетесь Вы и задаете вопрос: «А как найти первую свободную ячейку в столбце?». Браво! Я сам — дурнее всякого примера! … |
Hugo Пользователь Сообщений: 23254 |
#30 28.12.2011 01:39:16 Сергей, мне кажется, что ты ошибаешься — тут нужен цикл по занятым до первой свободной. |
Suppose A2,A3,A4 are filled. A5,A6 are empty. A7-10 are filled.
Is there a way to know that A5 is the first blank cell after A2?
For example,
A1 | =sum(...)
A2 | 3
A3 | 4
A4 | 1
A5 |
A6 | =sum(...)
A7 | 2
A8 | 5
A9 | 7
A10| 10
What one formula may we use to replace «…» in order to sum the cells below until the next blank cell? ie. Can a formula on A1 for sum(A2:A4)
be re-used on A6 for sum(A7:A10)
by just copy-paste?
Here is my story of failed attempts.
So the starting row is easy to get. Just put in A2
.
For the end row, Google Spreadsheet doesn’t equate ""
with empty cell. So sum(A2:index(match("",A2:A)))
will not work.
isblank()
with an array input will give a single output FALSE
regardless of the content. So sum(A2:index(match(TRUE,isblank(A2:A))))
won’t work.
What can I do to make it work?
Список данных может быть заполнен пустыми ячейками. Чтобы найти первую пустую ячейку в выбранном диапазоне столбца, просмотрите приведенное ниже руководство для получения дополнительных сведений.
Найдите первую пустую ячейку в столбце с формулой
Найдите первую пустую ячейку в столбце с кодом VBA
Найдите первую пустую ячейку в столбце с формулой
В этом разделе мы покажем вам, как найти первую пустую ячейку в столбце с формулой. В качестве примера возьмите приведенный ниже список данных, пожалуйста, сделайте следующее.
1. Выберите пустую ячейку для отображения результата.
2. Скопируйте и вставьте формулу. = МИН (ЕСЛИ (A1: A23 = «»; СТРОКА (A1: A23))) в панель формул, затем нажмите Ctrl + Shift + Enter клавиши на клавиатуре. Смотрите скриншот:
Внимание: Измените диапазон в формуле на свой собственный.
После этого в выбранной ячейке отобразится номер строки. Поскольку указанный вами диапазон находится в столбце A, в зависимости от отображаемого числа это означает, что первая пустая ячейка — это A16.
Найдите первую пустую ячейку в столбце с кодом VBA
Помимо формулы, вы также можете найти первую пустую ячейку в столбце с кодом VBA. Пожалуйста, сделайте следующее.
1. Нажмите другой + A11 в то же время открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, дважды щелкните текущее имя рабочего листа на левой панели, чтобы открыть редактор кода.
3. Скопируйте и вставьте следующий код VBA в редактор.
Код VBA: найти первую пустую ячейку в столбце
Sub Findfirstblankcell()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type: = 8)
For Each Rng In WorkRng
If Rng.Value = "" Then
MsgBox "No Value, in " & Rng.Address
End If
Next
End Sub
4. Нажмите Run кнопку или нажмите кнопку F5 ключ для запуска кода.
5. После запуска кода KutoolsforExcel появится диалоговое окно, выберите диапазон, в котором вы хотите найти первую пустую ячейку, затем щелкните OK кнопка. Смотрите скриншот:
Затем появляется диалоговое окно с адресом первой пустой ячейки в указанном столбце, указанном внутри.
Внимание: Если в выбранном диапазоне есть другие пустые ячейки, указанное выше диалоговое окно будет появляться до тех пор, пока не будут найдены все пустые ячейки в диапазоне.
Статьи по теме:
- Как найти позицию первого / последнего числа в текстовой строке в Excel?
- Как найти ячейки с условным форматированием / с условным форматированием в Excel?
- Как найти ячейки с / с проверкой данных в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (2)
Оценок пока нет. Оцените первым!
Модератор:Naeel Maqsudov
-
tolikt
- Сообщения:93
- Зарегистрирован:29 окт 2005, 12:33
- Откуда:NewVasюbirsk
Про нахождение первой пустой (незаполненной) ячейки на листе (в диапазоне, области) тут обсуждалось не раз. Но всё сводилось к средствам VBA для макроса, написанного пользователем.
Как получить адрес (например, номер строки) первой пустой ячейки в диапазоне (например, столбце) ТОЛЬКО с помощью СТАНДАРТНЫХ ФОРМУЛ Excel без VBA?
-
Genyaa
- Сообщения:307
- Зарегистрирован:11 окт 2006, 17:24
- Откуда:Moscow
- Контактная информация:
21 ноя 2007, 10:47
С помощью форумулы массива:
{=ПОИСКПОЗ(ИСТИНА();(A1:A500=»»);ЛОЖЬ())}
Вернет номер строки первой пустой ячейки в области A1:A500.
(Для создание формулы массива нужно в конце редактирования формулы нажать одновременноа Ctrl+Shift+Enter, фигурные скопки вводить не нужно, сами появляются.)
Всякое решение плодит новые проблемы.
-
Avsha
- Сообщения:664
- Зарегистрирован:08 сен 2005, 13:47
- Откуда:KZ
21 ноя 2007, 14:19
Или можно завести дополнительный столбец и брать от него максимальное значение,
как в этой теме…
Excel, последнея не пустая ячейка в столбце
http://forum.developing.ru/showpost.php … stcount=13
повторюсь…
Еще вариант — создать столбец, около вашей таблицы, например в столбце AA с формулами:
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(A1:Z1)<ЧИСЛСТОЛБ(A1:Z1);СТРОК А(A10:Z10);0)
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(A2:Z2)<ЧИСЛСТОЛБ(A2:Z2);СТРОК А(A11:Z11);0)
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(A3:Z3)<ЧИСЛСТОЛБ(A3:Z3);СТРОК А(A12:Z12);0)
…
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(A1000:Z1000)<ЧИСЛСТОЛБ(A1000: Z1000);СТРОКА(A1000:Z1000);0)
и ячейку с искомым последним номером строки
=МАКС(AA1:AA1000)
и ячейку с первой пустой строкой
=ПОИСКПОЗ(0;AA:AA;0)