Получить первое числовое значение в столбце или строке
Чтобы получить первое числовое значение из диапазона из одного столбца или одной строки, вы можете использовать формулу, основанную на ИНДЕКС, МАТЧ и ISNUMBER функций.
Как получить первое числовое значение в списке?
Чтобы получить первое числовое значение в списке как показано выше, комбинация функций ИНДЕКС, ПОИСКПОЗ и ЕЧИСЛО поможет вам в этом: функция ЕЧИСЛО проверяет каждое значение в списке, являются ли они числами или нет. Затем функция ПОИСКПОЗ выполняет точное совпадение, чтобы определить положение первого числового значения. Затем INDEX получит значение в этой позиции.
Общий синтаксис
=INDEX(range,MATCH(TRUE,ISNUMBER(range),0))
√ Примечание. Это формула массива, требующая ввода с помощью Ctrl + Shift + Enter.
- ассортимент: Диапазон из одного столбца или одной строки, из которого нужно вернуть первое числовое значение.
Чтобы получить первое числовое значение в списке, скопируйте или введите формулу ниже в ячейку E4 и нажмите Ctrl + Shift + Enter чтобы получить результат:
= ИНДЕКС (B4: B15, ПОИСКПОЗ (ИСТИНА; ЕДИНИЦА (B4: B15), 0))
Пояснение формулы
=INDEX(B4:B15,MATCH(TRUE,ISNUMBER(B4:B15),0))
- ЕЧИСЛО (B4: B15): Функция ЕЧИСЛО оценивает каждое значение в диапазоне B4: B15. Он вернет ИСТИНА, если значение является числом, иначе ЛОЖЬ. Итак, он сгенерирует такой массив: {ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА}.
- МАТЧ (ИСТИНА;ЕЧИСЛО (B4: B15), 0) = МАТЧ (ИСТИНА;{ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА}, 0): Наблюдения и советы этой статьи мы подготовили на основании опыта команды match_type 0 заставляет функцию ПОИСКПОЗ возвращать позицию первого ИСТИНА значение в массиве. Итак, функция вернет 4.
- ПОКАЗАТЕЛЬ(B4: B15,МАТЧ (ИСТИНА;ЕЧИСЛО (B4: B15), 0)) = ПОКАЗАТЕЛЬ(B4: B15,4): Затем функция ИНДЕКС возвращает 4ое значение диапазона B4: B15, Которая является 99.
Связанные функции
Функция ИНДЕКС в Excel
Функция ИНДЕКС Excel возвращает отображаемое значение на основе заданной позиции из диапазона или массива.
Функция ПОИСКПОЗ в Excel
Функция ПОИСКПОЗ в Excel ищет определенное значение в диапазоне ячеек и возвращает относительное положение значения.
Связанные формулы
Получить n-е совпадение с помощью INDEX
Чтобы найти n-е совпадение значения из диапазона и получить соответствующие данные, вы можете использовать формулу, основанную на функциях ИНДЕКС, СТРОКА, НАИМЕНЬШИЙ и ЕСЛИ.
Лучшие инструменты для работы в офисе
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.
Комментарии (0)
Оценок пока нет. Оцените первым!
Мы уже научились находить позицию первой буквы в ячейке, формула поиска позиции числа имеет схожий принцип – превращает строку в массив символов и проверяет каждый на принадлежность к цифрам.
Вариант 1
{=ПОИСКПОЗ(ЛОЖЬ;ЕОШ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)-1);0)}
Как она это делает? Из массива вычитается единица (это может быть любое число), далее полученный массив ошибок и валидных значений обрабатывается функцией ЕОШ. Ошибки вычисления (там, где были нечисловые символы) вернут ИСТИНА, цифровые символы – ЛОЖЬ.
Функция ПОИСКПОЗ возвращает позицию первой цифры через поиск первого значения ЛОЖЬ.
Как и все формулы массива в Excel, данная формула вводится сочетанием клавиш Ctrl+Shift+Enter.
Вариант 2
Есть и вот такая вариация формулы массива, использующая функции МИН, ПОИСК, СИМВОЛ и ЕСЛИОШИБКА:
{=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА(48:57));A1);""))}
Её принцип несколько иной –
- каждый из 10 цифровых символов ищется внутри строки функцией ПОИСК, возвращающей в успешных случаях его позицию, а в неуспешных – ошибку
- массив результатов обрабатывается функцией ЕСЛИОШИБКА и вместо ошибок вставляет в массив пустоты, чтобы из-за ошибок не прерывалась работа функции МИН
- результирующий массив обрабатывает функция МИН и возвращает минимальную из позиций – это и есть позиция первой цифры в ячейке
Функция более требовательна к ресурсам компьютера (строковые функции “дороже” математических), поэтому рекомендуется первый вариант.
Применение формул
Наиболее понятное применение – это когда нужно отделить в ячейке текст от цифр или удалить текст до первой цифры.
В этой статье мы посмотрим как по дате можно вернуть первое число данного месяца в Excel.
В комментариях к данной статье дали 2 более удобных способа:
=ДАТА(ГОД(E7);МЕСЯЦ(E7);1)
=КОНМЕСЯЦА(E7;-1)+1
То есть, например у нас есть ячейка с произвольной датой — например 30.08.2016. Нам необходимо по данной дате с помощью формул найти 01.08.2016 года. Стандартными способами я не нашел как это можно сделать. Можно по дате найти месяц, а вот первое число данного месяца нет.
В комментария задали вопрос, который и сподвиг написать данную статью о том как найти первое число месяца по дате.
Добрый день. Как написать формулу, где в двух ячейках нужно указать начало месяца и конец этого месяца, конец месяца он берет автоматически из другой ячейки (то есть она уже задаётся). Написал формулу ячейки дата -30, но когда в месяце 30 дней это формула не годиться (получается конец предыдущего месяца).
Решение задачи будет выглядеть следующим образом.
=ЗНАЧЕН("01."&ТЕКСТ(A1;"ММ")&"."&ТЕКСТ(A1;"ГГГГ"))
Где в A1 — дата, по которой нам необходимо определить 1 число этого месяца.
Суть решения задачи следующая:
1. Находим месяц указанной даты. Указав «ММ» — мы найдем месяц в формате двух чисел. Так, например август месяц будет 08, а не просто 8
ТЕКСТ(A1;"ММ")
2. Находим год указанной даты в формате 4-х чисел. В нашем случае это 2016
ТЕКСТ(A1;"ГГГГ")
3. С помощью знака & склеиваем первое число месяца 01 с полученными данными
01.+08+"."+2016
В итоге мы получаем 01.08.2016 — но это еще только текст. Чтобы он преобразовался в дату. Выражение нужно вставить в функцию ЗНАЧЕН()
На чтение 7 мин. Просмотров 30k.
Содержание
- Получить первое не пустое значение в списке
- Получить первое текстовое значение в списке
- Получить первое текстовое значение с ГПР
- Получить позицию последнего совпадения
- Получить последнее совпадение содержимого ячейки
- Получить n-е совпадение
- Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ
- Получить n-ое совпадение с ВПР
- Если ячейка содержит одну из многих вещей
- Поиск первой ошибки
- Поиск следующего наибольшего значения
- Несколько совпадений в списке, разделенных запятой
- Частичное совпадение чисел с шаблоном
- Частичное совпадение с ВПР
- Положение первого частичного совпадения
Получить первое не пустое значение в списке
{ = ИНДЕКС( диапазон ; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( диапазон ); 0 )) }
Если вам нужно получить первое не пустое значение (текст или число) в диапазоне в одной колонке вы можете использовать формулу массива на основе функций ИНДЕКС, ПОИСКПОЗ и ЕПУСТО.
В данном примере мы используем эту формулу:
{ = ИНДЕКС( B3: B11; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( B3: B11 ); 0 )) }
Таким образом, суть проблемы заключается в следующем: мы хотим получить первую не пустую ячейку, но для этого нет конкретной формулы в Excel. Мы могли бы использовать ВПР с шаблоном *, но это будет работать только для текста, а не для чисел.
Таким образом, нам нужно строить функциональные возможности для нужных нам формул. Способ сделать это состоит в использовании функции массива, которая «тестирует» ячейки и возвращает массив истина/ложь значения, которые мы можем сопрягать с ПОИСКПОЗ.
Работая изнутри, ЕПУСТО оценивает ячейки в диапазоне В3: В11 и возвращает результат и массив, который выглядит следующим образом:
{ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА}
Каждая ЛОЖЬ представляет собой ячейку в диапазоне, который не является пустой.
Далее, ПОИСКПОЗ ищет ЛОЖЬ внутри массива и возвращает позицию первого наденного совпадения, в этом случае 2. На данный момент, формула в примере теперь выглядит следующим образом:
{ = ИНДЕКС( B3: B11; 2; 0 )) }
И, наконец, функция ИНДЕКС выводит значение в положении 2 в массиве, в этом случае число 10.
Получить первое текстовое значение в списке
= ВПР ( «*»; диапазон; 1; ЛОЖЬ)
Если вам нужно получить первое текстовое значение в списке (диапазон один столбец), вы можете использовать функцию ВПР, чтобы установить точное соответствие, с шаблонным символом для поиска.
В данном примере формула в D7 является:
= ВПР ( «*» ; B5: B11 ; 1 ; ЛОЖЬ)
Групповой символ звездочка (*) соответствует любому текстовому значению.
Получить первое текстовое значение с ГПР
= ГПР ( «*»; диапазон; 1; ЛОЖЬ)
Для поиска и получения первого текстового значения во всем диапазоне столбцов, вы можете использовать функцию ГПР с групповым символом. В примере формула в F5 является:
= ГПР ( «*»; С5: Е5; 1; 0 )
Значение поиска является «*», групповым символом, который соответствует одному или более текстовому значению.
Получить позицию последнего совпадения
{ = МАКС( ЕСЛИ ( Величины = знач ; СТРОКА(величина) — СТРОКА(ИНДЕКС( Величины; 1 ; 1 )) + 1 )) }
Для того, чтобы получить позицию последнего совпадения (т.е. последнего вхождения) от значения поиска, вы можете использовать формулу, основанную на ЕСЛИ, СТРОКА, ИНДЕКС, ПОИСКПОЗ и MAКС функций.
В примере формула в G6:
=МАКС(ЕСЛИ(B4:B11=G5;СТРОКА(B4:B11)-СТРОКА(ИНДЕКС(B4:B11;1;1))+1))
Суть этой формулы состоит в том, что мы строим список номеров строк для данного диапазона, соответствующие по значению, а затем используем функцию MAКС, чтобы получить наибольшее количество строк, что соответствует последнему значению соответствия.
Получить последнее совпадение содержимого ячейки
= ПРОСМОТР( 2 ; 1 / ПОИСК ( вещи ; А1 ); вещи )
Чтобы проверить ячейку для одной из нескольких вещей, и вернуть последнее совпадение, найденное в списке, вы можете использовать формулу, основанную на ПРОСМОТР и ПОИСК функций. В случае нескольких найденных совпадений, формула вернет последнее совпадение из списка «вещей».
В примере формула в С5:
=ПРОСМОТР(2;1/ПОИСК($E$4:$E$7;B4);$E$4:$E$7)
Получить n-е совпадение
= НАИМЕНЬШИЙ( ЕСЛИ( логический тест; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); n )
Для того, чтобы получить позицию n-го совпадения (например, второе значение соответствия заданному, третье значение соответствия и т.д.), вы можете использовать формулу, основанную на функции НАИМЕНЬШИЙ.
= НАИМЕНЬШИЙ( ЕСЛИ( список = E5 ; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); F5 )
Эта формула возвращает позицию второго появления «красных» в списке.
Сутью этой формулы является функция НАИМЕНЬШИЙ, которая просто возвращает n-е наименьшее значение в списке значений, которое соответствует номеру строки. Номера строк были «отфильтрованы» функцией ЕСЛИ, которая применяет логику для совпадения.
Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ
{ = ИНДЕКС( массив; НАИМЕНЬШИЙ( ЕСЛИ( величины = знач ; СТРОКА ( величины ) — СТРОКА ( ИНДЕКС( величины; 1 ; 1 )) + 1 ); n-й )) }
Чтобы получить n-ое совпадение, используя ИНДЕКС и ПОИСКПОЗ, вы можете использовать формулу массива с функциями ЕСЛИ и НАИМЕНЬШИЙ, чтобы выяснить номер строки совпадения.
Получить n-ое совпадение с ВПР
= ВПР( id_формулы; стол; 4; 0 )
Чтобы получить n-ое совпадение с ВПР, вам необходимо добавить вспомогательный столбец в таблицу , которая строит уникальный идентификатор , который включает счетчик.
Эта формула зависит от вспомогательного столбца, который добавляется в качестве первого столбца таблицы исходных данных. Вспомогательный столбец содержит формулу, которая строит уникальное значение взгляда вверх от существующего идентификатора и счетчика. Счетчик подсчитывает сколько раз уникальный идентификатор появился в таблице данных.
В примере, формула ячейки J6 вспомогательного столбца выглядит следующим образом:
=ВПР(J3&»-«&I6;B4:G11;4;0)
Если ячейка содержит одну из многих вещей
{ = ИНДЕКС( результаты ;ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК( вещи ; A1 )); 0 )) }
Чтобы проверить ячейку для одной из нескольких вещей, и вернуть пользовательский результат для первого найденного совпадения, вы можете использовать формулу ИНДЕКС/ПОИСКПОЗ, основанную на функции поиска.
{ = ИНДЕКС( результаты ; ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК ( вещи ; B5 )); 0 )) }
Эта формула использует два названных диапазона: E5: E8 называется «вещи» и F5: F8 называется «Результаты». Убедитесь, что вы используете диапазоны имен с одинаковыми именами (на основе ваших данных). Если вы не хотите использовать именованные диапазоны, используйте абсолютные ссылки вместо этого.
Поиск первой ошибки
{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА(диап ); 0 ) }
Если вам нужно найти первую ошибку в диапазоне ячеек, вы можете использовать формулу массива, основанную на ПОИСКПОЗ и ЕОШИБКА функциях.
В приведенном примере формула:
{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА( B4: B11 ); 0 ) }
Работая изнутри, функция ЕОШИБКА возвращает значение ИСТИНА, если значение является признанной ошибкой, и ЛОЖЬ, если нет.
Когда дается диапазон ячеек (массив ячеек) функция ЕОШИБКА будет возвращать массив истина/ложь значений. В примере, это результирующий массив выглядит следующим образом:
{ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ}
Обратите внимание, что 6-е значение (что соответствует 6-й ячейке в диапазоне) истинно, так как ячейка В9 содержит #Н/A.
Поиск следующего наибольшего значения
=ИНДЕКС ( данные; ПОИСКПОЗ( поиск ; значения ) + 1 )
Для того, чтобы найти «следующее наибольшее» значение в справочной таблице, можно использовать формулу, основанную на ИНДЕКС и ПОИСКПОЗ. В примере формула в F6 является:
=ИНДЕКС(C5:C9;ПОИСКПОЗ(F4;B5:B9)+1)
Несколько совпадений в списке, разделенных запятой
{ = ОБЪЕДИНИТЬ ( «;» ; ИСТИНА ; ЕСЛИ( диапазон1 = E5 ; диапазон2 ; «» )) }
Для поиска и извлечения нескольких совпадений, разделенных запятыми (в одной ячейке), вы можете использовать функцию ЕСЛИ с функцией ОБЪЕДИНИТЬ.
{ = ОБЪЕДИНИТЬ( «;» ; ИСТИНА ; ЕСЛИ( группа = E5 ; имя ; «» )) }
Эта формула использует «имя» — именованный диапазон (B5: B11) и «группа» — (C5: C11).
Частичное совпадение чисел с шаблоном
{ = ПОИСКПОЗ( «*» & номер & «*» ; ТЕКСТ( диапазон ; «0» ); 0 ) }
Для того, чтобы выполнить частичное совпадение (подстроки) против чисел, вы можете использовать формулу массива, основанную на ПОИСКПОЗ и ТЕКСТ.
Excel поддерживает символы подстановки «*» и «?». Тем не менее, если вы используете специальные символы с номером, вы будете преобразовывать числовое значение в текстовое значение. Другими словами, «*» & 99 & «*» = «* 99 *» (текстовая строка).
Если попытаться найти текстовое значение в диапазоне чисел, совпадение завершится неудачно.
Решение
Одно из решений заключается в преобразовании чисел в диапазоне поиска для текстовых значений, а затем сделать нормальный поиск с ПОИСКПОЗ, ВПР и т.д.
Другой вариант
Другой способ, чтобы преобразовать числа в текст, чтобы сцепить пустую строку. Эта формула работает так же, как выше формуле:
= ПОИСКПОЗ ( «*» & Е5 & «*» ; В5: В10 & «» ; 0 )
Частичное совпадение с ВПР
Если вы хотите получить информацию из таблицы на основе частичного совпадения, вы можете сделать это с помощью ВПР в режиме точного соответствия, и групповые символы.
В примере формула ВПР выглядит следующим образом:
=ВПР($H$2&»*»;$B$3:$E$12;2;0)
В этой формуле, значение представляет собой именованный диапазон, который относится к Н2, а также данные , представляет собой именованный диапазон , который относится к B3: E102. Без названных диапазонов, формула может быть записана следующим образом:
Положение первого частичного совпадения
= ПОИСКПОЗ ( «* текст *» ; диапазон; 0 )
Для того, чтобы получить позицию первого частичного совпадения (то есть ячейку, которая содержит текст, который вы ищете), вы можете использовать функцию ПОИСКПОЗ со специальными символами.
В примере формула в Е7:
=ПОИСКПОЗ(«*»&E6&»*»;B5:B10;0)
Функция ПОИСКПОЗ возвращает позицию или «индекс» в первом совпадении на основании значения поиска в диапазоне.
ПОИСКПОЗ поддерживает подстановочное согласование со звездочкой «*» (один или несколько символов) или знаком вопроса «?» (один символ), но только тогда, когда третий аргумент, тип_сопоставления, установлен в ЛОЖЬ или ноль.
Помогите,пжлста,кто знает:в одной ячейке задана текущая дата,например,20.05.2010г.С помощью каких формул можно добиться,чтобы в другой ячейке появилась дата 01.05.2010г.? |
|
Haken Пользователь Сообщений: 495 |
=КОНМЕСЯЦА(A1;-1)+1 A1 — ячейка с текущей датой |
не забудтьте активировать надстройку пакет анализа |
|
DV_68 Пользователь Сообщений: 628 |
Если не подключен пакет анализа, то можно так: |
Serge Пользователь Сообщений: 11308 |
Можно и с извращениями =ТЕКСТ(«01″&».»&МЕСЯЦ(A1)&».»&ГОД(A1);»ДД.ММ.ГГГГ») 20.05.2010 в А1. |
слэн Пользователь Сообщений: 5192 |
или =(«01.»&ТЕКСТ(a1;»ММ.ГГГГ»))+0
|
Пока писал, слэн опередил =СЦЕПИТЬ(«01.»;(ЕСЛИ(МЕСЯЦ(A1)<10;СЦЕПИТЬ(«0″;МЕСЯЦ(A1));МЕСЯЦ(A1)));».»;ГОД(A1)) |
|
Извините за … флуд. Жалко редактировать нельзя. «Serge 007 и слэн» |
|
слэн Пользователь Сообщений: 5192 |
{quote}{login=Serge 007}{date=21.05.2010 01:21}{thema=}{post}Можно и с извращениями =ТЕКСТ(«01″&».»&МЕСЯЦ(A1)&».»&ГОД(A1);»ДД.ММ.ГГГГ») 20.05.2010 в А1.{/post}{/quote} ну это уж слишком тогда уж =дата(год(a1);месяц(a1);1) |
vikttur Пользователь Сообщений: 47199 |
|
Serge Пользователь Сообщений: 11308 |
{quote}{login=ТолькоУчусь}{date=21.05.2010 01:30}{thema=}{post}Извините за … флуд. Жалко редактировать нельзя. ЗЫ А в чём флуд? |
Serge Пользователь Сообщений: 11308 |
{quote}{login=vikttur}{date=21.05.2010 01:34}{thema=}{post}Кто больше? Макросом? :){/post}{/quote}Есть такая игра «Поддавки» ЗЫ Слэн, с извращениями не нравится? :-))) |
Serge 007, скорее это галантность Никого не хочу обидеть, но мне мой вариант больше нравится |
|
vikttur Пользователь Сообщений: 47199 |
По поводу пятницы — форуму остро не хватает функции =КОНРАБНЕД() |
слэн Пользователь Сообщений: 5192 |
или КОНЬРАБНЕД() — типа пусть кони работают.. или не работают — т.е. дохнут |
Serge Пользователь Сообщений: 11308 |
{quote}{login=слэн}{date=21.05.2010 01:57}{thema=}{post}или КОНЬРАБНЕД() — типа пусть кони работают.. или не работают — т.е. дохнут{/post}{/quote}Надеюсь фанов ЦСКА на форуме нет? :-))) ЗЫ Микки за коней как-раз болел… |
{quote}{login=тухачевский}{date=21.05.2010 01:15}{thema=}{post}не забудтьте активировать надстройку пакет анализа |
|
{quote}{login=DV}{date=21.05.2010 01:16}{thema=}{post}Если не подключен пакет анализа, то можно так: |
|
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
Сервис — Надстройки (2003) |
vikttur Пользователь Сообщений: 47199 |
Сервис-Надстройки. Если в списке есть Пакет анализа, поставить галку |
Tany Гость |
#21 22.05.2010 16:08:54 Спасибо огромное всем! |