Выбрать ненулевые значения excel
Эта заметка продолжает цикл материалов по использованию формул массива. Если ранее вы не сталкивались с формулами массива, рекомендую прочитать:
После этого вы, вероятно, сможете оценить возможности и достоинства формул массива, и вам захочется узнать о них побольше. Если вас не нужно агитировать, и вы полны желания разобраться в этом мощном оружии Excel, но не знаете, с чего начать, прочитайте Введение в формулы массива и Некоторые примеры использования формул массива
Основное достоинство формул массивов состоит в том, что они позволяют выполнять очень широкий круг вычислений, который другими способами выполнить нельзя. К сожалению, формулы массивов – это наиболее сложное и непонятное средство Excel.
Если вы уже постигли азы, предлагаю вам продолжить знакомство с формулами массива вместе с Джоном Уокенбахом и его книгой MS Excel 2007. Библия пользователя. – М.: Издательский дом «Вильямс», 2008. – 816 с.
Вычисление среднего, не учитывающего нулевые значения
На рис. 1 показан рабочий лист, на котором вычисляется средний объем продаж группы продавцов. Формула в ячейке В14 имеет вид: =СРЗНАЧ(Продажи). Она вычисляет среднее значений из диапазона ВЗ:В10, которому присвоено имя Продажи. Некоторые продавцы не работали, но они также учитывались при вычислении среднего. Функция СРЗНАЧ игнорирует пустые ячейки, но учитывает ячейки с нулевыми значениями.
Следующая формула массива, записанная в ячейке В15, возвращает среднее без учета ячеек, содержащих 0: <=СРЗНАЧ(ЕСЛИ(Продажи>0;Продажи))>. Эта формула создает виртуальный массив, содержащий только ненулевые значения из диапазона Продажи. Этот массив используется в качестве аргумента в функции СРЗНАЧ.
Тот же результат можно получить с помощью обычной формулы (не формулы массива), записанной в ячейке В16: =СУММ(Продажи)/СЧЁТЕСЛИ(Продажи;»>0″). Эта формула использует функцию СЧЁТЕСЛИ для определения числа ненулевых значений в заданном диапазоне, на которое затем делится сумма значений этого диапазона.
Если диапазон может содержать отрицательные значения, и по-прежнему необходимо подсчитать среднее, не учитывающее нулевые значения, формулу массива нужно немного модифицировать: <=СРЗНАЧ(ЕСЛИ(Продажи<>0;Продажи))>
= Мир MS Excel/Статьи об Excel
Приёмы работы с книгами, листами, диапазонами, ячейками [6] |
Приёмы работы с формулами [13] |
Настройки Excel [3] |
Инструменты Excel [4] |
Интеграция Excel с другими приложениями [4] |
Форматирование [1] |
Выпадающие списки [2] |
Примечания [1] |
Сводные таблицы [1] |
Гиперссылки [1] |
Excel и интернет [1] |
Excel для Windows и Excel для Mac OS [2] |
Исходные данные
Исходными данными может быть любой числовой набор данных, таких как горизонтальный или вертикальный диапазон, двумерный массив или даже не смежные диапазоны или отдельно заполненные ячейки. Для удобства я взял одномерный вертикальный массив А1:А5
Для решения этой задачи можно использовать как дополнительный столбец с промежуточной формулой, так и одну формулу массива
1. Решение с дополнительным столбцом
В В1 напишите формулу
и скопируйте её на диапазон В2:В5. Эта промежуточная формула в дополнительном столбце будет "убирать" из исходных данных нули, заменяя их на пустую строку ""
В С1 напишите формулу
Она и вернёт искомый результат - число 3
Если в диапазоне есть отрицательные числа, то вместо формулы
Как это работает: Вот эта часть формулы A1:A5<>0 формирует массив , после чего применяя функцию ЕСЛИ() мы преобразуем массив в следующий: . Так как функция МИН() игнорирует текстовые и логические значения, то в итоге получаем искомое - число 3
Если в диапазоне есть отрицательные числа, то вместо формулы
Как это работает: С помощью функции СЧЁТЕСЛИ мы подсчитываем количество нулей в диапазоне и прибавив к этому количеству единицу мы возвращаем первое наименьшее число более нуля с помощью функции НАИМЕНЬШИЙ
Если в диапазоне есть отрицательные числа, то вместо формулы
Примечание: Решение формулой массива можно применять не только к данным находящимся на листе, но и для виртуальных массивов
В файле -примере приведены все решения, включая варианты для диапазонов, содержащих отрицательные числа
0 Спам
В формулах маленькая ошибка. Перед словом СЧЁТЕСЛИ должна стоять запятая, а не ;
=НАИМЕНЬШИЙ(A1:A5;СЧЁТЕСЛИ(A1:A5;" <=0")+1)
=НАИМЕНЬШИЙ(A1:A5,СЧЁТЕСЛИ(A1:A5;"<=0")+1)
0
Alexey19781978, не путайте тех, кто будет читать статью
Разделители можно задавать любые, я в статье использовал те, которые используются в русской локали по умолчанию
0 Спам
Все работает как надо. Хотелось бы также рассмотреть примеры, как получить список ненулевых, неотрицательных, непустых, числовых или только текстовых значений.
Спасибо!
0 Спам
Формулы хорошие, но очень прошу добавить измененную формулу =МИН(ЕСЛИ(A1:A5<>0;A1:A5)) так, чтобы она работала для несмежных диапазонов (не A1:A5 а например A1; B2; C3)/
На практике часто возникает необходимость быстро найти значение последней (крайней) непустой ячейки в строке или столбце таблицы. Предположим, для примера, что у нас есть вот такая таблица с данными продаж по нескольким филиалам:
Задача: найти значение продаж в последнем месяце по каждому филиалу, т.е. для Москвы это будет 78, для Питера - 41 и т.д.
Если бы в нашей таблице не было пустых ячеек, то путь к решению был бы очевиден - можно было бы посчитать количество заполненных ячеек в каждой строке и брать потом ячейку с этим номером. Но филиалы работают неравномерно: Москва простаивала в марте и августе, филиал в Тюмени открылся только с апреля и т.д., поэтому такой способ не подойдет.
Универсальным решением будет использование функции ПРОСМОТР (LOOKUP) :
У этой функции хитрая логика:
- Она по очереди (слева-направо) перебирает непустые ячейки в диапазоне (B2:M2) и сравнивает каждую из них с искомым значением (9999999).
- Если значение очередной проверяемой ячейки совпало с искомым, то функция останавливает просмотр и выводит содержимое ячейки.
- Если точного совпадения нет и очередное значение меньше искомого, то функция переходит к следующей ячейке в строке.
Легко сообразить, что если в качестве искомого значения задать достаточно большое число, то функция пройдет по всей строке и, в итоге, выдаст содержимое последней проверенной ячейки. Для компактности, можно указать искомое число в экспоненциальном формате, например 1E+11 (1*10 11 или сто миллиардов).
Если в таблице не числа, а текст, то идея остается той же, но "очень большое число" нужно заменить на "очень большой текст":
Применительно к тексту, понятие "большой" означает код символа. В любом шрифте символы идут в следующем порядке возрастания кодов:
- латиница прописные (A-Z)
- латиница строчные (a-z)
- кириллица прописные (А-Я)
- кириллица строчные (а-я)
Поэтому строчная "я" оказывается буквой с наибольшим кодом и слово из нескольких подряд "яяяяя" будет, условно, "очень большим словом" - заведомо "большим", чем любое текстовое значение из нашей таблицы.
Вот так. Не совсем очевидное, но красивое и компактное решение. Для поиска последней непустой ячейки в столбцах работает тоже "на ура".
Получить первое непустое значение в столбце или строке
Чтобы получить первое значение (первая ячейка, которая не пуста, без учета ошибок) из диапазона из одного столбца или одной строки, вы можете использовать формулу, основанную на ИНДЕКС и МАТЧ функции. Однако, если вы не хотите игнорировать ошибки из вашего диапазона, вы можете добавить функцию 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) )
Связанные функции
Функция ИНДЕКС Excel возвращает отображаемое значение на основе заданной позиции из диапазона или массива.
Функция ПОИСКПОЗ в Excel ищет определенное значение в диапазоне ячеек и возвращает относительное положение значения.
Связанные формулы
Если вам нужно найти информацию, указанную в Excel, о конкретном продукте, фильме или человеке и т. Д., Вы должны хорошо использовать комбинацию функций ИНДЕКС и ПОИСКПОЗ.
Чтобы получить первое текстовое значение из диапазона с одним столбцом, вы можете использовать формулу, основанную на функциях ИНДЕКС и ПОИСКПОЗ, а также формулу, основанную на функции ВПР.
Есть случаи, когда вам нужно получить позицию первого частичного совпадения, которое содержит определенное число в диапазоне числовых значений в Excel. В этом случае формула ПОИСКПОЗ и ТЕКСТ, содержащая звездочку (*), подстановочный знак, который соответствует любому количеству символов, окажет вам услугу. И если вам также нужно знать точное значение в этой позиции, вы можете добавить в формулу функцию ИНДЕКС.
Есть случаи, когда вам нужно получить позицию первого частичного совпадения, которое содержит определенное число в диапазоне числовых значений в Excel. В этом случае формула ПОИСКПОЗ и ТЕКСТ, содержащая звездочку (*), подстановочный знак, который соответствует любому количеству символов, окажет вам услугу. И если вам также нужно знать точное значение в этой позиции, вы можете добавить в формулу функцию ИНДЕКС.
Лучшие инструменты для работы в офисе
Kutools for Excel - поможет вам выделиться из толпы
Хотите быстро и безупречно выполнять свою повседневную работу? Kutools for Excel предлагает мощные расширенные функции 300 (объединение книг, сумма по цвету, разделение содержимого ячеек, дата преобразования и т. Д.) И экономия 80% времени для вас.
Для подсчета общего количества ячеек с ненулевыми значениями в Excel здесь мы покажем вам два метода. Пожалуйста, просмотрите для более подробной информации.
Подсчитайте количество ячеек с ненулевыми значениями по формуле
Предположим, у вас есть ряд данных, как показано на скриншоте ниже. Чтобы подсчитать количество ячеек с ненулевыми значениями, сделайте следующее.
1. Выберите пустую ячейку для отображения результата подсчета (здесь я выбираю ячейку H1). Скопируйте и вставьте формулу = СЧЁТЕСЛИ (A1: E8; «<> 0») в Панель формул, а затем нажмите Enter ключ. Смотрите скриншот:
2. Затем подсчитывается общее количество ненулевых значений выбранного диапазона и отображается в ячейке H1.
Заметки:
1. С помощью приведенной выше формулы вы можете подсчитать ненулевые ячейки, включая пустые. Если вы хотите игнорировать как нулевые, так и пустые ячейки, примените эту формулу: =COUNTA(A1:D10)-COUNTIF(A1:D10,"=0") , Затем нажмите Enter ключ для получения результата, см. снимок экрана:
2. С помощью приведенных выше формул вы можете подсчитать общее количество ячеек с ненулевыми значениями в строке, столбце или диапазоне в Excel, изменив ссылки на ячейки в формуле.
Подсчитайте количество ячеек с ненулевыми значениями с помощью Kutools for Excel
Помимо формул, Выбрать определенные ячейки полезности Kutools for Excel может помочь вам быстро подсчитать количество ячеек с ненулевыми значениями в Excel.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1. Выберите диапазон, в котором вы хотите подсчитать количество ненулевых ячеек. Затем нажмите Кутулс > Выберите > Выбрать определенные ячейки. Смотрите скриншот:
2. Во всплывающем Выбрать определенные ячейки диалоговое окно, выберите Ячейка в Тип выбора раздел укажите Не равно в Конкретный тип раскрывающийся список и введите номер 0 в пустое поле. Наконец нажмите кнопку OK кнопка. Смотрите скриншот:
3. Затем появится диалоговое окно, в котором указано, сколько ячеек с ненулевыми значениями существует в выбранном диапазоне. И он уже напрямую исключил пустые ячейки. Щелкните значок OK кнопки, эти ячейки выбираются немедленно.
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Читайте также: