Excel получить данные по имени

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Описание

В этой статье приведены пошаговые инструкции по поиску данных в таблице (или диапазоне ячеек) с помощью различных встроенных функций Microsoft Excel. Для получения одного и того же результата можно использовать разные формулы.

Создание образца листа

В этой статье используется образец листа для иллюстрации встроенных функций Excel. Рассматривайте пример ссылки на имя из столбца A и возвращает возраст этого человека из столбца C. Чтобы создать этот лист, введите указанные ниже данные в пустой лист Excel.

Введите значение, которое вы хотите найти, в ячейку E2. Вы можете ввести формулу в любую пустую ячейку на том же листе.

A

B

C

D

E

1

Имя

Правитель

Возраст

Поиск значения

2

Анри

501

Плот

Иванов

3

Стэн

201

19

4

Иванов

101

максималь

5

Ларри

301

составляет

Определения терминов

В этой статье для описания встроенных функций Excel используются указанные ниже условия.

Термин

Определение

Пример

Массив таблиц

Вся таблица подстановки

A2: C5

Превышающ

Значение, которое будет найдено в первом столбце аргумента «инфо_таблица».

E2

Просматриваемый_массив
-или-
Лукуп_вектор

Диапазон ячеек, которые содержат возможные значения подстановки.

A2: A5

Номер_столбца

Номер столбца в аргументе инфо_таблица, для которого должно быть возвращено совпадающее значение.

3 (третий столбец в инфо_таблица)

Ресулт_аррай
-или-
Ресулт_вектор

Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор.

C2: C5

Интервальный_просмотр

Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение.

ЛОЖЬ

Топ_целл

Это ссылка, на основе которой вы хотите основать смещение. Топ_целл должен ссылаться на ячейку или диапазон смежных ячеек. В противном случае функция СМЕЩ возвращает #VALUE! значение ошибки #ИМЯ?.

Оффсет_кол

Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение «5» в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки).

Функции

LOOKUP ()

Функция Просмотр находит значение в одной строке или столбце и сопоставляет его со значением в той же позицией в другой строке или столбце.

Ниже приведен пример синтаксиса формулы подСТАНОВКи.

   = Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)


Следующая формула находит возраст Марии на листе «образец».

   = ПРОСМОТР (E2; A2: A5; C2: C5)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как «Мария» находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).

Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.

Чтобы получить дополнительные сведения о функции Просмотр , щелкните следующий номер статьи базы знаний Майкрософт:
 

Использование функции Просмотр в Excel

ВПР ()

Функция ВПР или вертикальный просмотр используется, если данные указаны в столбцах. Эта функция выполняет поиск значения в левом столбце и сопоставляет его с данными в указанном столбце в той же строке. Функцию ВПР можно использовать для поиска данных в отсортированных или несортированных таблицах. В следующем примере используется таблица с несортированными данными.

Ниже приведен пример синтаксиса формулы ВПР :

    = ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)

Следующая формула находит возраст Марии на листе «образец».

   = ВПР (E2; A2: C5; 3; ЛОЖЬ)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется «3» в качестве Колумн_индекс (столбец C). Так как «Мария» находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).

Чтобы получить дополнительные сведения о функции ВПР , щелкните следующий номер статьи базы знаний Майкрософт:
 

Как найти точное совпадение с помощью функций ВПР или ГПР

INDEX () и MATCH ()

Вы можете использовать функции индекс и ПОИСКПОЗ вместе, чтобы получить те же результаты, что и при использовании поиска или функции ВПР.

Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:

    = Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)

Следующая формула находит возраст Марии на листе «образец».


= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как «Мария» находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).

Обратите внимание Если ни одна из ячеек в аргументе «число» не соответствует искомому значению («Мария»), эта формула будет возвращать #N/А.
Чтобы получить дополнительные сведения о функции индекс , щелкните следующий номер статьи базы знаний Майкрософт:

Поиск данных в таблице с помощью функции индекс

СМЕЩ () и MATCH ()

Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.

Ниже приведен пример синтаксиса, объединяющего смещение и сопоставление для достижения того же результата, что и функция Просмотр и ВПР.

   = СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)

Эта формула находит возраст Марии на листе «образец».

   = СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как «Мария» находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).

Чтобы получить дополнительные сведения о функции СМЕЩ , щелкните следующий номер статьи базы знаний Майкрософт:
 

Использование функции СМЕЩ

Нужна дополнительная помощь?

Excel: выделение имени, отчества, инициалов из ФИО

Дано: таблица Excel с колонкой, содержащей фамилию, имя и отчество (ФИО).
Задача: извлечь при помощи формул из колонки ФИО данные в следующем виде:

  • Фамилия
  • Имя Отчество
  • И.О. (инициалы)
  • Фамилия И.О.
  • Имя
  • Отчество

Будем использовать формулы с текстовыми функциями.
Будем предполагать, что исходные данные (ФИО) содержатся в ячейке A1 «Иванов Сергей Олегович».

1. Выделение фамилии из ФИО

Формула извлечения фамилии (в ячейке B1):

=ЛЕВСИМВ(A1;ПОИСК(" *";A1)-1)

2. Выделение Имени Отчества из ФИО

Формула извлечения Имени Отчества (в ячейке C1):

=ПСТР(A1;ПОИСК(" ";A1)+1;ДЛСТР(A1))

3. Выделение инициалов (И.О.) из ФИО

Формула извлечения И.О. (в ячейке D1):

=ПСТР(A1;ПОИСК(" *";A1)+1;1)&"."&ПСТР(A1;ПОИСК(" *";A1;ПОИСК(" *";A1)+1)+1;1)&"."

4. Выделение фамилии и инициалов из ФИО

Формула извлечения в виде Фамилия И.О. (в ячейке E1):

=ЛЕВСИМВ(A1;ПОИСК(" *";A1)-1)&" "&ПСТР(A1;ПОИСК(" *";A1)+1;1)
&"."&ПСТР(A1;ПОИСК(" *";A1;ПОИСК(" *";A1)+1)+1;1)&"."

5. Выделение имени из ФИО

Формула извлечения имени из ФИО (в ячейке F1):

=ПСТР(A1;ПОИСК(" *";A1)+1;ПОИСК(" *";A1;ПОИСК(" *";A1)+1)-ПОИСК(" *";A1)-1)

Если имеется ячейка с именем отчеством (C1 в нашем примере), то формула схожа с формулой выделения фамилии:

=ЛЕВСИМВ(C1;ПОИСК(" *";C1)-1)

6. Выделение отчества из ФИО

Формула извлечения отчества из ФИО (в ячейке G1):

=ПСТР(A1;ПОИСК(" *";A1;ПОИСК(" *";A1)+1)+1;ДЛСТР(A1))

Если имеется ячейка с именем отчеством (C1 в нашем примере), то формула может иметь вид:

=ПРАВСИМВ(C1;ПОИСК(" *";C1)+1)

Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

Skip to content

Как извлечь текст из ячейки при помощи функции ПСТР и специальных инструментов

ПСТР — одна из текстовых функций, которые Microsoft Excel предоставляет для управления текстовыми строками. На самом базовом уровне она используется для извлечения подстроки из середины текста. 

В этом руководстве мы обсудим синтаксис и особенности функции Excel ПСТР (в английской версии – MID), а затем вы узнаете несколько вариантов творческого её использования для выполнения сложных задач.

  • Синтаксис и особенности
  • Если 2 слова — извлекаем имя и фамилию
  • Как получить текст между двумя определенными символами
  • Как извлечь любое по счету слово
  • Получаем слово с нужными буквами или символами
  • Как заставить ПСТР возвращать число?
  • Использование регулярных выражений для извлечения части текста
  • Как извлечь текст из ячейки с помощью Ultimate Suite

Cинтаксис.

Функция ПСТР возвращает указанное количество знаков, начиная с указанной вами позиции.

Функция Excel ПСТР имеет следующие аргументы:

ПСТР(текст; начальная_позиция; количество_знаков)

Где текст — это исходная текстовая строка. Далее следует позиция первого символа, который вы хотите извлечь, и количество их для извлечения.

Все 3 аргумента обязательны.

Например, чтобы извлечь 6 знаков из A2, начиная с 17-го, используйте эту формулу:

=ПСТР(A2;17;6)

Результат может выглядеть примерно так:

5 вещей, которые вы должны знать о функции Excel ПСТР

Как вы только что убедились, в использовании функции ПСТР в Excel нет ничего страшного. И помня следующие простые факты, вы избежите наиболее распространенных ошибок.

  1. Функция ПСТР всегда возвращает текстовую строку, даже если извлеченная подстрока содержит только цифры. Это может иметь большое значение, если вы хотите использовать результат формулы ПСТР в других вычислениях. Чтобы преобразовать цифры в число, применяйте ПСТР в сочетании с функцией ЗНАЧЕН (VALUE в английской версии), как показано в этом примере. (ссылка на последний раздел).
  2. Когда начальная позиция больше, чем общая длина исходного текста, формула Excel ПСТР возвращает пустое значение («»).
  3. Если начальная позиция  меньше 1, формула ПСТР возвращает ошибку #ЗНАЧ!.
  4. Когда третий аргумент меньше 0 (отрицательное число), формула ПСТР возвращает ошибку #ЗНАЧ!. Если количество знаков для извлечения равно 0, выводится пустая строка (пустая ячейка).
  5. В случае, если сумма начальной позиции и количества знаков превышает общую длину исходного текста, функция ПСТР в Excel возвращает подстроку начиная с начальной позиции и до последнего символа.

При решении реальных задач в Excel вам чаще всего потребуется использовать ПСТР в сочетании с другими функциями, как показано в следующих примерах.

Как извлечь имя и фамилию.

Если у вас была возможность прочитать наши недавние уроки, вы уже знаете, как вытащить имя с помощью функции ЛЕВСИМВ и получить фамилию с помощью ПРАВСИМВ.  Но, как это часто бывает в Excel, одно и то же можно сделать разными способами.

Получаем имя.

Предполагая, что полное имя находится в ячейке A2, имя и фамилия разделены интервалом, вы можете извлечь имя, используя следующую формулу:

=ПСТР(A2;1;ПОИСК(» «;A2)-1)

ПОИСК используется для сканирования исходного значения на предмет пробела (» «) и возврата его позиции, из которой вы вычитаете 1, чтобы избежать пробелов после имени. Затем вы используете ПСТР, чтобы вернуть подстроку, начинающуюся с первого знака и заканчивая предшествующим пробелу, таким образом извлекая первое имя.

Получаем фамилию.

Чтобы извлечь фамилию из A2, используйте эту формулу:

=СЖПРОБЕЛЫ(ПСТР(A2;ПОИСК(» «;A2);ДЛСТР(A2)))

Опять же, вы используете ПОИСК, чтобы определить начальную позицию (пробел). Нам не нужно точно рассчитывать конечную позицию (как вы помните, если вместе взятые начальная позиция и количество символов больше, чем общая длина текста, возвращаются просто все оставшиеся). Итак, в аргументе количество символов вы просто указываете общую первоначальную длину , возвращаемую функцией ДЛСТР . Впрочем, вместо этого вы можете просто ввести число, представляющее самую длинную фамилию, которую вы ожидаете найти, например 100. Наконец,  СЖПРОБЕЛЫ удаляет лишние интервалы, и вы получаете следующий результат:

Как выделить подстроку между двумя разделителями.

Продолжим предыдущий пример. А если, помимо имени и фамилии, ячейка A2 также содержит отчество, то как его извлечь?

Технически задача сводится к определению позиций двух пробелов в исходном тексте, и вы можете сделать это следующим образом:

  • Как и в предыдущем примере, используйте ПОИСК, чтобы определить позицию первого (» «), к которому вы добавляете 1, потому что вы хотите начать с символа, следующего за ним. Таким образом, вы получаете адрес начальной позиции: ПОИСК (» «; A2) +1
  • Затем вычислите позицию 2- го интервала, используя вложенные функции поиска, которые предписывают Excel начать поиск именно со 2-го:                                                  ПОИСК (» «; A2, ПОИСК (» «; A2) +1)

Чтобы узнать количество извлекаемых знаков, вычтите позицию первого пробела из положения второго. И затем еще вычтите 1 из результата, поскольку вам не нужны лишние интервалы в получившемся результате. Таким образом, у вас есть второй аргумент для формулы:          

ПОИСК(» «; A2; ПОИСК(» «; A2) +1) — ПОИСК(» «; A2)

Соединив все аргументы, мы получаем формулу для извлечения подстроки между двумя пробелами:

=ПСТР(A2;ПОИСК(» «;A2)+1;ПОИСК(» «;A2;ПОИСК(» «;A2)+1)-ПОИСК(» «;A2)-1)

На следующем скриншоте показан результат:

Аналогичным образом вы можете извлечь текст между любыми другими разделителями:

ПСТР( строка ; ПОИСК( разделитель ; строка ) +1; ПОИСК( разделитель ; строка ; ПОИСК( разделитель ; строка ) +1) — ПОИСК( разделитель ; строка ) -1)

Например, чтобы извлечь отрезок, выделенный запятой с пробелом после неё, используйте следующее выражение:

=ПСТР(A2;ПОИСК(«, «;A2)+1;ПОИСК(«, «;A2;ПОИСК(«, «;A2)+1)-ПОИСК(«, «;A2)-1)

На следующем рисунке эта формула используется для извлечения из адреса названия города, и она отлично справляется со своей задачей:

Как получить N-е слово из текста.

Этот пример демонстрирует оригинальное использование сложной формулы ПСТР в Excel, которое включает 5 различных составных частей:

  • ДЛСТР — чтобы получить общую длину.
  • ПОВТОР — повторение определенного знака заданное количество раз.
  • ПОДСТАВИТЬ — заменить один символ другим.
  • ПСТР — извлечь подстроку.
  • СЖПРОБЕЛЫ — удалить лишние интервалы между словами.

Общая формула выглядит следующим образом:

СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ( строка ; » «; ПОВТОР (» «; ДЛСТР( строка ))); ( N -1) * ДЛСТР( строка ) +1; ДЛСТР( строка )))

Где:

  • Строка — это исходный текст, из которого вы хотите извлечь желаемое слово.
  • N – порядковый номер слова, которое нужно получить.

Например, чтобы вытащить второе слово из A2, используйте это выражение:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ($A$2;» «;ПОВТОР(» «;ДЛСТР($A$2))); (2-1)*ДЛСТР($A$2)+1; ДЛСТР($A$2)))

Или вы можете ввести порядковый номер слова, которое нужно извлечь (N) в какую-либо ячейку, и указать эту ячейку в формуле, как показано на скриншоте ниже:

Как работает эта формула?

По сути, Excel «оборачивает» каждое слово исходного текста множеством пробелов, находит нужный блок «пробелы-слово-пробелы», извлекает его, а затем удаляет лишние интервалы. Чтобы быть более конкретным, это работает по следующей логике:

  • ПОДСТАВИТЬ и ПОВТОР заменяют каждый пробел в тексте несколькими. Количество этих дополнительных вставок равно общей длине исходной строки: ПОДСТАВИТЬ($A$2;» «;ПОВТОР(» «;ДЛСТР($A$2)))

Вы можете представить себе промежуточный результат как «астероиды» слов, дрейфующих в пространстве, например: слово1-пробелы-слово2-пробелы-слово3-… Эта длинная строка передается в текстовый аргумент ПСТР.

  • Затем вы определяете начальную позицию для извлечения (первый аргумент), используя следующее уравнение: (N-1) * ДЛСТР(A1) +1. Это вычисление возвращает либо позицию первого знака первого слова, либо, чаще, позицию в N-й группе пробелов.
  • Количество букв и цифр для извлечения (второй аргумент) — самая простая часть — вы просто берете общую первоначальную длину: ДЛСТР(A2).
  • Наконец, СЖПРОБЕЛЫ избавляется от начальных и конечных интервалов в извлечённом тексте.

Приведенная выше формула отлично работает в большинстве ситуаций. Однако, если между словами окажется 2 или более пробелов подряд, это даст неверные результаты (1). Чтобы исправить это, вложите еще одну функцию СЖПРОБЕЛЫ в ПОДСТАВИТЬ, чтобы удалить лишние пропуски между словами, оставив только один, например:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ($A$2);» «; ПОВТОР(» «;ДЛСТР($A$2))); (B2-1)*ДЛСТР($A$2)+1; ДЛСТР($A$2)))

Следующий рисунок демонстрирует улучшенный вариант (2) в действии:

Если ваш исходный текст содержит несколько пробелов между словами, а также очень большие или очень короткие слова, дополнительно вставьте СЖПРОБЕЛЫ в каждое ДЛСТР, чтобы вы были застрахованы от ошибки:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ($A$2);» «; ПОВТОР(» «;ДЛСТР(СЖПРОБЕЛЫ ($A$2)))); (B2-1)*ДЛСТР(СЖПРОБЕЛЫ($A$2))+1; ДЛСТР(СЖПРОБЕЛЫ($A$2))))

Я согласен с тем, что это выглядит немного громоздко, но зато безупречно обрабатывает все возможные варианты.

Извлекаем слово, содержащее определенный символ.

В этом примере показана еще одна нестандартная формула Excel ПСТР, которая извлекает слово, содержащее определенную букву или цифру, из любого места:

СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ ( строка , » «, ПОВТОР(» «, 99)), МАКС(1, НАЙТИ( символ , ПОДСТАВИТЬ( строка , » «, ПОВТОР(» «, 99))) — 50), 99))

Предполагая, что исходный текст находится в ячейке A2, и вы хотите получить слово, содержащее символ «$» (цена), выражение принимает следующую форму:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;99)); МАКС(1;НАЙТИ(«$»;ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;99)))-50);99))

Аналогичным образом вы можете извлекать адреса электронной почты (на основе знака «@»), имена веб-сайтов (на основе «www») и так далее.

Теперь разберём пошагово:

Как и в предыдущем примере, ПОДСТАВИТЬ и ПОВТОР превращают каждый пробел в исходном тексте в несколько, точнее, в 99.

НАЙТИ находит позицию нужного символа (в данном примере $), из которой вы вычитаете 50. Это возвращает вас на 50 позиций назад и помещает где-то в середине блока из 99 пробелов, который предшествует слову, содержащему указанный символ.

МАКС используется для обработки ситуации, когда нужное значение появляется в начале исходного текста. В этом случае результат ПОИСК() — 50 будет отрицательным числом, а МАКС(1, ПОИСК() — 50) заменяет его на 1.

С этой начальной точки ПСТР отбирает следующие 99 знаков и возвращает интересующее нас слово, окруженное множеством пробелов. Как обычно, СЖПРОБЕЛЫ помогает избавиться от лишних из них, оставив только один.

Совет. Если извлекаемый отрезок очень большой, замените 99 и 50 на более крупные числа, например 1000 и 500.

Как заставить ПСТР возвращать число?

Как и другие текстовые функции, Excel ПСТР всегда возвращает текст, даже если он содержит только цифры и очень похож на число. Вы можете убедиться с этом, взглянув на пример чуть выше, когда мы получили число «20%» как текст.

Чтобы преобразовать результат в число, просто передайте полученный результат в функцию ЗНАЧЕН (VALUE в английской версии), которая преобразует текстовое значение, состоящее из цифр, в число.

Например, чтобы извлечь подстроку из 3 символов, начинающуюся с 7- го символа, и преобразовать ее в число, используйте:

=ЗНАЧЕН(ПСТР(A2;7;3))

На скриншоте ниже показан результат. Обратите внимание, что числа с выравниванием по правому краю помещены в столбец B, в отличие от исходных текстовых значений с выравниванием по левому краю в столбце A:

Тот же подход работает и для более сложных случаев. В приведенном выше примере, предполагая, что коды ошибок имеют переменную длину, вы можете извлечь их с помощью ПСТР, которая получает подстроку между двумя разделителями, вложенную в ЗНАЧЕН:

=ЗНАЧЕН(ПСТР(A2;ПОИСК(«:»;A2)+1;ПОИСК(«:»;A2;ПОИСК(«:»;A2)+1)-ПОИСК(«:»;A2)-1))

Вот как можно использовать функцию ПСТР в Excel. 

Использование регулярных выражений, чтобы извлечь часть текста.

Регулярное выражение – это шаблон, состоящий из последовательности символов, который можно использовать для поиска соответствующей последовательности в другой строке.

Как добавить в Excel пользовательскую функцию работы с регулярными выражениями и как правильно составить шаблон – читайте подробную инструкцию здесь.

Вы можете извлечь из ячейки все числа или все буквы, телефонный номер, адрес электронной почты, дату, время, текст между любыми двумя символами или двумя словами, текст после определенного символа, и еще множество вариантов.

Вот пример: из наименования товара — Коммутатор Optimus U1E-8F/1G/1S, нужно извлечь номер модели. Поскольку этот номер находится в конце наименования, то будем искать то, что записано после последнего пробела.

= RegExpExtract(A1; «([^s.]+)$»)

В результате получим U1E-8F/1G/1S, что и требовалось.

Как извлечь текст из ячейки с помощью Ultimate Suite

Как вы только что видели, Microsoft Excel предоставляет набор различных функций для работы с текстовыми строками. Если вам нужно извлечь какое-то слово или часть текста из ячейки, но вы не уверены, какая функция лучше всего подходит для ваших нужд, передайте работу Ultimate Suite for Excel. Заодно не придётся возиться с формулами.

Вы просто переходите на вкладку Ablebits Data > Текст, выбираете инструмент Split Text и в выпадающем списке нажимаете Извлечь (Extract) :

Теперь вы выбираете исходные ячейки, и какие бы сложные строки они ни содержали, извлечение из них подстроки сводится к этим двум простым действиям:

  1. Укажите, сколько символов вы хотите получить из начала, конца или середины строки; или выберите извлечение всего текста до или после определенного символа.
  2. Щелкните Вставить результаты (Insert Results). Готово!

Кроме того, вы можете извлечь любое число символов с начала или в конце текста, из середины текста, между какими-то символами. Например, чтобы извлечь доменные имена из списка адресов электронной почты, вы выбираете чекбокс Все после текста (All after text) и вводите @ в поле рядом с ним. Чтобы извлечь имена пользователей, выберите переключатель Все до текста (All before text), как показано на рисунке ниже.

Помимо скорости и простоты, инструмент «Извлечь текст» имеет дополнительную ценность — он поможет вам изучить формулы Excel в целом и функции подстроки в частности. Как? Выбрав флажок Вставить как формула (Insert as formula)  в нижней части панели, вы убедитесь, что результаты выводятся в виде формул, а не просто как значения. Естественно, эти формулы вы можете использовать в других таблицах.

В этом примере, если вы выберете ячейки B2 и C2, вы увидите следующие формулы соответственно:

  • Чтобы извлечь имя пользователя:

=ЕСЛИОШИБКА(ЛЕВСИМВ(A2,ПОИСК(«@»,A2)-1),»»)

  • Чтобы извлечь домен:

=ЕСЛИОШИБКА(ПРАВСИМВ(A2, ДЛСТР(A2)- ПОИСК(«@»,A2) — ДЛСТР(«@») + 1),»»)

Сколько времени вам потребуется, чтобы самостоятельно составить эти выражения?  ;)

Поскольку результаты представляют собой формулы, извлеченные подстроки будут обновляться автоматически, как только в исходные ячейки будут внесены какие-либо изменения. Когда в ваш набор данных добавляются новые записи, вы можете скопировать формулы в другие ячейки как обычно, без необходимости заново запускать инструмент «Извлечь текст».

Если вам интересно попробовать это, а также множество других полезных функций, включенных в Ultimate Suite for Excel, вы можете загрузить ознакомительную версию. Если вам нравятся инструменты, вы можете получить лицензию по очень специальной цене, которая доступна только для наших русскоязычных пользователей.

Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

Как быстро посчитать количество слов в Excel В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в…
Как быстро извлечь число из текста в Excel В этом кратком руководстве показано, как можно быстро извлекать число из различных текстовых выражений в Excel с помощью формул или специального инструмента «Извлечь». Проблема выделения числа из текста возникает достаточно…
Как удалить пробелы в ячейках Excel Вы узнаете, как с помощью формул удалять начальные и конечные пробелы в ячейке, лишние интервалы между словами, избавляться от неразрывных пробелов и непечатаемых символов. В чем самая большая проблема с…
Функция СЖПРОБЕЛЫ — как пользоваться и примеры Вы узнаете несколько быстрых и простых способов, чтобы удалить начальные, конечные и лишние пробелы между словами, а также почему функция Excel СЖПРОБЕЛЫ (TRIM в английской версии)  не работает и как…
Функция ПРАВСИМВ в Excel — примеры и советы. В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части…
Функция ЛЕВСИМВ в Excel. Примеры использования и советы. В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди…
5 примеров с функцией ДЛСТР в Excel. Вы ищете формулу Excel для подсчета символов в ячейке? Если да, то вы, безусловно, попали на нужную страницу. В этом коротком руководстве вы узнаете, как использовать функцию ДЛСТР (LEN в английской версии)…
Как быстро сосчитать количество символов в ячейке Excel В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках. В нашем предыдущем…

Преобразование имени и отчества в инициалы с помощью формул Excel и присоединение их к фамилии. Разделение фамилий, имен и отчеств, расположенных в одной ячейке, по разным ячейкам и наоборот.

Фамилия, имя и отчество в разных ячейках

Если фамилия, имя и отчество записываются в разные ячейки, работать с ними легче, чем при размещении их в одной ячейке. Перечислим преимущества:

  • при заполнении таких ячеек в таблицах срабатывает автоподбор значений, так как имена и отчества часто повторяются;
  • для заполнения таких ячеек можно использовать раскрывающиеся списки наиболее распространенных имен и отчеств;
  • фамилия, имя и отчество, записанные в разные ячейки, легко объединить в одну, а имя и отчество заменить инициалами.

Итак, объединяем фамилию, имя и отчество полностью из разных ячеек в одну:

Объединение фамилии, имени и отчества полностью из разных ячеек в одну

Здесь можно использовать формулу «СЦЕПИТЬ», как в примере =СЦЕПИТЬ(A1;" ";B1;" ";C1), или просто соединить строки с помощью & (амперсандов) =A1&" "&B1&" "&C1, не забыв добавить между словами пробелы.

В следующем примере мы также объединим фамилию, имя и отчество из разных ячеек в одну, при этом имя и отчество заменив на инициалы:

Объединение фамилии и инициалов из разных ячеек в одну

Здесь также можно использовать формулу «СЦЕПИТЬ», как в примере =СЦЕПИТЬ(A1;" ";ЛЕВСИМВ(B1;1);".";ЛЕВСИМВ(C1;1);".") или & (амперсанды) =A1&" "&ЛЕВСИМВ(B1;1)&"."&ЛЕВСИМВ(C1;1)&".", не забыв добавить между фамилией и инициалами пробел, а к инициалам точки. В этом примере мы извлекаем левые символы из имени и отчества для присоединения их к фамилии в виде инициалов.

Фамилия, имя и отчество в одной ячейке

Использование фамилии, имени и отчества в одной ячейке имеет тоже свои преимущества:

  • уменьшается количество колонок в таблице;
  • в большинство документов* требуется внесение фамилии, имени и отчества в полном написании.

*Если документы генерируются на основе этой таблицы, то вставка ФИО не потребует дополнительных преобразований.

Лично мне в работе не приходилось преобразовывать фамилию, имя и отчество из одной ячейки в разные, но могу предположить, что для кого-то это бывает необходимо:

Для этого преобразования используются следующие формулы в соответствующих ячейках:

  • ячейка B1 — =ЛЕВСИМВ(A1;НАЙТИ(" ";A1;1)-1)
  • ячейка C1 — =ПСТР(A1;НАЙТИ(" ";A1;1)+1;НАЙТИ(" ";A1;НАЙТИ(" ";A1;1)+1)-НАЙТИ(" ";A1;1)-1)
  • ячейка D1 — =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1;НАЙТИ(" ";A1;1)+1))

Чтобы определить начало имени и начало отчества используются позиции первого и второго пробелов, найденных с помощью функции «НАЙТИ».

Необходимость следующего преобразования возникает чаще предыдущего, используется для заполнения различных документов наряду с полным именем:

Для этого преобразования используется следующая формула в ячейке B1 — =СЦЕПИТЬ(ЛЕВСИМВ(A1;НАЙТИ(" ";A1;1));" ";ПСТР(A1;НАЙТИ(" ";A1;1)+1;1);".";ПСТР(A1;НАЙТИ(" ";A1;НАЙТИ(" ";A1;1)+1)+1;1);".")

Здесь тоже функцию «СЦЕПИТЬ» можно заменить & (амперсандами) — =ЛЕВСИМВ(A1;НАЙТИ(" ";A1;1))&" "&ПСТР(A1;НАЙТИ(" ";A1;1)+1;1)&"."&ПСТР(A1;НАЙТИ(" ";A1;НАЙТИ(" ";A1;1)+1)+1;1)&"."

Вы можете копировать эти формулы в свои файлы, не забывая изменять адреса ячеек на фактические. Часто инициалы пишут перед фамилией, изменить формулы для такого отображения ФИО несложно.

Содержание:

  1. Извлечь и отсортировать по фамилии с помощью функции поиска и замены
  2. Извлечь и расположить в алфавитном порядке по фамилии с помощью формулы
  3. Использование текста в столбцы
  4. Использование Flash Fill

Если вы работаете с наборами данных имен, сортировка — одна из распространенных задач, которые вам придется часто выполнять.

Сортировать данные в алфавитном порядке по полному имени довольно просто, а Excel использует первый символ имени для сортировки.

Но что, если ты хочешь сортировать данные по фамилии в Excel?

Хотя это не так просто, но все же можно сделать (многое также зависит от того, как структурированы данные об именах).

Независимо от того, какой метод вы используете, вам придется каким-то образом извлечь фамилию из полного имени и поместить ее в отдельный столбец. Затем вы можете использовать этот столбец для сортировки данных по фамилии в алфавитном порядке.

В этом руководстве по Excel я покажу вам, как отсортировать столбец с именами на основе фамилии.

Итак, приступим!

Извлечь и отсортировать по фамилии с помощью функции поиска и замены

Первый шаг к сортировке по фамилии — занести фамилию в отдельный столбец.

Вы можете сделать это, заменив все перед фамилией пробелом, чтобы у вас осталась только фамилия.

Предположим, у вас есть набор данных, показанный ниже, и вы хотите отсортировать эти данные в алфавитном порядке по фамилии.

Как отсортировать по фамилии в Excel (простое руководство)

Ниже приведены шаги для сортировки по фамилии:

  1. Выберите набор данных, включая заголовок (в этом примере это будет A1: A10)
  2. Скопируйте его в соседний столбец (если соседний столбец не пустой, вставьте новый столбец, а затем скопируйте эти имена)
  3. Переименуйте скопированный заголовок столбца. В этом примере я назову «Фамилия».
  4. Выделите все скопированные имена (не выбирайте заголовок)
  5. Удерживая клавишу Ctrl, нажмите клавишу H. Откроется диалоговое окно «Найти и заменить».
  6. В поле «Найти» введите * (символ звездочки, за которым следует пробел).
  7. Оставьте поле «Заменить на» пустым.
  8. Нажмите «Заменить все». Это мгновенно заменит все имя, и у вас останутся только фамилии.

Вышеупомянутые шаги сохранят фамилию и удалят все, что перед ней. Это хорошо работает, даже если у вас есть отчество или префиксы (например, Mr. или Ms).

Как отсортировать по фамилии в Excel (простое руководство)

Если у вас есть фамилии в соседнем столбце, вы можете легко отсортировать набор данных (включая полные имена) в алфавитном порядке по фамилии.

Ниже приведены шаги для сортировки по фамилии:

  1. Выберите весь набор данных с заголовками (включая полные имена и извлеченные фамилии). Вы также можете включить другие столбцы, которые хотите отсортировать, вместе с именами
  2. Перейдите на вкладку «Данные».
  3. Нажмите на Сортировать
  4. Убедитесь, что в диалоговом окне «Сортировка» выбрано «Мои данные имеют заголовки».
  5. В параметре «Сортировать по» выберите имя столбца, в котором есть только фамилия.
  6. В поле «Сортировка по» выберите «Значения ячеек».
  7. В разделе «Порядок» выберите «От А до Я».
  8. Нажмите ОК.

Вышеупомянутые шаги сортируют весь выбранный набор данных по фамилии.

Как отсортировать по фамилии в Excel (простое руководство)

После этого вы можете удалить столбец с фамилией.

Совет профессионала: В любой момент времени, если вы думаете, что вам может понадобиться вернуть исходные данные, вам нужно иметь способ распаковать этот набор данных. Для этого в соседнем столбце (левом или правом) укажите порядковые номера перед сортировкой. Теперь, если вам нужно вернуть исходные данные, вы получите их путем сортировки по числам.

Извлечь и расположить в алфавитном порядке по фамилии с помощью формулы

Хотя я предпочитаю получать все фамилии и сортировать на их основе метод, показанный выше (с использованием поиска и замены), одним из его ограничений является то, что результирующие данные статичны.

Это означает, что если я добавлю больше имен в свой список, мне придется повторить тот же процесс еще раз, чтобы получить фамилии.

Если вам это не нужно, вы можете использовать метод формулы для сортировки данных по фамилиям.

Предположим, у вас есть набор данных, как показано ниже.

Как отсортировать по фамилии в Excel (простое руководство)

Ниже приведена формула, которая извлечет фамилию из полного имени:
= ВПРАВО (A2; LEN (A2) -FIND (""; A2))

Вышеупомянутая формула основана на шаблоне с полным именем (который в этом примере содержит только имя и фамилию). Шаблон состоит в том, что между именем и фамилией будет пробел.

Функция НАЙТИ используется для получения позиции символа пробела. Затем это значение вычитается из общей длины имени, чтобы получить общее количество символов в фамилии.

Это значение затем используется в функции ВПРАВО для получения фамилии.

Когда у вас есть столбец с фамилией, вы можете отсортировать эти данные (это подробно рассматривается в первом методе).

Приведенная выше формула будет работать, если у вас есть только имя и фамилия.

Но что, если у вас есть отчество? Или перед именем может стоять приветствие (например, г-н или г-жа).

В таком случае вам нужно использовать следующую формулу:
= ПРАВО (A2; LEN (A2) -НАЙТИ ("@", ПОДСТАВИТЬ (A2, "", "@", LEN (A2) -LEN (ПОДСТАВИТЬ (A2, "", ""))))))
Приведенная выше формула находит позицию последнего символа пробела и затем использует ее для извлечения фамилии.

Я рекомендую вам использовать вторую формулу во всех случаях, она более надежна и может обрабатывать все случаи (если фамилия стоит в конце имени).

Примечание. Эти две формулы основаны на условии, что между каждым элементом имени есть только один пробел. Если есть двойные пробелы или начальные / конечные пробелы, эта формула даст неверные результаты. В таком случае лучше всего использовать функцию TRIM, чтобы сначала избавиться от любых начальных, конечных и двойных пробелов, а затем использовать приведенную выше формулу.

Хотя это может показаться сложным методом, преимущество использования формулы состоит в том, что она делает результаты динамичными. Если вы добавите больше имен в свой список, все, что вам нужно сделать, это скопировать формулу, и она даст вам фамилию.

Использование текста в столбцы

Текст в столбцы — это снова простой и легкий способ разбить ячейки в Excel.

Вы можете указать разделитель (например, запятую или пробел) и использовать его для разделения содержимого ячейки. После того, как у вас есть разделенные элементы в отдельных столбцах, вы можете использовать столбец с фамилией, чтобы расположить данные в алфавитном порядке.

Предположим, у вас есть набор данных, как показано ниже:

Ниже приведены шаги по использованию текста в столбец для сортировки по фамилии:

  1. Выберите столбец с именем (без заголовка)
  2. Перейдите на вкладку «Данные».
  3. В группе «Инструменты для работы с данными» выберите параметр «Преобразование текста в столбцы». Откроется мастер текста в столбцы.
  4. На шаге 1 «Мастера преобразования текста в столбцы» выберите «С разделителями» и нажмите «Далее».
  5. На шаге 2 выберите «Пробел» в качестве разделителя (и снимите все флажки, если они выбраны), а затем нажмите кнопку «Далее».
  6. На шаге 3 выберите первый столбец имени в окне предварительного просмотра данных, а затем выберите параметр «Не импортировать столбцы (пропустить)». Это гарантирует, что имя не будет частью результата, а вы получите только фамилию.
  7. Также на шаге 3 измените целевую ячейку на ту, которая находится рядом с исходными данными. Это гарантирует, что вы получите фамилию отдельно, а исходные данные об именах останутся нетронутыми.
  8. Нажмите Готово

Получив результат, вы можете отсортировать его по фамилии.

Как отсортировать по фамилии в Excel (простое руководство)

Вы также можете преобразовать текст в столбцы, чтобы разделить имя и фамилию, если у вас есть запятая в качестве разделителя.

Использование Flash Fill

Еще один быстрый способ получить фамилии — использовать функцию Flash Fill.

Flash Fill был представлен в Excel 2013 и помогает манипулировать данными путем выявления шаблонов. Чтобы это сработало, вам нужно пару раз показать ожидаемый результат Flash Fill.

Как только он определит шаблон, он быстро сделает остальную работу за вас.

Предположим, у вас есть набор данных с именами ниже.

Как отсортировать по фамилии в Excel (простое руководство)

Ниже приведены шаги по использованию Flash Fill для получения фамилии и последующей сортировки по ней:

  1. В ячейке B2 введите текст «Мори». Это результат, который вы ожидаете в ячейке.
  2. Перейдите в следующую ячейку и введите фамилию для имени в соседней ячейке (Эллиот в этом примере).
  3. Выберите обе ячейки
  4. Наведите курсор на правую нижнюю часть выделения. Вы заметите, что курсор изменится на значок плюса.
  5. Дважды щелкните по нему (или щелкните и перетащите его вниз). Это даст вам какой-то результат в ячейках (вряд ли это будет тот результат, который вам нужен)
  6. Щелкните значок «Параметры автозаполнения».
  7. Нажмите на Flash Fill.

Это даст вам результат, который, скорее всего, будет фамилиями во всех ячейках.

Я говорю «вероятно», поскольку в некоторых случаях Flash Fill может не работать. Поскольку это зависит от определения шаблона, это не всегда удается. Или иногда, шаблон, который он расшифровывает, может быть неправильным.

В таких случаях следует ввести ожидаемый результат еще в одну или две ячейки, а затем выполнить шаги 4-7.

Когда у вас есть все фамилии в столбце, вы можете отсортировать данные на основе этих фамилий.

Итак, это четыре разных способа сортировки данных по фамилии. Лучшим способом было бы использовать технику «Найти и заменить», но если вы хотите сделать свои результаты динамическими, лучше всего подойдет метод формул.

Надеюсь, вы нашли этот урок полезным.

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

Имеются листы с именами с Лист1 по Лист46 и есть условие некое.
Нужно перебрать листы, и если условие выполняется то внести в каждый изменения.
Допустим нахожу я имя листа. А Как назначить его активным для внесения изменений именно в него, а то у меня все в первый лист забивает?

Изменено: Kaban04.07.2013 19:16:19

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

#2

04.07.2013 17:26:24

Чтоб внести изменения — совершенно не нужно назначать лист активным.

Код
Sub tt()
    Dim sh As Worksheet
    For Each sh In Worksheets
        If sh.[a1] = Empty Then sh.[a1] = 1
    Next
End Sub

И вообще, зачем имя?
Или проверять на условие нужно не все листы, а один или несколько определённых? Тогда цикл по массиву имён, проверяем конкретный лист по имени из массива.

Изменено: Hugo04.07.2013 17:35:53

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

Да я вообще из 1с-ки к Excel обращаюсь. Это всё и усложняет. Имя листа для меня это уникальный идентификатор в данном случаем.
Есть таблица значений, в одной из колонок в ней имеются номера. Так вот когда номер в колонке совпадает с номером листа в этот лист надо внести изменения. Я сделал перебор строк + перебор листов, но забиваются данные в первый лист. Поэтому нашел я этот форум и сюда пишу… Поэтому и решил что нужно сделать лист активным или выбрать или текущим назначить, не знаю даже  :(  
Пробовал Лист выбирать с Activate и Select: не хочет принимать

Изменено: Kaban05.07.2013 09:34:50

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

«забиваются данные в первый лист» потому, что Вы код написали неправильно.
Ещё раз — нет никакой нужды активировать листы. Нужно просто изменить код.
Как пример см. выше — данные заносятся во все листы без всяких активаций.
Ну а как там конкретно в 1С — я не знаю, не работал. Но думаю, что если vbs может корректоно обращаться с листами — то сможет и 1С.

Да и перебор листов по описанию не нужен.

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#5

05.07.2013 10:23:14

Цитата
Hugo пишет:

Да и перебор листов по описанию не нужен.

Вот этим ответом Вы меня совсем запутали. Как тогда обратиться к листу?
Пример, в таблице в колонке идут номера 3, 13, 22, 5
Мне надо найти листы с такими именами (3, 13, 22, 5) и забить в них данные из строки, с соответствующим номером. Я пишу так:
Получаю строку таблицы ТЗ
далее

Для НомерЛиста = 1 По КоличествоЛистов Цикл
ИмяЛиста = КнигаАЗК.WorkSheets(НомерЛиста).Name;
ну и
Если ТЗ.Номер = ИмяЛиста Тогда
ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста).Select;
ЛистАЗК.Cells(НомерСтроки, «C»).Value = ТЗ.Товар;
и так далее что-то забиваем…..
и все данные попадают в первый лист, а должны в 3, 13, 22 и 5

Какие еще варианты могут быть? Что не так по Вашему мнению?

Изменено: Kaban05.07.2013 10:25:34

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

#6

05.07.2013 10:26:49

Цитата
Kaban пишет:
А Как назначить его активным

когда номер в колонке совпадает с номером листа

Уважаемый Kaban! Надо изначально писать, что у вас имеется некий список «номеров» листов и что надо оттуда взять этот номер. Только вот поясните, что значит «номер листа»? Индекс листа? Имя листа?

There is no knowledge that is not power

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

#7

05.07.2013 10:27:26

«Мне надо найти листы с такими именами (3, 13, 22, 5)» — так зачем искать?
Обращайтесь напрямую к sheets(«3»)  , sheets(«13»)  , sheets(«22»)  , sheets(«5»)  , никаких переборов.
Если возможно, что такого листа может не быть — тогда нужно обработать ошибку. Ну это уже по задаче, это другой вопрос.

Код
sheets("13").range("A1")="test"

Изменено: Hugo05.07.2013 10:29:21

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#8

05.07.2013 10:39:06

Цитата
Johny пишет:
Уважаемый Kaban! Надо изначально писать, что у вас имеется некий список «номеров» листов и что надо оттуда взять этот номер. Только вот поясните, что значит «номер листа»? Индекс листа? Имя листа?

Из 1с-ки обращаюсь к Excel впервые, что накопал в инете так и написал. Синтаксис возможно не тот, я не знаю.
А номерЛиста это числовая переменная для обращения к Номеру листа Excel чтобы получить дальше его имя.

Цитата
Hugo пишет:
Обращайтесь напрямую к sheets(«3»), sheets(«13»), sheets(«22»), sheets(«5»), никаких переборов.

А пройдет так: sheets(НомерЛиста) ??
+использовать range(«A1») наверно не могу, т.к. не знаю количество строк. Или можно написать range(«A1:G65000») ??

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

Ребят, а можно «для тех кто в танке» написать код?
Есть таблица:

Номер Знач1 Знач2 Знач3
5 142 173 292
44 567 345 789

Мне нужно найти лист с номером как в колонке «Номер» таблицы значений (он может быть любой). (Лист с именем точно существует)
И в этот лист внести изменения поячеично, т.е
ЛистАЗК.Cells(1, «B»   ;)  .Value = ТЗ.Знач1;
ЛистАЗК.Cells(1, «С»   ;)  .Value = ТЗ.Знач2;
ЛистАЗК.Cells(1, «D»   ;)  .Value = ТЗ.Знач3;

У нас жара +30, я туплю похоже или не то спрашиваю. Извините

Изменено: Kaban05.07.2013 10:46:28

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

#10

05.07.2013 10:44:38

Можно и так

Код
sheets(НомерЛиста)

если НомерЛиста=3 или другое число.
Про количество строк — это уже другой вопрос, зависящий от кучи разных обстоятельств…

Только в общем случае нужно писать

Код
worksheets(3)

т.к. если будут другие, не рабочие листы — столкнётесь с ошибкой работы.

Изменено: Hugo05.07.2013 10:46:57

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

#11

05.07.2013 11:00:21

Ну так вся проблема в том, как перебрать эту Вашу таблицу — это уже Ваша 1С сторона.
Далее в экселе просто:

Код
worksheets(n).Cells(1, "B").Value = Знач1
worksheets(n).Cells(1, "C").Value = Знач2
worksheets(n).Cells(1, "D").Value = Знач3
 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#12

05.07.2013 11:04:19

Цитата
Hugo пишет:
Только в общем случае нужно писать

Код
 worksheets(3) 

т.к. если будут другие, не рабочие листы — столкнётесь с ошибкой работы.

В итоге должно быть так?
ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста)

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

#13

05.07.2013 11:10:17

Что за ЛистАЗК и КнигаАЗК?
Но вполне возможна такая строка кода:

Код
set ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста)

Код
Sub tt()

    Dim КнигаАЗК As Workbook, ЛистАЗК As Worksheet, ИмяЛиста As Long

    ИмяЛиста = 2
    Set КнигаАЗК = ThisWorkbook
    Set ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста)

    ЛистАЗК.Range("A1").Value = "test"
    MsgBox ЛистАЗК.Range("A1")

End Sub

Изменено: Hugo05.07.2013 11:13:58

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#14

05.07.2013 11:15:52

Цитата
Hugo пишет:
Что за ЛистАЗК и КнигаАЗК?
Но вполне возможна такая строка кода:

Код
 set ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста) 

Код
 Sub tt()

    Dim КнигаАЗК As Workbook, ЛистАЗК As Worksheet, ИмяЛиста As Long

    ИмяЛиста = 2
    Set КнигаАЗК = ThisWorkbook
    Set ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста)

    ЛистАЗК.Range("A1").Value = "test"
    MsgBox ЛистАЗК.Range("A1")

End Sub
 

Спасибо, думаю это то,  что надо. Буду копать теперь как перенести это на язык 1с.

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

Только учтите, что Sheets(3) и Sheets(«3») — это разные вещи.

There is no knowledge that is not power

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#16

05.07.2013 11:43:08

Цитата
Johny пишет:
Только учтите, что Sheets(3) и Sheets(«3») — это разные вещи.

да :)  я уже догадался и исправил.

Вероятно, самое большое преимущество использования именованных диапазонов заключается в том, что формулы становится намного проще читать и понимать, причем не только вам, но и другим пользователям, которым приходится работать с вашими электронными таблицами.

Используя именованные диапазоны (несомненно, одну из самых полезных возможностей Excel), можно сослаться на диапазон ячеек и назначить ему определенное имя. После этого можно ссылаться на этот диапазон по имени, а не по адресу. Хотя именованные диапазоны и представляют собой мощный инструмент,

Хотя номера ячеек лежат в основе всего, что делает Excel, намного проще запоминать имена, например, Item Number или Quantity, чем номера ячеек, например, А1:А100, В Excel это сделать просто.

В Excel используется одна и та же техника определения именованных ячеек и именованных диапазонов — поле имени в левой части строки формул. Чтобы присвоить имя ячейке, выделите ее, введите нужное имя в поле имени (рис. 3.1) и нажмите клавишу Enter. Чтобы присвоить имя диапазону ячеек, выделите диапазон, введите нужное имя для диапазона в поле имени и нажмите клавишу Enter.

Рис. 3.1. Присваивание ячейке имени MyFavoriteCell

Рис. 3.1. Присваивание ячейке имени MyFavoriteCell

Раскрывающийся список справа в поле имени позволяет находить именованные диапазоны и ячейки (дополнительные способы поиска диапазонов вы найдете в статье «Трюк № 44. Поиск именованных диапазонов на рабочем листе»). Если точно выделить диапазон, вместо обычных ссылок на ячейки в поле имени появится его имя. В формулах эти имена можно применять вместо идентификаторов ячеек или диапазонов. Если вы назовете ячейку Е4 «date», то сможете использовать формулу =date вместо =Е4. Схожим образом если вы создадите диапазон с названием «quantity» в ячейках АЗ:А10, то сможете написать формулу =CУMM(quantity) (=SUM(quantity)) вместо =СУММ(АЗ:А10) (=SUM(A3:A10)).

По мере того как электронные таблицы становятся больше и сложнее, именованные ячейки и диапазоны становятся жизненно необходимым инструментом для поддержания понятности и управляемости таблиц.

Функция ПОИСК() в MS EXCEL

​Смотрите также​ не две сразу.​ формулу: На этот​ в конце статьи​ начинается со второй​ формулы нажмите комбинацию​ что не препятствует,​

Синтаксис функции

​ была максимальная продажа​​Переменный резистор​

​ чтобы пропустить нужное​​ возвращаемое значение указанным​ окна можно производить​

​-​​Позиция первого знака «и»​~​​ затем вернуть текст​​ вхождение м»)​

​Функция ПОИСК(), английский вариант​​ Стоит напомнить о​ раз после ввода​ – финальный результат.​ строки!​​ клавиш CTRL+SHIFT+Enter, так​​ чтобы приведенный этот​ Товара 4.​

​В документе 46 листов,​​ количество знаков. Предположим,​​ ниже образом.​ поиск на любой​статья «Вставить примечание​ в строке ячейки​).​ с помощью функций​Формула =ПОИСК(«клад?»;»докладная») вернет 3,​ SEARCH(), находит первое​ том, что в​ формулы для подтверждения​Сначала научимся получать заголовки​Допустим ваш отчет содержит​

​ как формула будет​ скелет формулы применить​Чтобы выполнить поиск по​

​ и по 5​ например, что для​Функция НАЙТИ при подсчете​ странице, надо только​ в Excel» тут​

Примеры

​ A2, начиная с​Если​ПСТР​ т.е. в слове​

​ вхождение одной текстовой​​ ячейке С3 должна​​ жмем как по​ столбцов таблицы по​ таблицу с большим​ выполнена в массиве.​ с использованием более​ столбцам следует:​ страниц на каждом,​

​ поиска строки «МДС0093.МесячныеПродажи»​ всегда рассматривает каждый​ его активизировать на​ .​ шестого знака.​искомый_текст​и​

​ «докладная» содержится слово​ строки в другой​ оставаться старая формула:​ традиции просто Enter:​ значению. Для этого​ количеством данных на​ А в строке​ сложных функций для​В ячейку B1 введите​ есть ли возможность​ используется функция НАЙТИ.​ знак, как однобайтовый,​ открытой странице. Для​Для быстрого поиска​7​

​не найден, возвращается​ПСТРБ​ из 5 букв,​ строке и возвращает​Здесь правильно отображаются координаты​Для строки вводим похожую,​ выполните следующие действия:​ множество столбцов. Проводить​

Функция НАЙТИ() vs ПОИСК()

​ формул появятся фигурные​ реализации максимально комфортного​ значение Товара 4​ искат ьво всей​ Чтобы найти номер​ так и двухбайтовый,​ этого нажать курсор​ существует сочетание клавиш​=ПОИСК(A4;A3)​

Связь с функциями ЛЕВСИМВ(), ПРАВСИМВ() и ПСТР()

​ значение ошибки #ЗНАЧ!.​или заменить его​ первые 4 из​ начальную позицию найденной​

​ первого дубликата по​​ но все же​​В ячейку B1 введите​ визуальный анализ таких​ скобки.​ анализа отчета по​ – название строки,​ книеге одновременно, а​ первого вхождения «М»​ как один знак,​ на строке «найти».​ –​Начальная позиция строки «маржа»​

excel2.ru

ПОИСК, ПОИСКБ (функции ПОИСК, ПОИСКБ)

​Если аргумент​ с помощью функций​ которых клад (начиная​​ строки.​​ вертикали (с верха​​ немного другую формулу:​​ значение взятое из​

Описание

​ таблиц крайне сложно.​​В ячейку F1 введите​​ продажам.​​ которое выступит в​​ не на каждм​ в описательную часть​ независимо от выбранного​Для более расширенного​Ctrl + F​ (искомая строка в​начальная_позиция​ЗАМЕНИТЬ​ с третьей буквы​ПОИСКискомый_текстпросматриваемая_строка​ в низ) –​

​В результате получены внутренние​

​ таблицы 5277 и​​ А одним из​​ вторую формулу:​Например, как эффектно мы​ качестве критерия.​

​ листе отдельно? Ато​ текстовой строки, задайте​ по умолчанию языка.​

​ поиска нажмите кнопку​

​. Нажимаем клавишу Ctrl​​ ячейке A4) в​​опущен, то он​и​ слова докладная).​;[нач_позиция])​ I7 для листа​​ координаты таблицы по​​ выделите ее фон​​ заданий по работе​​Снова Для подтверждения нажмите​ отобразили месяц, в​В ячейку D1 введите​ 46 раз просить​ значение аргумента «нач_позиция»​Функция НАЙТИБ при подсчете​​ «Параметры» и выберите​​ и, удерживая её,​​ строке «Доход: маржа»​​ полагается равным 1.​ЗАМЕНИТЬБ​​Функция НАЙТИ() учитывает РЕгиСТР​​Искомый_текст​​ и Август; Товар2​​ значению – Март;​ синим цветом для​ с отчетом является​

​ CTRL+SHIFT+Enter.​​ котором была максимальная​

  • ​ следующую формулу:​ его найти одно​ равным 8, чтобы​

  • ​ рассматривает каждый двухбайтовый​ нужный параметр поиска.​ нажимаем клавишу F.​ (ячейка, в которой​Если аргумент​. Эти функции показаны​ букв и не​  — текст, который требуется​ для таблицы. Оставим​ Товар 4:​ читабельности поля ввода​ – анализ данных​В первом аргументе функции​

​ продажа, с помощью​Для подтверждения после ввода​ и тоже както​ поиск в той​ знак как два​

Синтаксис

​Например, выберем — «Значение».​

​ Появится окно поиска.​

​ выполняется поиск — A3).​начальная_позиция​

  • ​ в примере 1​​ допускает использование подстановочных​ найти.​

  • ​ такой вариант для​​На первый взгляд все​ (далее будем вводить​ относительно заголовков строк​​ ГПР (Горизонтальный ПРосмотр)​​ второй формулы. Не​

  • ​ формулы нажмите комбинацию​​ тяжко.​ части текста, которая​​ знака, если включена​​ Тогда будет искать​Ещё окно поиска​

Замечание

  • ​8​​не больше 0​​ данной статьи.​​ знаков. Для поиска​​Просматриваемая_строка​ следующего завершающего примера.​ работает хорошо, но​​ в ячейку B1​​ и столбцов касающихся​​ указываем ссылку на​​ сложно заметить что​

  • ​ горячих клавиш CTRL+SHIFT+Enter,​​Валерий беляев​​ является серийным номером,​ поддержка языка с​ и числа, и​​ можно вызвать так​​=ЗАМЕНИТЬ(A3;ПОИСК(A4;A3);6;»объем»)​​ или больше, чем​​Важно:​ без учета регистра,​  — текст, в которой​Данная таблица все еще​ что, если таблица​ другие числа, чтобы​ определенного месяца. На​​ ячейку с критерием​​ во второй формуле​

  • ​ так как формула​​: Pasha Ram -​​ не производился. Функция​ БДЦС и такой​

  • ​ номер телефона, т.д.​​ — на закладке​​Заменяет слово «маржа» словом​ длина​

  • ​ ​​ а также для​​ ищется​ не совершенна. Ведь​ будет содержат 2​​ экспериментировать с новыми​​ первый взгляд это​ для поиска. Во​

  • ​ мы использовали скелет​​ должна быть выполнена​​ ты сам то​ НАЙТИ начинает со​ язык установлен по​Если нужно найти​​ «Главная» нажать кнопку​​ «объем», определяя позицию​просматриваемого текста​Эти функции могут быть​ поиска с использованием​Искомый_текст​ при анализе нужно​ одинаковых значения? Тогда​​ значениями).​​ весьма простое задание,​ втором аргументе указана​ первой формулы без​ в массиве. Если​ пробовал?​ знака 8, находит​ умолчанию. В противном​​ все одинаковес слова,​​ «Найти и выделить».​ слова «маржа» в​, возвращается значение ошибки​ доступны не на​​ подстановочных знаков пользуйтесь​​.​ точно знать все​ могут возникнуть проблемы​​В ячейку C2 вводим​​ но его нельзя​ ссылка на просматриваемый​ функции МАКС. Главная​​ все сделано правильно,​​Ответ:​ искомый_текст в следующем​ случае функция НАЙТИБ​​ но в падежах​​На вкладке «Найти» в​

Примеры

​ ячейке A3 и​ #ЗНАЧ!.​ всех языках.​ функцией ПОИСК().​Нач_позиция​ ее значения. Если​ с ошибками! Рекомендуем​ формулу для получения​ решить, используя одну​ диапазон таблицы. Третий​ структура формулы: ВПР(B1;A5:G14;СТОЛБЕЦ(B5:G14);0).​ в строке формул​Нажимаешь Ctrl+F​

​ знаке и возвращает​

​ рассматривает каждый знак​

​ (молоко, молоком, молоку,​

​ ячейке «найти» пишем​

​ заменяя этот знак​

​Аргумент​

​Функция ПОИСКБ отсчитывает по​

​Функция ПОИСК() может быть​

​  — позиция знака в​

​ введенное число в​ также посмотреть альтернативное​ заголовка столбца таблицы​ стандартную функцию. Да,​

​ аргумент генерирует функция​

​ Мы заменили функцию​

​ появятся фигурные скобки.​В открывшемся окне​ число 9. Функция​ как один знак.​ т.д.), то напишем​ искомое слово (можно​

​ и последующие пять​

​начальная_позиция​

​ два байта на​ использована совместно с​ просматриваемой_строке, с которой​ ячейку B1 формула​ решение для поиска​ который содержит это​ конечно можно воспользоваться​ СТРОКА, которая создает​

​ МАКС на ПОИСКПОЗ,​

​В ячейку F1 введите​

​ нажимаешь «Параметры»​ НАЙТИ всегда возвращает​К языкам, поддерживающим БДЦС,​ формулу с подстановочными​ часть слова) и​

​ знаков текстовой строкой​

​можно использовать, чтобы​

​ каждый символ, только​ функциями ЛЕВСИМВ(), ПРАВСИМВ()​ должен начинаться поиск.​

​ не находит в​

​ столбцов и строк​

​ значение:​ инструментом: «ГЛАВНАЯ»-«Редактирование»-«Найти» CTRL+F,​ в памяти массив​

​ которая в первом​

support.office.com

Поиск в Excel.

​ вторую формулу:​​В открывшихся окошечках​​ номер знака, считая​​ относятся японский, китайский​​ знаками. Смотрите об​ нажимаем «найти далее».​ «объем.»​ пропустить определенное количество​ если языком по​​ и ПСТР().​ ​ Если аргумент​ таблице, тогда возвращается​
​ по значению.​После ввода формулы для​ чтобы вызвать окно​​ номеров строк из​ аргументе использует значение,​Снова Для подтверждения нажмите​ выбираешь «В книге»​ от левого края​ (упрощенное письмо), китайский​
​ этом статью «Подстановочные​ Будет найдено первое​Доход: объем​​ знаков. Допустим, что​ умолчанию является язык​Например, в ячейке​нач_позиция​ ошибка – #ЗНАЧ!​Чтобы проконтролировать наличие дубликатов​ подтверждения нажимаем комбинацию​
​ поиска значений на​​ 10 элементов. Так​ полученное предыдущей формулой.​​ комбинацию клавиш CTRL+SHIFT+Enter.​Вводишь что искать​ текста «просматриваемый_текст», а​ (традиционное письмо) и​ знаки в Excel».​
​ такое слово. Затем​=ПСТР(A3;ПОИСК(» «;A3)+1,4)​ ​ функцию​​ с поддержкой БДЦС.​А2​опущен, то предполагается​
​ Идеально было-бы чтобы​ среди значений таблицы​ горячих клавиш CTRL+SHIFT+Enter,​​ листе Excel. Или​​ как в табличной​ Оно теперь выступает​Найдено в каком месяце​Нажимаешь «Найти все»​
​ не от значения​ корейский.​Функция в Excel «Найти​ нажимаете «найти далее»​Возвращает первые четыре знака,​
​ПОИСК​ В противном случае​содержится фамилия и​ значение 1.​ формула при отсутствии​ создадим формулу, которая​ так как формула​ же создать для​ части у нас​ в качестве критерия​ и какая была​
​ЗЫ: Это в​ аргумента «нач_позиция».​НАЙТИ(искомый_текст;просматриваемый_текст;[нач_позиция])​ и выделить»​ и поиск перейдет​ которые следуют за​нужно использовать для​ функция ПОИСКБ работает​ имя «Иванов Иван»,​В аргументе​ в таблице исходного​ сможет информировать нас​
​ должна быть выполнена​ таблицы правило условного​ находится 10 строк.​ для поиска месяца.​ наибольшая продажа Товара​ 2007, другого нет​Скопируйте образец данных из​НАЙТИБ(искомый_текст;просматриваемый_текст;[нач_позиция])​поможет не только​ на второе такое​
​ первым пробелом в​​ работы с текстовой​ так же, как​ то формула =ЛЕВСИМВ(A2;ПОИСК(СИМВОЛ(32);A2)-1)​​искомый_текст​​ числа сама подбирала​
​ о наличии дубликатов​
​ в массиве. Если​ форматирования. Но тогда​Далее функция ГПР поочередно​ И в результате​ 4 на протяжении​ — проверить не​ следующей таблицы и​Аргументы функций НАЙТИ и​ найти данные, но​ слово.​ строке «Доход: маржа»​ строкой «МДС0093.МужскаяОдежда». Чтобы​ функция ПОИСК, и​ извлечет фамилию, а​можно использовать подстановочные​ ближайшее значение, которое​ и подсчитывать их​ все сделано правильно​
​ нельзя будет выполнить​ используя каждый номер​ функция ПОИСКПОЗ нам​ двух кварталов.​ могу​ вставьте их в​ НАЙТИБ описаны ниже.​ и заменить их.​А если надо показать​ (ячейка A3).​ найти первое вхождение​ отсчитывает по одному​ =ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК(СИМВОЛ(32);A2)) — имя.​
​ знаки — вопросительный​ содержит таблица. Чтобы​ количество. Для этого​ в строке формул​
​ дальнейших вычислений с​ строки создает массив​ возвращает номер столбца​В первом аргументе функции​
​Majya penzeva​ ячейку A1 нового​Искомый_текст​ Смотрите статью «Как​ сразу все такие​марж​ «М» в описательной​ байту на каждый​ Если между именем​
​ знак (?) и​ создать такую программу​​ в ячейку E2​ по краям появятся​ полученными результатами. Поэтому​ соответственных значений продаж​ 2 где находится​ ВПР (Вертикальный ПРосмотр)​: Нажмите Ctrl+F в​
​ листа Excel. Чтобы​    — обязательный аргумент. Текст,​ скопировать формулу в​ слова, то нажимаем​=ПОИСК(«»»»;A5)​ части текстовой строки,​ символ.​
​ и фамилией содержится​ звездочку (*). Вопросительный​ для анализа таблиц​ вводим формулу:​ фигурные скобки {​ необходимо создать и​ из таблицы по​ максимальное значение объема​ указывается ссылка на​
​ всплывшем окне внесите​ отобразить результаты формул,​ который необходимо найти.​ Excel без изменения​ кнопку «найти все»​

excel-office.ru

НАЙТИ, НАЙТИБ (функции НАЙТИ, НАЙТИБ)

​Позиция первой двойной кавычки​ задайте для аргумента​К языкам, поддерживающим БДЦС,​​ более одного пробела,​​ знак соответствует любому​​ в ячейку F1​​Более того для диапазона​

Описание

​ }.​ правильно применить соответствующую​ определенному месяцу (Июню).​ продаж для товара​ ячейку где находится​ нужное слово и​ выделите их и​

​Просматриваемый_текст​​ ссылок» здесь.​

  • ​ и внизу поискового​ («) в ячейке​начальная_позиция​

  • ​ относятся японский, китайский​ то для работоспособности​ знаку; звездочка —​ введите новую формулу:​ табличной части создадим​В ячейку C2 формула​ формулу.​ Далее функции МАКС​ 4. После чего​ критерий поиска. Во​

  • ​ выбирите найти все.​ нажмите клавишу F2,​    — обязательный аргумент. Текст,​Как убрать лишние​ окошка появится список​ A5.​значение 8, чтобы​

  • ​ (упрощенное письмо), китайский​ вышеупомянутых формул используйте​ любой последовательности знаков.​После чего следует во​ правило условного форматирования:​ вернула букву D​Схема решения задания выглядит​ осталось только выбрать​ в работу включается​ втором аргументе указывается​Имеем таблицу, в которой​

​ а затем — клавишу​ в котором нужно​ пробелы, которые мешают​ с указанием адреса​5​

Синтаксис

​ поиск не выполнялся​

​ (традиционное письмо) и​

​ функцию СЖПРОБЕЛЫ().​ Если нужно найти​

  • ​ всех остальных формулах​​Выделите диапазон B6:J12 и​ — соответственный заголовок​

  • ​ примерно таким образом:​​ максимальное значение из​ функция ИНДЕКС, которая​ диапазон ячеек для​

  • ​ записаны объемы продаж​​ ВВОД. При необходимости​ найти искомый текст.​ обрабатывать данные в​ ячейки. Чтобы перейти​=ПСТР(A5;ПОИСК(«»»»;A5)+1;ПОИСК(«»»»;A5;ПОИСК(«»»»;A5)+1)-ПОИСК(«»»»;A5)-1)​ в той части​ корейский.​В этой статье описаны​

Замечания

  • ​ в тексте вопросительный​ изменить ссылку вместо​ выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное​ столбца листа. Как​в ячейку B1 мы​ этого массива.​ возвращает значение по​ просмотра в процессе​ определенных товаров в​ измените ширину столбцов,​

  • ​Начальная_позиция​ таблице, читайте в​ на нужное слово​Возвращает из ячейки A5​ текста, которая является​ПОИСК(искомый_текст;просматриваемый_текст;[начальная_позиция])​ синтаксис формулы и​ знак или звездочку,​ B1 должно быть​

  • ​ форматирование»-«Правила выделения ячеек»-«Равно».​ видно все сходиться,​

  • ​ будем вводить интересующие​Далее немного изменив первую​ номеру сроки и​ поиска. В третьем​ разных месяцах. Необходимо​

  • ​ чтобы видеть все​    — необязательный аргумент. Знак,​ статье «Как удалить​ в таблице, нажимаем​

  • ​ только текст, заключенный​ серийным номером (в​ПОИСКБ(искомый_текст;просматриваемый_текст;[начальная_позиция])​ использование функций​ следует поставить перед​

  • ​ F1! Так же​В левом поле введите​ значение 5277 содержится​ нас данные;​ формулу с помощью​ столбца из определенного​ аргументе функции ВПР​ в таблице найти​ данные.​ с которого нужно​ лишние пробелы в​ нужное слово в​ в двойные кавычки.​ данном случае —​Аргументы функций ПОИСК и​ПОИСК​ ними тильду (~).​ нужно изменить ссылку​ значение $B$1, а​ в ячейке столбца​в ячейке B2 будет​ функций ИНДЕКС и​ в ее аргументах​ должен указываться номер​ данные, а критерием​Данные​ начать поиск. Первый​

Примеры

​ Excel» тут.​ списке окна поиска.​босс​ «МДС0093»). Функция​ ПОИСКБ описаны ниже.​и​Если искомый_текст не найден,​ в условном форматировании.​ из правого выпадающего​ D. Рекомендуем посмотреть​ отображается заголовок столбца,​ ПОИСКПОЗ, мы создали​ диапазона. Так как​

​ столбца, из которого​

​ поиска будут заголовки​

​Владимир Егоров​

​ знак в тексте​

​В Excel можно​

​Если поиск ничего не​

​Часто возникает вопрос​ПОИСК​

​Искомый_текст​

​ПОИСКБ​

​ возвращается значение ошибки​ Выберите: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Управление​

​ списка выберите опцию​

​ на формулу для​

​ который содержит значение​ вторую для вывода​ у нас есть​

​ следует взять значение​

Пример 2

​ строк и столбцов.​

​Формула​

​ «просматриваемый_текст» имеет номер​

​ найти любую информацию​

​ нашел, а вы​

​«​

​начинает поиск с​

​    Обязательный. Текст, который требуется​

​в Microsoft Excel.​ #ЗНАЧ!​ правилами»-«Изменить правило». И​ «Светло-красная заливка и​

​ получения целого адреса​

​ ячейки B1​

​ названия строк таблицы​ номер столбца 2,​ на против строки​ Но поиск должен​

​Описание​

​ 1. Если номер​

​ не только функцией​ знаете, что эти​Как найти в Excel​ восьмого символа, находит​

​ найти.​

support.office.com

Как искать слово в книге excel?

​Функции​Функция ПОИСК() не учитывает​ здесь в параметрах​ темно-красный цвет» и​ текущей ячейки.​в ячейке B3 будет​ по зачиню ячейки.​ а номер строки​ с именем Товар​ быть выполнен отдельно​Результат​ опущен, он полагается​

​ «Поиск» или формулами,​​ данные точно есть,​»?​ знак, указанный в​
​Просматриваемый_текст​
​ПОИСК​
​ РЕгиСТР букв. Для​ укажите F1 вместо​
​ нажмите ОК.​Теперь получим номер строки​
​ отображается название строки,​
​ Название соответствующих строк​
​ в диапазоне где​ 4. Но так​ по диапазону строки​=НАЙТИ(«В»;A2)​

​ равным 1.​​ но и функцией​ то попробуйте убрать​В Excel можно​ аргументе​

Поиск значения в столбце и строке таблицы Excel

​    Обязательный. Текст, в котором​И​ поиска с учетом​ B1. Чтобы проверить​В ячейку B1 введите​ для этого же​ которая содержит значение​ (товаров) выводим в​ хранятся названия месяцев​ как нам заранее​ или столбца. То​Позиция первой «В» в​Функции НАЙТИ и НАЙТИБ​ условного форматирования. Читайте​ из ячеек таблицы​ найти любую информацию:​искомый_текст​ нужно найти значение​

Поиск значений в таблице Excel

​ПОИСКБ​ регистра следует воспользоваться​ работу программы, введите​ значение 3478 и​ значения (5277). Для​

​ ячейки B1.​ F2.​ в любые случаи​

Отчет объем продаж товаров.

​ не известен этот​ есть будет использоваться​ ячейке A2​ работают с учетом​ об этом статью​ отступ. Как убрать​ текст, часть текста,​, в следующей позиции,​ аргумента​находят одну текстовую​ функцией НАЙТИ().​ в ячейку B1​ полюбуйтесь на результат.​ этого в ячейку​Фактически необходимо выполнить поиск​ВНИМАНИЕ! При использовании скелета​ будет 1. Тогда​ номер мы с​ только один из​

Поиск значения в строке Excel

​1​ регистра и не​ «Условное форматирование в​ отступ в ячейках,​ цифру, номер телефона,​

​ и возвращает число​искомый_текст​

  1. ​ строку в другой​Формула =ПОИСК(«к»;»Первый канал») вернет​ число которого нет​Как видно при наличии​ C3 введите следующую​
  2. ​ координат в Excel.​ формулы для других​
  3. ​ нам осталось функцией​ помощью функции СТОЛБЕЦ​ критериев. Поэтому здесь​=НАЙТИ(«в»;A2)​ позволяют использовать подстановочные​ Excel» здесь.​ смотрите в статье​ эл. адрес​ 9. Функция​Результат поиска по строкам.
  4. ​.​ и возвращают начальную​
  5. ​ 8, т.к. буква​ в таблице, например:​

Найдено название столбца.

​ дубликатов формула для​ формулу:​ Для чего это​ задач всегда обращайте​ ИНДЕКС получить соответственное​

Принцип действия формулы поиска значения в строке Excel:

​ создаем массив номеров​ нельзя применить функцию​Позиция первой «в» в​ знаки. Если необходимо​Ещё прочитать о​ «Текст Excel. Формат».​,​ПОИСК​Начальная_позиция​ позицию первой текстовой​ к находится на​ 8000. Это приведет​ заголовков берет заголовок​После ввода формулы для​ нужно? Достаточно часто​ внимание на второй​ значение из диапазона​ столбцов для диапазона​ ИНДЕКС, а нужна​ ячейке A2​ выполнить поиск без​ функции «Найти и​Поиск числа в Excel​

​фамилию, формулу, примечание, формат​всегда возвращает номер​    Необязательный. Номер знака в​ строки (считая от​ 8-й позиции слева.​ к завершающему результату:​ с первого дубликата​ подтверждения снова нажимаем​ нам нужно получить​ и третий аргумент​ B4:G4 – Февраль​ B4:G15.​ специальная формула.​15​ учета регистра или​ выделить» можно в​требует небольшой настройки​ ячейки, т.д.​

​ знака, считая от​ аргументе​ первого символа второй​Пусть в ячейке​Теперь можно вводить любое​ по горизонтали (с​ комбинацию клавиш CTRL+SHIFT+Enter​ координаты таблицы по​ поисковой функции ГПР.​ (второй месяц).​Это позволяет функции ВПР​Для решения данной задачи​=НАЙТИ(«и»;A2;3)​ использовать подстановочные знаки,​ статье «Фильтр в​ условий поиска -​Найти ячейку на пересечении​ начала​просматриваемый_текст​ текстовой строки). Например,​

Как получить заголовки столбцов по зачиню одной ячейки?

​А2​ исходное значение, а​ лева на право).​ и получаем результат:​ значению. Немного напоминает​ Количество охваченных строк​​ собрать целый массив​ проиллюстрируем пример на​Позиция первой «и» в​ воспользуйтесь функцией ПОИСК​ Excel».​ применим​ строки и столбца​просматриваемого текста​, с которого следует​ чтобы найти позицию​введена строка Первый​ программа сама подберет​ А формула для​Формула вернула номер 9​ обратный анализ матрицы.​ в диапазоне указанного​Вторым вариантом задачи будет​ значений. В результате​ схематической таблице, которая​ строке А2, начиная​ или ПОИСКБ.​В этой статье описаны​расширенный поиск в Excel​ Excel​, включая символы, которые​ начать поиск.​ буквы «n» в​ канал — лучший.​ ближайшее число, которое​ получения названия (номера)​ – нашла заголовок​ Конкретный пример в​ в аргументе, должно​ поиск по таблице​ в памяти хранится​ соответствует выше описанным​ с третьего знака​Если в качестве аргумента​

​ синтаксис формулы и​

Поиск значения в столбце Excel

​.​– смотрите статью​ пропускаются, если значение​Функции​ слове «printer», можно​ Формула =ПОИСК(СИМВОЛ(32);A2) вернет​ содержит таблица. После​ строки берет номер​ строки листа по​ двух словах выглядит​ совпадать с количеством​

​ с использованием названия​ все соответствующие значения​ условиям.​8​ «искомый_текст» задана пустая​

​ использование функций​Совет.​ «Как найти в​ аргумента​

  1. ​ПОИСК​ использовать следующую функцию:​ 7, т.к. символ​ чего выводит заголовок​ с первого дубликата​
  2. ​ соответствующему значению таблицы.​ примерно так. Поставленная​
  3. ​ строк в таблице.​ месяца в качестве​ каждому столбцу по​Лист с таблицей для​Данные​ строка («»), функция​НАЙТИ​Если вы работаете​Результат поиска по столбцам.
  4. ​ Excel ячейку на​начальная_позиция​
  5. ​и​=ПОИСК(«н»;»принтер»)​

Найдено название строки.

Принцип действия формулы поиска значения в столбце Excel:

​ пробела (код 32)​ столбца и название​ по вертикали (сверху​ В результате мы​ цель в цифрах​ А также нумерация​ критерия. В такие​ строке Товар 4​ поиска значений по​Керамический изолятор №124-ТД45-87​ НАЙТИ выводит значение,​и​ с таблицей продолжительное​ пересечении строки и​больше 1.​ПОИСКБ​

​Эта функция возвращает​ находится на 7-й​ строки для текущего​ вниз). Для исправления​ имеем полный адрес​ является исходным значением,​ должна начинаться со​ случаи мы должны​ (а именно: 360;​ вертикали и горизонтали:​

​Медная пружина №12-671-6772​ равное первому знаку​НАЙТИБ​ время и вам​ столбца» (функция «ИНДЕКС»​Скопируйте образец данных из​не учитывают регистр.​4​ позиции.​ значения. Например, если​

​ данного решения есть​ значения D9.​ нужно определить кто​ второй строки!​ изменить скелет нашей​ 958; 201; 605;​Над самой таблицей расположена​Переменный резистор №116010​ в строке поиска​в Microsoft Excel.​ часто надо переходить​ в Excel).​ следующей таблицы и​ Если требуется учитывать​

​, так как «н»​Формула =ПОИСК(«#???#»;»Артикул #123# ID»)​ ввести число 5000​

​ 2 пути:​​ и когда наиболее​Скачать пример поиска значения​

​ формулы: функцию ВПР​ 462; 832). После​ строка с результатами.​Формула​ (знак с номером,​Функции НАЙТИ и НАЙТИБ​ к поиску от​Найти и перенести в​ вставьте их в​ регистр, используйте функции​ является четвертым символом​ будет искать в​ получаем новый результат:​Получить координаты первого дубликата​Теперь научимся получать по​ приближен к этой​

exceltable.com

Поиск значения в диапазоне таблицы Excel по столбцам и строкам

​ в столбце и​ заменить ГПР, а​ чего функции МАКС​ В ячейку B1​Описание (результат)​ соответствующим аргументу «нач_позиция»​ находят вхождение одной​ одного слова к​ другое место в​ ячейку A1 нового​НАЙТИ​ в слове «принтер».​ строке «Артикул #123#​Скачать пример поиска значения​ по горизонтали (с​ значению координаты не​ цели. Для примера​ строке Excel​ функция СТОЛБЕЦ заменяется​ остается только взять​ водим критерий для​Результат​ или 1).​ текстовой строки в​ другому. Тогда удобнее​ Excel​ листа Excel. Чтобы​и​Можно также находить слова​ ID» последовательность из​ в диапазоне Excel​ лева на право).​

Поиск значения в массиве Excel

​ целого листа, а​ используем простую матрицу​

  • ​Читайте также: Поиск значения​ на СТРОКА.​ из этого массива​
  • ​ поискового запроса, то​=ПСТР(A2;1;НАЙТИ(» №»;A2;1)-1)​Искомый_текст не может содержать​ другую и возвращают​
  • ​ окно поиска не​(например, в бланк)​ отобразить результаты формул,​НАЙТИБ​

​ в других словах.​ 5 символов, которая​Наша программа в Excel​ Для этого только​ текущей таблицы. Одним​ данных с отчетом​ в диапазоне таблицы​Это позволит нам узнать​ максимальное число и​ есть заголовок столбца​Выделяет текст от позиции​ подстановочные знаки.​ начальную позицию искомой​ закрывать каждый раз,​ несколько данных сразу​ выделите их и​.​ Например, функция​ начинается и заканчивается​ нашла наиболее близкое​ в ячейке С3​ словом, нам нужно​ по количеству проданных​ Excel по столбцам​ какой объем и​ возвратить в качестве​ или название строки.​ 1 до знака​Если «искомый_текст» отсутствует в​ строки относительно первого​ а сдвинуть его​ – смотрите в​ нажмите клавишу F2,​

Массив данных.

​В аргументе​=ПОИСК(«base»;»database»)​ на знак #.​ значение 4965 для​

Поиск значения в столбце Excel

​ следует изменить формулу​ найти по значению​ товаров за три​ и строкам​

  1. ​ какого товара была​ значения для ячейки​ А в ячейке​ «№» в строке​ тексте «просматриваемый_текст», функции​ знака второй строки.​ в ту часть​ статье «Найти в​ а затем — клавишу​искомый_текст​возвращает​
  2. ​Чтобы найти позицию второго​ исходного – 5000.​ на: В результате​ 5277 вместо D9​ квартала, как показано​
  3. ​По сути содержимое диапазона​ максимальная продажа в​ D1, как результат​ D1 формула поиска​ («Керамический изолятор»)​ НАЙТИ и НАЙТИБ​Важно:​ таблицы, где оно​ Excel несколько данных​ ВВОД. При необходимости​можно использовать подстановочные​

Получать заголовки столбцов.

​5​ вхождения буквы «а»​ Такая программа может​ получаем правильные координаты​ получить заголовки:​ ниже на рисунке.​ нас вообще не​ определенный месяц.​ вычисления формулы.​ должна возвращать результат​Керамический изолятор​

Поиск значения в строке Excel

​ возвращают значение ошибки​ ​ не будет мешать.​ сразу» здесь (функция​ измените ширину столбцов,​ знаки: вопросительный знак​

​, так как слово​ в строке «мама​ пригодится для автоматического​ как для листа,​

Получить номер строки.

​для столбца таблицы –​ Важно, чтобы все​ интересует, нам нужен​Чтобы найти какой товар​Как видно конструкция формулы​ вычисления соответствующего значения.​=ПСТР(A3;1;НАЙТИ(» №»;A3;1)-1)​

​ #ЗНАЧ!.​

Как получить заголовок столбца и название строки таблицы

​Эти функции могут быть​ Сдвинуть можно ниже​ «ВПР» в Excel).​ чтобы видеть все​ (​ «base» начинается с​ мыла раму» используйте​ решения разных аналитических​

  • ​ так и для​ Март;​
  • ​ числовые показатели совпадали.​

​ просто счетчик строк.​ обладал максимальным объемом​ проста и лаконична.​ После чего в​Выделяет текст от позиции​Если «нач_позиция» не больше​ доступны не на​

  1. ​ экрана, оставив только​Или​ данные.​?​ пятого символа слова​ формулу =ПОИСК(«а»;»мама мыла​ задач при бизнес-планировании,​Для заголовка столбца.
  2. ​ таблицы:​для строки – Товар4.​ Если нет желания​

​ То есть изменить​ продаж в определенном​ На ее основе​ ячейке F1 сработает​

Внутренние координаты таблицы.

​ 1 до знака​ нуля, функции НАЙТИ​ всех языках.​ ячейку ввода искомого​найти ячейку с ссылкой​Данные​) и звездочку (​ «database». Можно использовать​ раму»;ПОИСК(«а»;»мама мыла раму»)+1).​ постановки целей, поиска​Получить координаты первого дубликата​

Поиск одинаковых значений в диапазоне Excel

​Чтобы решить данную задачу​ вручную создавать и​ аргументы на: СТРОКА(B2:B11)​ месяце следует:​ можно в похожий​ вторая формула, которая​ «№» в ячейке​ и НАЙТИБ возвращают​Функция НАЙТИ предназначена для​

​ слова («найти») и​ в формуле Excel,​Выписки​

  1. ​*​ функции​ Чтобы определить есть​Правила выделения ячеек.
  2. ​ рационального решения и​ по вертикали (сверху​ будем использовать формулу​ заполнять таблицу Excel​ или СТРОКА(С2:С11) –​В ячейку B2 введите​ способ находить для​Условное форматирование.
  3. ​ уже будет использовать​ А3 («Медная пружина»)​ значение ошибки #ЗНАЧ!.​

Ошибка координат.

​ языков с однобайтовой​ нажимать потом Enter.​чтобы заменить ссылку,​Доход: маржа​). Вопросительный знак соответствует​ПОИСК​ ли третье вхождение​ т.п. А полученные​ вниз). Для этого​ с уже полученными​ с чистого листа,​ это никак не​ название месяца Июнь​ определенного товара и​

  1. ​ значения ячеек B1​Медная пружина​Если «нач_позиция» больше, чем​ кодировкой, а функция​Это диалоговое окно​ смотрите статью «Поменять​маржа​ любому знаку, звездочка —​и​ буквы «м» в​ строки и столбцы​Первый по горизонтали.
  2. ​ только в ячейке​ значениями в ячейках​ то в конце​ повлияет на качество​ – это значение​ другие показатели. Например,​

​ и D1 в​=ПСТР(A4;1;НАЙТИ(» №»;A4;1)-1)​ длина аргумента «просматриваемый_текст»,​ НАЙТИБ — для​ поиска всегда остается​ ссылки на другие​Здесь «босс».​ любой последовательности знаков.​

Первое по вертикали.

​ПОИСКБ​ строке «мама мыла​ позволяют дальше расширять​ С2 следует изменить​ C2 и C3.​ статьи можно скачать​ формулы. Главное, что​ будет использовано в​ минимальное или среднее​

Поиск ближайшего значения в диапазоне Excel

​ качестве критериев для​Выделяет текст от позиции​ функции НАЙТИ и​ языков с двухбайтовой​ на экране, даже​ листы в формулах​Формула​ Если требуется найти​для определения положения​ раму» используйте формулу​ вычислительные возможности такого​ формулу на:​ Для этого делаем​ уже с готовым​ в этих диапазонах​ качестве поискового критерия.​ значение объема продаж​ поиска соответствующего месяца.​ 1 до знака​ НАЙТИБ, то возвращается​

​ кодировкой. Заданный на​ если вы переходите​ Excel».​Описание​ вопросительный знак или​ символа или текстовой​ =ЕСЛИ(ДЛСТР(ПОДСТАВИТЬ(«мама мыла раму»;»м»;»»;3))=ДЛСТР(«мама​ рода отчетов с​В данном случаи изменяем​ так:​ примером.​ по 10 строк,​В ячейку D2 введите​ используя для этого​Теперь узнаем, в каком​ «№» в ячейке​ значение ошибки #ЗНАЧ!.​ компьютере язык по​

Поиск ближайшего значения Excel.

​ на другую страницу.​Найти в Excel ячейки​Результат​ звездочку, введите перед​ строки в другой​ мыла раму»);»Нет третьего​ помощью новых формул​ формулы либо одну​Для заголовка столбца. В​Последовательно рассмотрим варианты решения​ как и в​

Пример.

​ формулу:​ функции МИН или​

​ максимальном объеме и​ А4 («Переменный резистор»)​Аргумент «нач_позиция» можно использовать,​ умолчанию влияет на​ С помощью этого​ с примечанием​=ПОИСК(«и»;A2;6)​ ним тильду (​ текстовой строке, а​ вхождения м»;»Есть третье​ Excel.​ либо другую, но​ ячейку D2 введите​ разной сложности, а​ таблице. И нумерация​Для подтверждения после ввода​ СРЗНАЧ. Вам ни​

exceltable.com

​ в каком месяце​

Иногда кажется, что компьютеры и другие устройства (телефоны, смартфоны, планшеты и прочее) понимают нас с полуслова, с одного жеста, или даже читают мысли. Действительно, современные компьютеры и их «младшие братья и сестры» выполнены классно! Но кто и как сделал их такими понятливыми? Для наглядности рассмотрим этот вопрос на примере, как компьютер может извлечь фамилию из ФИО в Excel.

Содержание:
1. Думают ли компьютеры и можно ли научить их думать
2. Фамилия из ФИО в Excel: как ее извлечь
3. Как извлечь подстроку из строки текста в Excel
4. Функция ПСТР в Excel, чтобы выделить фамилию из ФИО
5. Функция СЖПРОБЕЛЫ в Excel для удаления лишних пробелов в строках текста
6. Извлечение фамилии любой длины из ФИО в Excel
7. Функция НАЙТИ в Excel для определения положения символа в тексте
8. Совместное применение трех функций Excel: ПСТР, СЖПРОБЕЛЫ и НАЙТИ
9. Видео: Извлечение фамилии из ФИО в Excel
10. Все ли задачи под силу программистам
11. Об искусстве программирования

Умеют ли думать компьютеры

Процессоры внутри современных компьютеров и иных устройств остались почти такими, как они были на заре автоматизации. Нет, они, конечно, лучше: уменьшился размер, повысилась скорость работы, возросла разрядность – число двоичных знаков, которые процессор может обрабатывать за один такт работы. Быстродействие процессоров стало колоссальным по сравнению с тем, что было когда-то в начале пути.

И все-таки процессоры внутри устройств остались почти такими же. Современные процессоры по-прежнему работают с ограниченным набором команд. Они понимают лишь нескольких сотен команд. Причем команды так и остались из разряда «сложить», «умножить», «сравнить больше или меньше», «перейти к следующей команде» и тому подобное.

Процессоры умеют считать. Они не умеют думать, и никогда этому не научатся, в том виде, в той конфигурации, как они есть. Их умения сводятся к незамысловатому списку: складывать, умножать, сравнивать. И только  программисты могут добиться, чтобы устройство делало вид, что оно думает почти как человек. Почти!

Как научить компьютеры думать

Чтобы компьютер или другое устройство могло уверенно общаться с человеком (пользователем), его нужно запрограммировать. Программисты умеют переводить наши человеческие запросы, чаяния, желания на язык бездушного (но удивительно быстрого!) процессора. Именно программисты делают так, чтобы компьютер превращался в умного помощника.

Перевод нашего человеческого мышления на язык цифр, который понимает компьютер, – это дело рук программистов. Только программисты знают, как оцифровать наше во многом непредсказуемое и потому непрограммируемое человеческое мышление.

Программирование  – непростое занятие. Хотя для современных программистов сделано немало полезных приложений, языков программирования, эмуляторов, имитаторов и прочее. Им значительно проще, чем тем, кто начинал подобную работу лет 30-50 тому назад. Все равно современным программистам сложно. Но они – справляются!

Давайте на простом примере покажем отличия нашего человеческого мышления от тех возможностей, которыми на самом деле располагают программисты. Это поможет нам лучше понять, как мыслят и действуют программисты при решении поставленных задач. Понять, как программисты оцифровывают задачи для компьютеров.

Фамилия из ФИО в Excel: как ее извлечь

Пример возьмем следующий. Допустим, перед нами фамилия, имя и отчество некоего человека: Завьялова Анна Петровна. Никто конкретно не имеется в виду, просто случайно выбранная ФИО (фамилия, имя, отчество). Задача для программиста будет следующая: выделить с помощью программного кода из ФИО одну лишь фамилию.

Казалось бы, в чем проблема? Что, разве не видно, что фамилия указанного человека – Завьялова? Да, видно тем, кто умеет читать. Но компьютер не умеет читать. Он не может смотреть как мы и не может думать, как мы. Он умеет только считать. Как «сосчитать» из ФИО одну только фамилию? В этом-то и будет заключаться задача, которую мы ставим перед гипотетическим программистом.

Для решения задачи давайте использовать табличный редактор Microsoft Excel, у которого также есть разные аналоги, например, таблицы  Liber Office и др. Итак, допустим, мы – программисты. Сейчас мы попробуем с помощью программного кода извлечь фамилию из ФИО в Excel.

На новом чистом листе табличного редактора Excel в ячейку B2 вводим ФИО (Завьялова Анна Петровна) и выделяем ее желтым цветом для наглядности. Также размечаем таблицу наших последующих действий (рис. 1).

Ввод ФИО в ячейку B1 в Excel

Рис. 1. Ввод ФИО в ячейку B1 и предварительная разметка листа табличного редактора Microsoft Excel.

В столбце с заголовком № п/п мы будем записывать цифры 1, 2, 3 и так далее – это предстоящие попытки извлечения фамилии из ФИО.

Далее в столбце Фамилия будут размещаться результаты наших попыток.

В столбце Вычисления мы покажем, с помощью каких расчетов удается извлечь требуемую фамилию из ФИО.

Извлечение подстроки из строки текста в Excel

Начнем первую попытку. Давайте посмотрим, как можно из строки текста извлечь некоторую его часть. Перед нами строка: Завьялова Анна Петровна. С точки зрения человека, мы видим тут осмысленный текст. Нет никаких проблем что-либо их этого текста извлечь. Вам фамилию? Извольте: Завьялова!

Однако, с точки зрения компьютера, который умеет только считать, перед его «глазами» расположена лишь последовательность символов: З, а, в, ь, я, л, о, в, а, [пробел] (это тоже символ, равный по значению любому другому символу текста), А, н, н… И так далее. Получается, что компьютеру нужно из всей строки взять только несколько первых символов, начиная с символа З, и заканчивая символом а.

Так пусть возьмет! А как? У компьютера нет глаз, рук и прочего. Компьютер умеет только выполнять заложенные в него программы. Программу (код) надо кому-то написать. Вот мы и начнем писать.

Так как процессор компьютера умеет только считать, придется написать код так, чтобы он мог быть выполнен с помощью каких-либо расчетов. Поэтому нам придется «сказать компьютеру» (иными словами, запрограммировать) примерно следующее: «Из строки Завьялова Анна Петровна, пожалуйста, извлеки подстроку, начиная с символа с порядковым номером 1, и заканчивая символом с порядковым номером 9».

В строке Завьялова Анна Петровна первый символ – это З. Девятый символ – это а. А все, что находится между первым и девятым символами строки – это и есть фамилия Завьялова. Согласны? Теперь попробуем нашу мысль, сформулированную по-русски, перевести на язык программирования, понятный компьютеру.

Функция ПСТР в Excel для выделения фамилии из ФИО

Каким языком программирования мы воспользуемся? Формулы Excel вполне для этого подойдут, раз уж мы выбрали Эксель для нашего примера. В Excel есть функция ПСТР (сокращение от «подстрока»). В формуле ПСТР нужно:

  • указать исходную строку текста (это ячейка B1 на рис. 1),
  • затем ввести первое число (это 1), указывающего на номер начального символа подстроки,
  • и ввести второе число (это 9), указывающего на номер последнего символа подстроки.

Таким образом мы пишем следующую расчетную формулу:

= ПСТР (B1; 1; 9)

– вот так это выглядит в исполнении для компьютера, для Excel.

Вводим указанную формулу в ячейку B4, и получаем результат: фамилию Завьялова в ячейке B4 (рис. 2):

формула ПСТР в Excel для извлечения Фамилии из ФИО

Рис. 2. Результат применения формулы ПСТР в табличном редакторе Excel для извлечения Фамилии из ФИО.

Единичку слева мы приписали вручную – это наша первая (удачная!) попытка извлечь фамилию. Формулу справа мы записали лишь для наглядности нашего примера. В реальной рабочей программе дополнительное размещение формулы в соседней ячейке справа не нужно.

Итак, извлечь Фамилию из ФИО в Excel получилось! Мы имеем то, что хотели с помощью программы на компьютере. Мы смогли из ФИО извлечь первые 9 символов – это и есть искомая фамилия. Главное: нам удалось оцифровать задачу.

Мы сумели цифрами объяснить программе, компьютеру, процессору, какие данные он должен откуда взять и как их обработать. Главные цифры нашей небольшой успешной программы – это 1 и 9, начало и конец подстроки текста. Компьютер в цифрах знает толк, понимает их, делает то, что нам нужно. Как видим, ни о каких буквах (а ФИО – это буквы!) тут речь не идет. Вместо букв мы оперируем их порядковыми номерами в строке. Вот вам и оцифровка: по номерам позиций букв в строке!

Но на этом, к сожалению, работа с кодом (программой) не заканчивается. Будем продолжать.

Функция СЖПРОБЕЛЫ в Excel для удаления лишних пробелов в тексте

ФИО мы вводили вручную в ячейку B1. При ручном вводе не исключены ошибки. Допустим, в начале ФИО мы поставили бы пару-тройку лишних пробелов. Какой бы мы получили результат вычислений? Давайте посмотрим (рис. 3):

функция ПСТР в Excel для удаления лишних пробелов

Рис. 3. Результат работы функции ПСТР в Excel, если в начале исходной строке случайно поставлены лишние пробелы.

Прекрасно видно, что первые три лишних пробела остались в тексте Фамилии в ячейке B4, поэтому фамилия сократилась ровно на 3 символа и стала Завьял. Результат – неверный! Подобные ошибки ввода не исключены, и нам (программистам) надо их предусмотреть.

Для удаления лишних пробелов в тексте в Excel применяется функция «сжать пробелы», которая выглядит так: СЖПРОБЕЛЫ. В качестве аргумента этой функции надо подставить исходную строку.

Функция СЖПРОБЕЛЫ удаляет все пробелы, которые стоят в начале исходной строки. Также она удаляет все пробелы в самом конце исходной строки, и оставляет строго по одному пробелу, если пробелы дублируются в середине строки.

В нашем примере исходный текст ФИО находится в ячейке B1, поэтому мы так и запишем: СЖПРОБЕЛЫ (B1).

Этот новый текст СЖПРОБЕЛЫ (B1) надо подставить вместо ячейки B1. В окончательном виде формула расчета, которую мы запишем в ячейку B5, будет выглядеть так:

=ПСТР ( СЖПРОБЕЛЫ (B1); 1; 9)

Результат налицо: получаем требуемую фамилию Завьялова теперь уже в ячейке B5 (рис. 4).

Исключение лишних пробелов в строке Excel с помощью СЖПРОБЕЛЫ

Рис. 4. Исключение лишних пробелов в исходной строке текста Excel с помощью функции СЖПРОБЕЛЫ.

Слева добавим вручную «двойку» 2, а справа повторим нашу формулу для наглядности. Теперь всё? – спросит нетерпеливый читатель. Ответим, увы, нет! Потому что могут быть еще проблемные ситуации. Следовательно, продолжаем.

Как извлечь фамилию любой длины из ФИО в Excel

Как поведет себя наша программа (код), если мы вместо прежней ФИО подставим в ячейку B1 совсем другую строку? Например, Завгороднев Игорь Петрович (рис. 5).

Проверка программы Excel после подстановки другой ФИО

Рис. 5. Проверяем, как поведет себя написанная программа в Excel после подстановки в нее другой исходной строки ФИО.

Совершенно очевидно, что программа (код) не сработала так, как нужно. Мы получили какой-то кусочек фамилии – Завгородн. Почему так вышло? Потому что мы извлекаем из исходной строки ФИО подстроку строго определенной длины, с первого до девятого символа. Но ведь далеко не все возможные существующие фамилии имеют длину 9 символов!

Значит, придется нам программу (код) изменить так, чтобы компьютер мог извлечь фамилию любой длины. Как это сделать программисту? Встаем в его положение. Он думает, думает, и… понимает, что любая фамилия в ФИО всегда заканчивается пробелом. Пробел отделяет фамилию от имени.

Значит, понимает программист, надо попытаться найти номер позиции в ФИО, в которой стоит пробел. В фамилии Завьялова – это 10-я позиция. В фамилии Завгороднев – это уже12-я позиция. Видите, программист пытается оцифровать задачу, чтобы потом эти цифры донести до компьютера. Иначе – никак, компьютер понимает лишь язык цифр, он умеет только считать!

Функция НАЙТИ в Excel для поиска нужного символа в строке текста

В Excel есть функция, которая позволяет определить номер интересующего символа в строке текста. Это функция НАЙТИ. В ней указывают сначала, что нужно найти в строке, а затем саму строку.

Значит, записываем:  НАЙТИ (“ “ ; B1). Что это означает? Ищем пробел, который обрамлен в кавычки – так записывают в Excel отдельные символы. И ищем пробел в строке, которая записана в ячейке B1 – там у нас размещена ФИО. А еще в приведенной функции НАЙТИ вместо B1 нам придется записать функцию СЖПРОБЕЛЫ (B1) для исключения лишних пробелов:

НАЙТИ (“ “ ; СЖПРОБЕЛЫ (B1) )

В результате функция выдаст номер позиции (искомую цифру, именно цифру!!!) в ФИО, где стоит пробел. Мы этот номер уменьшим на единицу (ведь фамилия короче на 1 символ как раз из-за этого разделяющего пробела). И затем подставим функцию НАЙТИ вместо цифры 9 в прежнюю функция ПСТР.

В итоге цифра 9 будет заменена вычислением. Расчет позволяет динамически изменить цифру – это номер последнего символа в фамилии. Значит, теперь при подстановке любой фамилии в ячейку B1, наша формула будет автоматически и правильно находить последний символ фамилии.

Совместное применение функций Excel: ПСТР, СЖПРОБЕЛЫ и НАЙТИ

Итак, пишем формулу расчета для выделения фамилии любой длины из ФИО:

= ПСТР ( СЖПРОБЕЛЫ(B1); 1; НАЙТИ ( “ “; СЖПРОБЕЛЫ ( B1) ) -1 )

Переведем на русский язык, что мы только что записали:

  • Из строки, которая образуется на основе данных из ячейки B1 (если из нее удалить все лишние пробелы – СЖПРОБЕЛЫ (B1) ), надо извлечь подстроку.
  • Подстрока начинается на первом символе – это единичка (1) после первой точки с запятой.
  • Подстрока заканчивается на символе «пробел» (“ “) за минусом одной позиции (-1).

Итог работы такого теперь уже достаточно сложного и неочевидного расчета – это фамилия Завгороднев в ячейке B6, куда мы поместили наш расчет (рис. 6). Ура, сработало!

функции ПСТР НАЙТИ в Excel для извлечения фамилии из ФИО

Рис. 6. Пример совместного использования функций Excel ПСТР и НАЙТИ для извлечения фамилии произвольной длины из строки ФИО.

Также, как и в прошлые разы, слева записываем цифру 3 (номер очередной попытки извлечения фамилии), а справа повторяем ввод функции для наглядности.

Извлечение фамилии из ФИО в Excel: пример мини программы

Все ли под силу программистам

Вот так, с третьей попытки нам (программистам) удалось извлечь ЛЮБУЮ фамилию из ЛЮБОЙ ФИО. Тогда как вручную любой человек эту работу сделал бы без таких проблем, связанных с оцифровкой задачи для компьютера. Правда, если бы таких ФИО было, скажем, миллион, то человек уже не справится. А компьютер с его сумасшедшей производительностью не то что миллион, и миллиард, пожалуй, сможет потянуть.

В этом-то и заключается суть. Чтобы сделать что-то один раз, для этого компьютер не нужен. А вот выполнять повторяющиеся действия человеку сложно или невозможно. Требуется компьютер для повторяющихся множественных действий.

Но все ли возможные проблемы решены выше? Конечно, нет. В реальной жизни может быть такое, что сложно даже представить, не то, чтобы перечислить. Например, вместо буквы «З» в начале фамилии будет поставлена цифра 3. Внешне символы выглядят одинаково.

Наша только что написанная программа спокойно сработает с «тройкой». Правда, если потом придется фамилии расположить в алфавитном порядке, «тройка» встанет перед «А», а не после «Ж». Непорядок! Значит, надо научить компьютер распознавать «тройки» и автоматически заменять их на буквы «З». Можно также перепутать и другие пары цифры-буквы, например, 0 и «О», а также 4 и «Ч».

При ручном вводе можно спутать верхний и нижний регистры. Исходную фамилию можно ввести с маленькой буквы. Вместо маленьких букв не исключено ошибочное использование больших заглавных букв.

Снова встает задача для программиста: предусмотреть автоматическое распознавание неправильно выбранного регистра и замену больших букв на маленькие, либо маленьких на большие там, где нужно. Оцифровка такой задачи потребует определенных сил и времени, не так это просто, как кажется на первый взгляд.

Возьмем еще более сложную задачу. Что делать компьютеру, если ФИО напечатана наоборот: имя, отчество, фамилия? Придется искать фамилию не с первой позиции до первого пробела (как мы это сделали выше), а со второго пробела и до конца строки. Это намного сложнее сформулировать программисту.

Какие задачи могут быть неразрешимыми для программистов

И совсем неразрешимая задача, если отдельные ФИО будут введены «правильно» (фамилия, имя, отчество), а другие «неправильно» (имя, отчество, фамилия). Как обучить компьютер находить фамилию в тексте, если фамилия не будет стоять на своем строго закрепленном месте?

Фамилия – первая или третья в строке? Глазами-то мы увидим фамилию сразу. Но как оцифровать данную задачу?! Ведь для компьютера, как мы немного убедились выше, нужно однозначно указать, с какого символа по какой символ располагается фамилия в тексте ФИО. Однозначно указать не получится – это может быть с первого символа до первого пробела, либо со второго пробела и до конца. Что значит «либо»? С первого символа или со второго пробела?!

Вообще, самое сложное в программировании, когда исходные данные совсем не структурированы. Если программистам ставят задачи, в которых нет хотя бы элементарного порядка, оцифровать алгоритмы обработки таких текстов крайне сложно. В нашем случае с перепутанным расположением фамилий могут потребоваться огромные дополнительные таблицы, содержащие все известные фамилии. Программист должен будет написать код, который сравнивает строку ФИО с таблицей фамилий с целью поиска в ней подходящей фамилии.

Либо придется писать так называемые эвристические алгоритмы и программы, наделяющие компьютер определенными элементами искусственного интеллекта. Так работают, например, системы распознавания визуальных образов для поиска людей по их изображению с камер видеонаблюдений.

В общем, иногда проще предварительно навести некоторый порядок в работе, подлежащей автоматизации. И только после этого приступать к программированию рабочих действий. Так проще, чем (часто безуспешно) создавать эвристические алгоритмы и программы.

Об искусстве программирования

Список возможных задач для программирования или возникающих проблем при кодировании можно продолжать до бесконечности. С большинством известных задач программисты справляются, иначе бы у нас не было любимых и полезных компьютеров и иных устройств.

Вручную человек легко решает задачи подобного рода, например, извлечение фамилии из ФИО. Для этого у человека есть разум, который помогает ему в поиске и выборе. У компьютера и его основного «работника» процессора разума НЕТ! Процессор умеет только считать. Цифры для компьютера должны быть окончательными и однозначными.

Программистам приходится превращать в цифры, в манипуляции с цифрами всё, что мы обычно делаем силой своего разума. Например, мы видим ФИО не как набор символов, а как четкий образ. Мы можем любой образ преобразовать во что угодно, хоть нарисовать от руки предполагаемый портрет персонажа, скрывающегося под ФИО.

Компьютер же может только считать, повторю это в который раз! Складывать, умножать, сравнивать… Он даже вычитает путем сложения с отрицательными числами, и делит не совсем так, как мы могли бы сделать, скажем, «столбиком».

Программисты – это те, кто умеет, практически, любые человеческие действия превратить в движение чисел. Тем самым они создают для нас незаменимых помощников: компьютеры, ноутбуки, планшеты, смартфоны, телефоны и многое другое, где применяют процессоры для вычислений.

Программирование (иными словами кодирование) – это искусство перевода человеческого мышления на язык цифр! Это именно искусство, поскольку невозможно заранее и для всех мыслимых и немыслимых случаев сделать четкие инструкции. Были бы инструкции – работа программистов напоминала бы ремесло. Сам же процесс составления инструкций выглядел бы в некотором смысле прототипом науки. Но тут не ремесло и не наука, а именно искусство!

В каждом конкретном случае программист должен искать и находить пути оцифровки задачи, действуя творчески. Мы хотим многого, а программисту требуется придумать цифровые алгоритмы исполнения наших желаний. Оцифровка потребовалась даже в простеньком продемонстрированном примере: выделение фамилии из более длинной строки с текстом фамилии, имени и отчества произвольного человека.

Другие материалы:

1. Основные понятия Excel и поиск данных в таблице с использованием функции ВПР

2. Деление в Excel двух чисел и работа над ошибками при вводе данных

3. Как определить срок покупки железнодорожных билетов с помощью Microsoft Excel

4. Что такое переменная с индексами, массив, комментарий, цикл и счетчик в программировании на конкретном примере

Получайте новые статьи по компьютерной грамотности на ваш почтовый ящик:

Необходимо подтвердить подписку в своей почте. Спасибо!

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel получить данные по api
  • Excel последний рабочий день месяца
  • Excel получить выделенную ячейку
  • Excel последний непустой столбец
  • Excel получить адрес текущей ячейки

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии