Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.
Задача: требуется формула, которая позволяла найти первое непустое значение в строке, т.е., возвращала бы номер первой непустой ячейки в строке. Предположим, что данные представлены в столбцах С:K (рис. 1).
Рис. 1. Формула находит первую непустую ячейку в каждой строке и возвращает ее номер в массиве
Скачать заметку в формате Word или pdf, примеры в формате Excel
Решение: формула в А2: =ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(C2:K2);1;0);0). Хотя эта формула имеет дело с массивом ячеек, она в конечном счете возвращает одно значение, так что использовать при вводе нажатие Ctrl+Shift+Enter не требуется (о формулах массива см. Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel).
Рассмотрим работу формулы подробнее. Функция ЕПУСТО возвращает ИСТИНА, если ячейка является пустой, и ЛОЖЬ, если ячейка – не пустая. Посмотрите на строку данных в С2:К2. ЕПУСТО(С2:К2) возвратит массив: {ИСТИНА;ИСТИНА;ЛОЖЬ;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА}.
Обратите внимание, что далее этот массив вычитается из 1. При попытке использовать значения ИСТИНА и ЛОЖЬ в математической формуле, значение ИСТИНА интерпретируется как 1, а значение ЛОЖЬ – как 0. Задавая 1-ЕПУСТО(С2:К2), вы преобразуете массив логических значений ИСТИНА/ЛОЖЬ в числовую последовательность нулей и единиц: {0;0;1;0;0;0;0;0;0}.
Итак, фрагмент формулы 1-ЕПУСТО(С2:К2) возвращает массив {0;0;1;0;0;0;0;0;0}. Это немного странно, так как от такого фрагмента Excel ожидает, что вернется одно значение. Странно, но не смертельно. Функция ИНДЕКС также обычно возвращает одно значение. Но вот, что написано в Справке Excel: Если указать в качестве аргумента номер_строки или номер_столбца значение 0 (ноль), функция ИНДЕКС возвратит массив значений для целого столбца или целой строки соответственно. Чтобы использовать значения, возвращенные как массив, введите функцию ИНДЕКС как формулу массива в горизонтальный диапазон ячеек для строки и в вертикальный — для столбца.
Если функция ИНДЕКС возвращает массив, ее можно использовать внутри других функций, ожидающих, что аргумент является массивом.
Итак, указав в качестве третьего аргумента функции ИНДЕКС(1-ЕПУСТО(C2:K2);1;0) значение ноль, мы получим массив {0;0;1;0;0;0;0;0;0}.
Функция ПОИСКПОЗ выполняет поиск искомого значения в одномерном массиве и возвращает относительную позицию первого найденного совпадения. Формула =ПОИСКПОЗ(1,МАССИВ,0) просит Excel найти номер ячейки в МАССИВЕ, которая содержит первую встретившуюся единицу. Функция ПОИСКПОЗ определяет в каком столбце содержится первая непустая ячейка. Когда вы просите ПОИСКПОЗ найти первую 1 в массиве {0;0;1;0;0;0;0;0;0}, она возвращает 3.
Итак =ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(C2:K2);1;0);0) превращается в =ПОИСКПОЗ(1;{0;0;1;0;0;0;0;0;0};0) и возвращает результат 3.
В этот момент, вы знаете, что третий столбец строки С2:К2 содержит первое непустое значение. Отсюда довольно просто, используя функцию ИНДЕКС, узнать само это первое непустое значение: =ИНДЕКС(МАССИВ;1;3) или =ИНДЕКС(C2:K2;1;ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(C2:K2);1;0);0)).
Результат: 3
Рис. 2. Формула находит первую непустую ячейку в каждой строке и возвращает значение этой ячейки
Дополнительные сведения: если все ячейки пустые, то формула возвращает ошибку #Н/Д.
Альтернативные стратегии: когда вы из единицы вычитаете значение ЕПУСТО, вы преобразуете логические значения ИСТИНА/ЛОЖЬ в числовые 1/0. Вы могли бы пропустить этот шаг, но тогда вам придется искать ЛОЖЬ в качестве первого аргумента функция ПОИСКПОЗ: =ИНДЕКС(C2:K2;1;ПОИСКПОЗ(ЛОЖЬ;ИНДЕКС(ЕПУСТО(C2:K2);1;0);0)).
Источник.
Поиск последней непустой ячейки в строке или столбце функцией ПРОСМОТР
На практике часто возникает необходимость быстро найти значение последней (крайней) непустой ячейки в строке или столбце таблицы. Предположим, для примера, что у нас есть вот такая таблица с данными продаж по нескольким филиалам:
Задача: найти значение продаж в последнем месяце по каждому филиалу, т.е. для Москвы это будет 78, для Питера — 41 и т.д.
Если бы в нашей таблице не было пустых ячеек, то путь к решению был бы очевиден — можно было бы посчитать количество заполненных ячеек в каждой строке и брать потом ячейку с этим номером. Но филиалы работают неравномерно: Москва простаивала в марте и августе, филиал в Тюмени открылся только с апреля и т.д., поэтому такой способ не подойдет.
Универсальным решением будет использование функции ПРОСМОТР (LOOKUP):
У этой функции хитрая логика:
- Она по очереди (слева-направо) перебирает непустые ячейки в диапазоне (B2:M2) и сравнивает каждую из них с искомым значением (9999999).
- Если значение очередной проверяемой ячейки совпало с искомым, то функция останавливает просмотр и выводит содержимое ячейки.
- Если точного совпадения нет и очередное значение меньше искомого, то функция переходит к следующей ячейке в строке.
Легко сообразить, что если в качестве искомого значения задать достаточно большое число, то функция пройдет по всей строке и, в итоге, выдаст содержимое последней проверенной ячейки. Для компактности, можно указать искомое число в экспоненциальном формате, например 1E+11 (1*1011 или сто миллиардов).
Если в таблице не числа, а текст, то идея остается той же, но «очень большое число» нужно заменить на «очень большой текст»:
Применительно к тексту, понятие «большой» означает код символа. В любом шрифте символы идут в следующем порядке возрастания кодов:
- латиница прописные (A-Z)
- латиница строчные (a-z)
- кириллица прописные (А-Я)
- кириллица строчные (а-я)
Поэтому строчная «я» оказывается буквой с наибольшим кодом и слово из нескольких подряд «яяяяя» будет, условно, «очень большим словом» — заведомо «большим», чем любое текстовое значение из нашей таблицы.
Вот так. Не совсем очевидное, но красивое и компактное решение. Для поиска последней непустой ячейки в столбцах работает тоже «на ура».
Ссылки по теме
- Поиск и подстановка по нескольким условиям (ВПР по 2 и более критериям)
- Поиск ближайшего похожего текста (max совпадений символов)
- Двумерный поиск в таблице (ВПР 2D)
Поиск самой левой не пустой ячейки по строке |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Функция ЕПУСТО в Excel используется для наличия текстовых, числовых, логических и прочих типов данных в указанной ячейке и возвращает логическое значение ИСТИНА, если ячейка является пустой. Если в указанной ячейке содержатся какие-либо данные, результатом выполнения функции ЕПУСТО будет логическое значение ЛОЖЬ.
Примеры использования функции ЕПУСТО в Excel
Пример 1. В таблице Excel находятся результаты (баллы) по экзамену, который проводился в учебном заведении. В данной электронной ведомости напротив некоторых студентов оценки не указаны, поскольку их отправили на пересдачу. В столбце рядом вывести текстовую строку «Сдал» напротив тех, кому выставили оценки, и «На пересдачу» — напротив не сдавших с первого раза.
Исходные данные:
Выделим ячейки C3:C18 и запишем следующую формулу:
Формула ЕСЛИ выполняет проверку возвращаемого результата функции ЕПУСТО для диапазона ячеек B3:B18 и возвращает один из вариантов («На пересдачу» или «Сдал»). Результат выполнения функции:
Теперь часть данной формулы можно использовать для условного форматирования:
- Выделите диапазон ячеек C3:C18 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
- В появившемся окне «Создание правила форматирования» выберите опцию: «Использовать формулы для определения форматируемых ячеек» и введите следующую формулу:
- Нажмите на кнопку «Формат» (как на образцу), потом укажите в окне «Формат ячеек» красный цвет заливки и нажмите ОК на всех открытых окнах:
На против незаполненных (пустых) ячеек или двоек мы получаем соответственное сообщение «На пересдачу» и красную заливку.
Почему нужно использовать функцию ЕПУСТО при проверке пустых ячеек
У выше указанном примере можно изменить формулу используя двойные кавычки («») в место функции проверки ячеек на пустоту, и она также будет работать:
=ЕСЛИ(ИЛИ(B3=»»;B3=2);»На пересдачу»;»Сдал»)
Но не всегда! Все зависит от значений, которые могут содержать ячейки. Обратите внимание на то как по-разному себя ведут двойные кавычки, и функция ЕПУСТО если у нас в ячейках находятся одни и те же специфические значения:
Как видно на рисунке в ячейке находится символ одинарной кавычки. Первая формула (с двойными кавычками вместо функции) ее не видит. Более того в самой ячейке A1 одинарная кавычке не отображается так как данный спецсимвол в Excel предназначенный для отображения значений в текстовом формате. Это удобно, например, когда нам нужно отобразить саму формулу, а не результат ее вычисления как сделано в ячейках D1 и D2. Достаточно лишь перед формулой ввести одинарную кавычку и теперь отображается сама формула, а не возвращаемый ее результат. Но функция ЕПУСТО видит, что в действительности ячейка А1 не является пустой!
Проверка на пустую ячейку в таблице Excel
Пример 2. В таблице Excel записаны некоторые данные. Определить, все ли поля заполнены, или есть как минимум одно поле, которое является пустым.
Исходная таблица данных:
Чтобы определить наличие пустых ячеек используем следующую формулу массива (CTRL+SHIFT+Enter):
Функция СУММ используется для определения суммы величин, возвращаемых функцией —ЕПУСТО для каждой ячейки из диапазона B3:B17 (числовых значений, поскольку используется двойное отрицание). Если запись СУММ(—ЕПУСТО(B3:B17) возвращает любое значение >0, функция ЕСЛИ вернет значение ИСТИНА.
Результат вычислений:
То есть, в диапазоне B3:B17 есть одна или несколько пустых ячеек.
Примечание: в указанной выше формуле были использованы символы «—». Данный вид записи называется двойным отрицанием. В данном случае двойное отрицание необходимо для явного преобразования данных логического типа к числовому. Некоторые функции Excel не выполняют автоматического преобразования данных, поэтому механизм преобразования типов приходится запускать вручную. Наиболее распространенными вариантами преобразования текстовых или логических значений к числовому типу является умножение на 1 или добавление 0 (например, =ИСТИНА+0 вернет число 1, или =«23»*1 вернет число 23. Однако использование записи типа =—ИСТИНА ускоряет работу функций (по некоторым оценкам прирост производительности составляет до 15%, что имеет значение при обработке больших объемов данных).
Как посчитать количество пустых ячеек в Excel
Пример 3. Рассчитать средний возраст работников офиса. Если в таблице заполнены не все поля, вывести соответствующее сообщение и не выполнять расчет.
Таблица данных:
Формула для расчета (формула массива):
Функция ЕСЛИ выполняет проверку диапазона на наличие пустых ячеек (выражение СУММ(—ЕПУСТО(B3:B12))). Если СУММ вернула значение >0, будет выведено сообщение, содержащее количество незаполненных данными ячеек (СЧИТАТЬПУСТОТЫ) и строку «поля не заполнены», которые склеены знаком «&» (операция конкатенации).
Результат вычислений:
Особенности использования функции ЕПУСТО в Excel
Функция ЕПУСТО в Excel относится к числу логических функций (выполняющих проверку какого-либо условия, например, ЕСЛИ, ЕССЫЛКА, ЕЧИСЛО и др., и возвращающих результаты в виде данных логического типа: ИСТИНА, ЛОЖЬ). Синтаксическая запись функции:
=ЕПУСТО(значение)
Единственный аргумент является обязательным для заполнения и может принимать ссылку на ячейку или на диапазон ячеек, в которых необходимо определить наличие каких-либо данных. Если функция принимает диапазон ячеек, функция должна быть использована в качестве формулы массива.
Примечания:
- Если в качестве аргумента функции было явно передано какое-либо значение (например, =ЕПУСТО(ИСТИНА), =ЕПУСТО(«текст»), =ЕПУСТО(12)), результат ее выполнения – значение ЛОЖЬ.
- Если требуется, чтобы функция возвращала значение ИСТИНА, если ячейка не является пустой, ее можно использовать совместно с функцией НЕ. Например, =НЕ(ЕПУСТО(A1)) вернет ИСТИНА, если A1 не является пустой.
- Запись типа =ЕПУСТО(АДРЕС(x;y)) всегда будет возвращать значение ложь, поскольку функция АДРЕС(x;y) возвращает ссылку на ячейку, то есть непустое значение.
- Функция возвращает значение ЛОЖЬ даже в тех случаях, когда в переданной в качестве аргумента ячейке содержится ошибка или ссылка на ячейку. Это суждение справедливо и для случаев, когда в результате выполнения какой-либо функции в ячейку была выведена пустая строка. Например, в ячейку A1 была введена формула =ЕСЛИ(2>1;””;ЛОЖЬ), которая вернет пустую строку «». В этом случае функция =ЕПУСТО(A1) вернет значение ЛОЖЬ.
- Если требуется проверить сразу несколько ячеек, можно использовать функцию в качестве формулы массива (выделить требуемое количество пустых ячеек, ввести формулу «=ЕПУСТО(» и в качестве аргумента передать диапазон исследуемых ячеек, для выполнения использовать комбинацию клавиш Ctrl+Shift+Enter)
Скачать примеры функции ЕПУСТО в Excel
Получить первое непустое значение в столбце или строке
Чтобы получить первое значение (первая ячейка, которая не пуста, без учета ошибок) из диапазона из одного столбца или одной строки, вы можете использовать формулу, основанную на ИНДЕКС и МАТЧ функции. Однако, если вы не хотите игнорировать ошибки из вашего диапазона, вы можете добавить функцию ISBLANK к приведенной выше формуле.
Получить первое непустое значение в столбце или строке, игнорируя ошибки
Получить первое непустое значение в столбце или строке, включая ошибки
Получить первое непустое значение в столбце или строке, игнорируя ошибки
Чтобы получить первое непустое значение в списке как показано выше игнорирование ошибок, вы можете использовать функцию ИНДЕКС, чтобы найти непустые ячейки. Затем вы можете использовать ПОИСКПОЗ, чтобы найти его положение, и которое будет передано в другой ИНДЕКС, чтобы получить значение в этой позиции.
Общий синтаксис
=INDEX(range,MATCH(TRUE,INDEX((range<>0),0),0))
- ассортимент: Диапазон из одного столбца или одной строки, в котором должна быть возвращена первая непустая ячейка с текстовыми или числовыми значениями при игнорировании ошибок.
Чтобы получить первое непустое значение в списке без учета ошибок, скопируйте или введите формулу ниже в ячейку E4 и нажмите Enter чтобы получить результат:
= ИНДЕКС (B4: B15, ПОИСКПОЗ (ИСТИНА; ИНДЕКС ((B4: B15<> 0), 0), 0))
Пояснение формулы
=INDEX(B4:B15,MATCH(TRUE,INDEX((B4:B15<>0),0),0))
- ИНДЕКС ((B4: B15 <> 0), 0): Фрагмент оценивает каждое значение в диапазоне B4: B15. Если ячейка пуста, она вернет FLASE; Если ячейка содержит ошибку, сниппет сам вернет ошибку; И если ячейка содержит число или текст, будет возвращено ИСТИНА. Поскольку row_num аргумент этой формулы ИНДЕКС: 0, поэтому фрагмент вернет массив значений для всего столбца следующим образом: {ЛОЖЬ; # ССЫЛКА!; ИСТИНА; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА}.
- МАТЧ (ИСТИНА;ИНДЕКС ((B4: B15 <> 0), 0), 0) = МАТЧ (ИСТИНА;{ЛОЖЬ; # ССЫЛКА!; ИСТИНА; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА}, 0): Наблюдения и советы этой статьи мы подготовили на основании опыта команды match_type 0 заставляет функцию ПОИСКПОЗ возвращать позицию первого точного ИСТИНА в массиве. Итак, функция вернет 3.
- ИНДЕКС (B4: B15,МАТЧ (ИСТИНА;ИНДЕКС ((B4: B15 <> 0), 0), 0)) = ИНДЕКС (B4: B15;3): Затем функция ИНДЕКС возвращает 3rd значение в диапазоне B4: B15, Которая является extendoffice.
Получить первое непустое значение в столбце или строке, включая ошибки
Чтобы получить первое непустое значение в списке, включая ошибки, вы можете просто использовать функцию ISBLANK, чтобы проверить ячейки в списке, являются ли они пустыми или нет. Затем ИНДЕКС вернет первое непустое значение в соответствии с позицией, предоставленной ПОИСКПОЗ.
Общий синтаксис
=INDEX(range,MATCH(FALSE,ISBLANK(range),0))
√ Примечание. Это формула массива, требующая ввода с помощью Ctrl + Shift + Enter.
- ассортимент: Диапазон из одного столбца или одной строки, в котором должна быть возвращена первая непустая ячейка с текстом, числами или значениями ошибки.
Чтобы получить первое непустое значение в списке, включая ошибки, скопируйте или введите формулу ниже в ячейку E7 и нажмите Ctrl + Shift + Enter чтобы получить результат:
= ИНДЕКС (B4: B15, ПОИСКПОЗ (ЛОЖЬ; ЕСТЬ ПУСТО (B4: B15), 0))
Пояснение формулы
=INDEX(B4:B15,MATCH(FALSE,ISBLANK(B4:B15),0))
- ISBLANK (B4: B15): Функция ISBLANK проверяет, находятся ли ячейки в диапазоне B4: B15 пустые или нет. Если да, будет возвращено ИСТИНА; В противном случае будет возвращено ЛОЖЬ. Итак, функция сгенерирует такой массив: {ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ}.
- МАТЧ (ЛОЖЬ;ISBLANK (B4: B15), 0) = МАТЧ (ЛОЖЬ;{ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ}, 0): Наблюдения и советы этой статьи мы подготовили на основании опыта команды match_type 0 заставляет функцию ПОИСКПОЗ возвращать позицию первого точного НЕПРАВДА в массиве. Итак, функция вернет 2.
- ИНДЕКС (B4: B15,МАТЧ (ЛОЖЬ;ISBLANK (B4: B15), 0)) = ИНДЕКС (B4: B15;2): Затем функция ИНДЕКС возвращает 2ое значение в диапазоне B4: B15, Которая является #REF!.
Связанные функции
Функция ИНДЕКС в Excel
Функция ИНДЕКС Excel возвращает отображаемое значение на основе заданной позиции из диапазона или массива.
Функция ПОИСКПОЗ в Excel
Функция ПОИСКПОЗ в Excel ищет определенное значение в диапазоне ячеек и возвращает относительное положение значения.
Связанные формулы
Точное совпадение с ИНДЕКСОМ и ПОИСКПОЗ
Если вам нужно найти информацию, указанную в Excel, о конкретном продукте, фильме или человеке и т. Д., Вы должны хорошо использовать комбинацию функций ИНДЕКС и ПОИСКПОЗ.
Получить первое текстовое значение в столбце
Чтобы получить первое текстовое значение из диапазона с одним столбцом, вы можете использовать формулу, основанную на функциях ИНДЕКС и ПОИСКПОЗ, а также формулу, основанную на функции ВПР.
Найдите первое частичное совпадение с помощью подстановочных знаков
Есть случаи, когда вам нужно получить позицию первого частичного совпадения, которое содержит определенное число в диапазоне числовых значений в Excel. В этом случае формула ПОИСКПОЗ и ТЕКСТ, содержащая звездочку (*), подстановочный знак, который соответствует любому количеству символов, окажет вам услугу. И если вам также нужно знать точное значение в этой позиции, вы можете добавить в формулу функцию ИНДЕКС.
Найдите первое частичное совпадение
Есть случаи, когда вам нужно получить позицию первого частичного совпадения, которое содержит определенное число в диапазоне числовых значений в Excel. В этом случае формула ПОИСКПОЗ и ТЕКСТ, содержащая звездочку (*), подстановочный знак, который соответствует любому количеству символов, окажет вам услугу. И если вам также нужно знать точное значение в этой позиции, вы можете добавить в формулу функцию ИНДЕКС.
Лучшие инструменты для работы в офисе
Kutools for Excel — Помогает вам выделиться из толпы
Хотите быстро и качественно выполнять свою повседневную работу? Kutools for Excel предлагает 300 мощных расширенных функций (объединение книг, суммирование по цвету, разделение содержимого ячеек, преобразование даты и т. д.) и экономит для вас 80 % времени.
- Разработан для 1500 рабочих сценариев, помогает решить 80% проблем с Excel.
- Уменьшите количество нажатий на клавиатуру и мышь каждый день, избавьтесь от усталости глаз и рук.
- Станьте экспертом по Excel за 3 минуты. Больше не нужно запоминать какие-либо болезненные формулы и коды VBA.
- 30-дневная неограниченная бесплатная пробная версия. 60-дневная гарантия возврата денег. Бесплатное обновление и поддержка 2 года.
Вкладка Office — включение чтения и редактирования с вкладками в Microsoft Office (включая Excel)
- Одна секунда для переключения между десятками открытых документов!
- Уменьшите количество щелчков мышью на сотни каждый день, попрощайтесь с рукой мыши.
- Повышает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
- Добавляет эффективные вкладки в Office (включая Excel), точно так же, как Chrome, Firefox и новый Internet Explorer.
19 / 19 / 0 Регистрация: 30.09.2011 Сообщений: 283 |
|
1 |
|
Поиск первой НЕ пустой ячейки02.02.2012, 10:32. Показов 18561. Ответов 8
Привет всем! Помогите пожалуйста справится с задачей есть табличка из двух столбцов (в приложении она продублирована 2 раза для примера отображения результатов при разных значениях ячейки A1 (F1.. K1)) и собственно вопрос: как должна выглядеть формула в ячейке С2, чтобы она осуществляла поиск значения ячейки A1 в первом столбце таблицы и от него справа искала первую НЕ пустую ячейку и собственно ее возвращала. Рисунок прилагаю с Уважением Миниатюры
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
02.02.2012, 11:00 |
2 |
Пробуйте
2 |
956 / 596 / 11 Регистрация: 11.06.2010 Сообщений: 1,345 |
|
02.02.2012, 11:03 |
3 |
Если значения в столбце В всегда смещены на одну строку вниз, как в примере, то так: Код =ИНДЕКС(B3:B20;ПОИСКПОЗ(A1;A3:A20)+1) Если смещение бывает другое, то надо понимать на сколько строк оно может быть и может ли быть смещение вверх?
0 |
19 / 19 / 0 Регистрация: 30.09.2011 Сообщений: 283 |
|
02.02.2012, 11:49 [ТС] |
4 |
Пробуйте спасибо! Ваш вариант вписывается как раз только вопрос, а что значит искомое значение «*»
Если смещение бывает другое, то надо понимать на сколько строк оно может быть и может ли быть смещение вверх? Смещения в колонке «B» может и не быть вовсе (значения могут стоять напротив), либо только вниз.
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
02.02.2012, 12:25 |
5 |
что значит искомое значение «*» Любой текст, т.е. непустая ячейка.
1 |
0 / 0 / 0 Регистрация: 15.02.2013 Сообщений: 2 |
|
15.02.2013, 13:12 |
6 |
Если в столбце В не текст, а даты либо цифры? Какой символ искать?
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
15.02.2013, 16:04 |
7 |
изменить формулу например на такую Код =ИНДЕКС(СМЕЩ(B2:B9999;ПОИСКПОЗ(A1;A3:A9999;););ПОИСКПОЗ(1;--ЕЧИСЛО(СМЕЩ(B2:B9999;ПОИСКПОЗ(A1;A3:A9999;);));0))
0 |
0 / 0 / 0 Регистрация: 15.02.2013 Сообщений: 2 |
|
15.02.2013, 17:15 |
8 |
изменить формулу например на такую Код =ИНДЕКС(СМЕЩ(B2:B9999;ПОИСКПОЗ(A1;A3:A9999;););ПОИСКПОЗ(1;--ЕЧИСЛО(СМЕЩ(B2:B9999;ПОИСКПОЗ(A1;A3:A9999;);));0)) #Н/Д
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
15.02.2013, 17:19 |
9 |
УПС забыл написать данная формула вводится как формула массива. ctrl+shift+enter
1 |
Skip to content
Если ваша задача — заставить Excel подсчитывать пустые ячейки на листе, прочтите эту статью, чтобы найти 3 способа для этого. Узнайте, как искать и выбирать среди них нужные с помощью стандартных инструментов поиска, или же просто использовать формулу.
Примеры в этой статье покажут вам, как можно быстро подсчитать пустые и заполненные ячейки в таблице Excel.
- Стандартный инструмент «Выделить группу ячеек»
- Может пригодиться функция поиска и замены
- Эффективное использование функции СЧИТАТЬПУСТОТЫ
- Применяем СЧЁТЕСЛИ и СЧЁТЕСЛИМН
- Подсчёт пустых ячеек с условием
- Используем число пустых ячеек как условие в формуле
- Как сосчитать пустые строки
- Формула для подсчёта действительно путых ячеек
Предположим, вы поставляете товары в несколько магазинов. У вас есть таблица с названиями магазинов и количеством проданных товаров. Некоторые позиции в столбце «Продажи» не заполнены.
Вам нужно посчитать пустые ячейки на листе или же найти и выбрать их, чтобы увидеть, сколько магазинов не предоставили необходимые данные. Если список большой, то ручной подсчет займет слишком много времени. Поэтому выбирайте один из вариантов, которые я показываю в этой статье.
Инструмент «Выделить группу ячеек»
Если вам нужно быстро найти все пустые ячейки в Excel, используйте эту операцию. Она быстро выделит все незаполненные клетки, чтобы вы могли легко найти их на своем листе. Но вот количество их она не сосчитает.
На ленте меню Главная выбираем Найти и выделить, затем — Bыделить группу ячеек. В открывшемся окне активируем кнопку Пустые ячейки и жмем ОК.
В результате все клетки без значений будут выделены.
Вы можете использовать «Цвет заливки» на вкладке «Главная», чтобы изменить цвет фона пустых ячеек и зафиксировать выделение.
Обратите внимание, что этот инструмент не обнаруживает псевдо-пустые позиции — с формулами, возвращающими пустое значение. То есть, они не будут выделены.
Также имейте в виду то, что если вы вводили какие-то данные за пределами вашей таблицы, а затем их удалили за ненадобностью, то Эксель запомнит это. Теперь он будет искать не только в области ваших данных, но также в диапазоне, ограниченном этими «бывшими в употреблении» ячейками. В результате будет выделено много лишнего на вашем листе. Это вряд ли будет полезно.
Также вы, я думаю, заметили, что аналогичным образом можно выделить и непустые ячейки. Просто нужно выбрать другой объект поиска — либо Константы, либо Формулы.
Функция поиска и замены.
Вы можете использовать стандартный диалог Excel «Найти и заменить» для подсчета пустых ячеек в таблице. Этот инструмент отобразит список найденных ячеек рядом с их адресами на вашем листе. Он также позволяет вам перейти к любой из них, щелкнув ссылку в списке.
- Выберите диапазон, в котором нужно считать пустоты. Если вы не укажете диапазон, то поиск будет идти по всей таблице. Затем нажмите на ленте «Найти и выделить» или же используйте комбинацию клавиш
Ctrl + F
. - Оставьте поле Найти незаполненным.
- Нажмите Параметры и установите флажок Ячейка целиком.
- Выберите формулы или значения из раскрывающегося списка Область поиска:
- Если вы выберете Поиск значений, инструмент будет считать все пустые ячейки, включая псевдо-пустые со значениями типа «».
- Выберите параметр «Формулы» для поиска и подсчёта абсолютно пустых позиций. «Пустые» формулы учтены не будут.
- Нажмите кнопку «Найти все», чтобы увидеть результаты. Вы увидите количество найденного в нижнем левом углу.
При необходимости, используя вкладку Заменить, вы можете заполнить всех их нулями или каким-либо текстом («Нет данных», к примеру).
Как и в предыдущем методе, вы можете найти и сосчитать все непустые ячейки в заранее выделенном диапазоне. Просто в поле Найти введите * (звездочка). Все позиции, в которых есть хоть какие-то данные, будет выделены. Но значения («») будут проигнорированы.
Формулы для подсчета пустых ячеек.
Функция СЧИТАТЬПУСТОТЫ.
Функция СЧИТАТЬПУСТОТЫ предназначена для подсчета пустых ячеек в указанном диапазоне. Она относится к категории статистических функций и доступна во всех версиях Excel начиная с 2007.
Синтаксис этой функции очень прост и требует только одного аргумента:
СЧИТАТЬПУСТОТЫ(диапазон)
Где диапазон — это область вашего рабочего листа, в которой должны подсчитываться позиции без данных.
Вот пример формулы в самой простейшей форме:
=СЧИТАТЬПУСТОТЫ(C2:C17)
Чтобы эффективно использовать эту функцию, важно понимать, что именно она подсчитывает.
- Содержимое в виде текста, чисел, дат, логических значений или ошибок, не учитывается.
- Нули также не учитываются, даже если скрыты форматированием.
- Формулы, возвращающие пустые значения («»), — учитываются.
Глядя на рисунок выше, обратите внимание, что A7, содержащая формулу, возвращающую пустое значение, подсчитывается по-разному:
- СЧИТАТЬПУСТОТЫ считает её пустой, потому что она визуально кажется таковой.
- СЧЁТЗ обрабатывает её как имеющую содержимое, потому что она фактически содержит формулу.
Это может показаться немного нелогичным, но Excel действительно так работает
Как вы видите на рисунке выше, для подсчета непустых ячеек отлично подходит функция СЧЁТЗ:
=СЧЁТЗ(A2:A8)
СЧИТАТЬПУСТОТЫ — наиболее удобный, но не единственный способ подсчета пустых ячеек в Excel. Следующие примеры демонстрируют несколько других методов и объясняют, какую формулу лучше всего использовать в каждом сценарии.
Применяем СЧЁТЕСЛИ или СЧЁТЕСЛИМН.
Другим способом подсчета пустых ячеек в Excel является использование функций СЧЁТЕСЛИ или СЧЁТЕСЛИМН с пустой строкой («») в качестве критериев.
В нашем случае формулы выглядят следующим образом:
=СЧЁТЕСЛИ(B2:D2; «»)
или
=СЧЁТЕСЛИМН(B2:D2; «»)
Возвращаясь к ранее сказанному, вы можете также использовать выражение
=СЧИТАТЬПУСТОТЫ(B2:D2)
Результаты всех трёх формул, представленных выше, будут совершенно одинаковыми. Поэтому какую из них использовать — дело ваших личных предпочтений.
Подсчёт пустых ячеек с условием.
В ситуации, когда вы хотите подсчитать пустые ячейки на основе некоторого условия, функция СЧЁТЕСЛИМН является весьма подходящей, поскольку ее синтаксис предусматривает несколько критериев.
Например, чтобы определить количество позиций, в которых записано «Бананы» в столбце A и ничего не заполнено в столбце C, используйте эту формулу:
=СЧЁТЕСЛИМН(A2:A9; «Бананы» ; C2:C9; «»)
Или введите условие в предопределенную позицию, скажем F1, что будет гораздо правильнее:
=СЧЁТЕСЛИМН(A2:A9; F1; C2:C9; «»)
Количество пустых ячеек как условие.
В некоторых случаях вам может потребоваться не просто пересчитать пустые ячейки в диапазоне, но предпринять некоторые действия в зависимости от того, есть ли таковые, либо нет. Самый популярный случай — подсчитать итоги, только если все данные в таблице заполнены.
Хотя в Excel нет встроенной функции ЕСЛИСЧИТАТЬПУСТОТЫ, вы можете легко создать свою собственную формулу, используя вместе функции ЕСЛИ и СЧИТАТЬПУСТОТЫ. Вот как:
- Создаем условие, что количество пробелов равно нулю, и помещаем это выражение в логический тест ЕСЛИ:
СЧИТАТЬПУСТОТЫ(B2:D2)=0 - Если логический результат оценивается как ИСТИНА, выведите «Нет пустых».
- Если же — ЛОЖЬ, возвращаем «Пустые».
Полная формула принимает такой вид:
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(B2:D2)=0; «Нет пустых»; «Пустые»)
В результате формула определяет все строки, в которых отсутствует одно или несколько значений:
Или вы можете создать другой расчет в зависимости от количества незаполненных позиций. Например, если в диапазоне нет пустот (т.е. если СЧИТАТЬПУСТОТЫ возвращает 0), сложите цифры продаж, в противном случае покажите предупреждение:
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(B2:D2)=0; СУММ(B2:D2); «Пустые»)
То есть, сумма за квартал будет рассчитана только тогда, когда будут заполнены все данные по месяцам.
Как подсчитать пустые строки в Excel.
Предположим, у вас есть таблица, в которой некоторые строки содержат информацию, а другие полностью не заполнены. Возникает вопрос — как получить количество строк, в которых ничего не содержится?
Самое простое решение, которое приходит в голову, — это добавить вспомогательный столбец Е и заполнить его формулой СЧИТАТЬПУСТОТЫ, которая находит количество чистых позиций в каждой строке:
= СЧИТАТЬПУСТОТЫ(A2:E2)
А затем используйте функцию СЧЁТЕСЛИ, чтобы узнать, в каком количестве строк все позиции пусты. Поскольку наша исходная таблица содержит 4 столбца (от A до D), мы подсчитываем строки с четырьмя пустыми клетками:
=СЧЁТЕСЛИ(E2:E10;4)
Вместо жесткого указания количества столбцов вы можете использовать функцию ЧИСЛСТОЛБ (COLUMNS в английской версии) для его автоматического вычисления:
=СЧЁТЕСЛИ(E2:E10;ЧИСЛСТОЛБ(A2:D10))
Если вы не хотите портить структуру красиво оформленного рабочего листа, вы можете добиться того же результата с помощью гораздо более сложной формулы, которая, однако, не требует никаких вспомогательных столбцов:
=СУММ(—(МУМНОЖ(—(A2:D10<>»»); СТРОКА(ДВССЫЛ(«A1:A»&ЧИСЛСТОЛБ(A2:D10))))=0))
Разберём, как это работает:
- Сначала вы проверяете весь диапазон на наличие непустых ячеек с помощью выражения типа A2:D10 <> «», а затем приводите возвращаемые логические значения ИСТИНА и ЛОЖЬ к 1 и 0 с помощью двойного отрицания (—). Результатом этой операции является двумерный массив единиц (означают непустые ячейки) и нулей (пустые).
- При помощи СТРОКА создаётся вертикальный массив числовых ненулевых значений, в котором количество элементов равно количеству столбцов диапазона. В нашем случае диапазон состоит из 4 столбцов (A2:В10), поэтому мы получаем такой массив: {1; 2; 3; 4}
- Функция МУМНОЖ вычисляет матричное произведение вышеупомянутых массивов и выдает результат вида: {7; 10; 6; 0; 5; 6; 0; 5; 6}. В этом массиве для нас имеет значение только нулевые значения, указывающие на строки, в которых все клетки пусты.
- Наконец, вы сравниваете каждый элемент полученного выше массива с нулем, приводите ИСТИНА и ЛОЖЬ к 1 и 0, а затем суммируете элементы этого последнего массива: {0; 0; 0; 1; 0; 0; 1; 0; 0}. Помня, что 1 соответствуют пустым строкам, вы получите желаемый результат.
Если приведенная выше формула кажется вам слишком сложной для понимания, возможно, вам больше понравится эта:
{=СУММ(—(СЧЁТЕСЛИ(ДВССЫЛ(«A»&СТРОКА(A2:A10) & «:D»&СТРОКА(A2:A10));»<>»&»»)=0)) }
Здесь вы используете функцию СЧЁТЕСЛИ, чтобы узнать, сколько значений содержится в каждой строке, а ДВССЫЛ «подает» строки в СЧЁТЕСЛИ одну за другой. Результатом этой операции является массив вида {3; 4; 3; 0; 2; 3; 0; 2; 3}. Проверка на 0 преобразует указанный выше массив в {0; 0; 0; 1; 0; 0; 1; 0; 0}, где единицы представляют пустые строки. Вам остается просто сложить эти цифры.
Обратите также внимание, что это формула массива.
На скриншоте выше вы можете увидеть результат работы этих двух формул.
Также следуем отметить важную особенность работы этих выражений с псевдо-пустыми ячейками. Добавим в C5
=ЕСЛИ(1=1; «»)
Внешне таблица никак не изменится, поскольку эта формула возвращает пустоту. Однако, второй вариант подсчёта обнаружит её присутствие. Ведь если что-то записано, значит, ячейка уже не пустая. По этой причине результат количества пустых строк будет изменён с 2 на 1.
Подсчет действительно пустых ячеек.
Во всех предыдущих примерах мы подсчитывали позиции, включая те, которые кажутся пустыми, но на самом деле содержат пустоту («»), возвращаемую некоторыми формулами. Если вы хотите исключить их из результата подсчета, вы можете использовать эту общую формулу:
ЧСТРОК( диапазон ) * ЧИСЛСТОЛБ( диапазон ) — СЧЁТЗ( диапазон )
Формула умножает количество строк на количество столбцов, чтобы получить общее количество клеток в диапазоне, из которого вы затем вычитаете количество непустых значений, возвращаемых СЧЁТЗ. Как вы помните, функция СЧЁТ в Excel рассматривает значения «» как непустые ячейки. Поэтому они не будут включены в окончательный результат.
Например, чтобы определить количество абсолютно пустых клеток в диапазоне A2: A8, используйте следующую формулу:
=ЧСТРОК(A2:A8)*ЧИСЛСТОЛБ(A2:A8)-СЧЁТЗ(A2:A8)
На скриншоте ниже показан результат:
Как видите, псевдо-пустая ячейка с формулой здесь не учитывается.
Вот как можно сосчитать пустые и непустые ячейки в Excel. Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Не стесняйтесь делиться любыми другими подсказками, которые могут у вас возникнуть. Будьте счастливы и преуспевайте в Excel!
Также рекомендуем:
НАЙТИ, НАЙТИБ (функции НАЙТИ, НАЙТИБ)
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
В этой статье описаны синтаксис формулы и использование функций НАЙТИ и НАЙТИБ в Microsoft Excel.
Описание
Функции НАЙТИ и НАЙТИБ находят вхождение одной текстовой строки в другую и возвращают начальную позицию искомой строки относительно первого знака второй строки.
Важно:
-
Эти функции могут быть доступны не на всех языках.
-
Функция НАЙТИ предназначена для языков с однобайтовой кодировкой, а функция НАЙТИБ — для языков с двухбайтовой кодировкой. Заданный на компьютере язык по умолчанию влияет на возвращаемое значение указанным ниже образом.
-
Функция НАЙТИ при подсчете всегда рассматривает каждый знак, как однобайтовый, так и двухбайтовый, как один знак, независимо от выбранного по умолчанию языка.
-
Функция НАЙТИБ при подсчете рассматривает каждый двухбайтовый знак как два знака, если включена поддержка языка с БДЦС и такой язык установлен по умолчанию. В противном случае функция НАЙТИБ рассматривает каждый знак как один знак.
К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.
Синтаксис
НАЙТИ(искомый_текст;просматриваемый_текст;[нач_позиция])
НАЙТИБ(искомый_текст;просматриваемый_текст;[нач_позиция])
Аргументы функций НАЙТИ и НАЙТИБ описаны ниже.
-
Искомый_текст — обязательный аргумент. Текст, который необходимо найти.
-
Просматриваемый_текст — обязательный аргумент. Текст, в котором нужно найти искомый текст.
-
Начальная_позиция — необязательный аргумент. Знак, с которого нужно начать поиск. Первый знак в тексте «просматриваемый_текст» имеет номер 1. Если номер опущен, он полагается равным 1.
Замечания
-
Функции НАЙТИ и НАЙТИБ работают с учетом регистра и не позволяют использовать подстановочные знаки. Если необходимо выполнить поиск без учета регистра или использовать подстановочные знаки, воспользуйтесь функцией ПОИСК или ПОИСКБ.
-
Если в качестве аргумента «искомый_текст» задана пустая строка («»), функция НАЙТИ выводит значение, равное первому знаку в строке поиска (знак с номером, соответствующим аргументу «нач_позиция» или 1).
-
Искомый_текст не может содержать подстановочные знаки.
-
Если find_text не отображаются в within_text, find и FINDB возвращают #VALUE! значение ошибки #ЗНАЧ!.
-
Если start_num не больше нуля, то найти и найтиБ возвращает значение #VALUE! значение ошибки #ЗНАЧ!.
-
Если start_num больше, чем длина within_text, то поиск и НАЙТИБ возвращают #VALUE! значение ошибки #ЗНАЧ!.
-
Аргумент «нач_позиция» можно использовать, чтобы пропустить нужное количество знаков. Предположим, например, что для поиска строки «МДС0093.МесячныеПродажи» используется функция НАЙТИ. Чтобы найти номер первого вхождения «М» в описательную часть текстовой строки, задайте значение аргумента «нач_позиция» равным 8, чтобы поиск в той части текста, которая является серийным номером, не производился. Функция НАЙТИ начинает со знака 8, находит искомый_текст в следующем знаке и возвращает число 9. Функция НАЙТИ всегда возвращает номер знака, считая от левого края текста «просматриваемый_текст», а не от значения аргумента «нач_позиция».
Примеры
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Данные |
||
Владимир Егоров |
||
Формула |
Описание |
Результат |
=НАЙТИ(«В»;A2) |
Позиция первой «В» в ячейке A2 |
1 |
=НАЙТИ(«в»;A2) |
Позиция первой «в» в ячейке A2 |
6 |
=НАЙТИ(«и»;A2;3) |
Позиция первой «и» в строке А2, начиная с третьего знака |
8 |
Пример 2
Данные |
||
Керамический изолятор №124-ТД45-87 |
||
Медная пружина №12-671-6772 |
||
Переменный резистор №116010 |
||
Формула |
Описание (результат) |
Результат |
=ПСТР(A2;1;НАЙТИ(» №»;A2;1)-1) |
Выделяет текст от позиции 1 до знака «№» в строке («Керамический изолятор») |
Керамический изолятор |
=ПСТР(A3;1;НАЙТИ(» №»;A3;1)-1) |
Выделяет текст от позиции 1 до знака «№» в ячейке А3 («Медная пружина») |
Медная пружина |
=ПСТР(A4;1;НАЙТИ(» №»;A4;1)-1) |
Выделяет текст от позиции 1 до знака «№» в ячейке А4 («Переменный резистор») |
Переменный резистор |
Нужна дополнительная помощь?
Здравствуйте, форумчане! В Excel-e не новичок, пользуюсь давно, но вот перемкнуло: не получается построить формулу, выбирающую значение из первой непустой ячейки столбца. До сих пор использовал макросы или обходные пути, но чувствую, что должно быть более простое и быстрое решение. Устроит любая форма адресации — ссылка, смещение, номер строки. Заранее спасибо!
Позицию первой непустой ячейки можно вернуть так:
=ПОИСКПОЗ(«?»;A1:A10&»»;) — формула массива (текст и числа)
или:
=ПОИСКПОЗ(«*»;A1:A10 — обычная формула (только текст)
Ну и соответственно возврат самих значений:
=ВПР(«?»;A1:A10&»»;1;) — формула массива (текст и числа) — возвращает числа также в виде текста.
и
=ВПР(«*»;A1:A10;1;) — обычная формула (только текст)
Webmoney: E350157549801 Z116603216205 R268084006579
Не «массивная» формула для поиска номера строки:
=СУММПРОИЗВ(ПОИСКПОЗ(«*?*»;(«»&A1:A23);0))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453
Ну раз такое дело, во еще
=ПРОСМОТР(«»;A1:A10&»»;A2:A11)
Webmoney: E350157549801 Z116603216205 R268084006579
Цитата: Axacal от 27.06.2011, 13:40
Формула =ПРОСМОТР(«»;A1:A10&»»;A2:A11) на столбце со смещанным содержимым (пустые клетки, текст, числа) вообще ведет себя некорректно.
У меня работает, см. вложение.
Заодно добавил ещё свой вариантик формулы, который не предлагали ранее.
Цитата: Axacal от 27.06.2011, 13:40
Что означает приклеивание амперсандом пробела к адресу массива (A1:A10&»»)?
Замена пустых строк строками нулевой длинны.
Еще вариант немассивной:
=ПОИСКПОЗ("*?";ИНДЕКС(""&A1:A23;);)
ЦитироватьКстати, что означает приклеивание амперсандом пробела к адресу массива (A1:A10&»»)?
цифры в массиве становятся текстовыми данными
Хочется добавить:
Сцепляется не с пробелом, а со строкой нулевой длины.
Для корректной работы формулы: =ПРОСМОТР(«»;A1:A10&»»;A2:A11) требуется хотябы одна пустая верхняя ячейка.
Webmoney: E350157549801 Z116603216205 R268084006579
Возникла похожая, но «обратная» задача: найти первую пустую строку.
В принципе, мне удались решения с доп. столбцом и с формулой массива, но хочется упростить задачу.
Есть ли у кого-нибудь идеи?
пока придумалась такая формула массива:
=СУММ(C4:ИНДЕКС(C4:$C$13;ПОИСКПОЗ(» «;» «&B4:$B$13;0))*D4:ИНДЕКС(D4:$D$13;ПОИСКПОЗ(» «;» «&B4:$B$13;0)))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453