Нет формулы конец строки в excel

Обновлено: 02.07.2024

В этой статье описаны синтаксис формулы и использование функций ПСТР и ПСТРБ в Microsoft Excel.

Описание

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

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

Эти функции могут быть доступны не на всех языках.

Функция ПСТР предназначена для языков с однобайтовой кодировкой, а ПСТРБ — для языков с двухбайтовой кодировкой. Язык по умолчанию, заданный на компьютере, влияет на возвращаемое значение следующим образом.

Функция ПСТР всегда считает каждый символ (одно- или двухбайтовый) за один вне зависимости от языка по умолчанию.

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

К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.

Синтаксис

Аргументы функций ПСТР и ПСТРБ описаны ниже.

Текст Обязательный. Текстовая строка, содержащая символы, которые требуется извлечь.

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

Если start_num больше, чем длина текста, то для ПМС и ПБ возвращается "" (пустой текст).

Если start_num меньше, чем длина текста, но start_num плюс num_chars превышает длину текста, то mid/MIDB возвращает символы до конца текста.

Число_знаков Требуется для mid. Указывает, сколько знаков должна вернуть функция ПСТР.

Число_байтов Требуется для midB. Указывает, сколько знаков должна вернуть функция ПСТРБ (в пересчете на байты).

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Возвращает пять знаков из строки в ячейке А2, начиная с первого знака.

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

Так как начальная позиция больше, чем длина строки (10), возвращается пустая строка.


Как найти первый символ с конца строки?

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

Тем не менее, иногда ее необходимо решить, например, чтобы удалить или заменить это вхождение.

Так а в чем же проблема?

Все дело в том, что функции поиска позиции ПОИСК и НАЙТИ ищут только с начала ячейки, и у них нет параметра переключения на поиск с конца.

Процедура Найти и Заменить также не подойдет. Она ищет не с конца строки, а просто находит (и заменяет) все вхождения.

Ниже я покажу пару способов, как осуществить поиск с конца строки.

Обычная составная формула

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

Формула ниже ищет пробел с конца ячейки A1:

Как она работает:

  • Фрагмент, обозначенный красным цветом, вычисляет количество пробелов в ячейке. Подробнее можно почитать в описании функции ПОДСТАВИТЬ.
  • Это количество является аргументом еще одной подстановки, где заменяется лишь последний пробел (выделено жирным)
  • Вместо пробела в его последнюю позицию вставляется достаточно редкий символ. В данном случае это иероглиф, который создается функцией СИМВОЛ. Но можно и прописать символ вручную. В формуле ниже это обратная косая черта:
    находит позицию этого символа. Поскольку он встречается в строке всего один раз и стоит на месте последнего пробела, это и позволяет нам сказать, что поиск произведен справа налево.

Если вам необходимо найти с конца строки какой-то другой символ или текстовый фрагмент, замените пробелы в этой формуле на него.

поиск с конца строки - формула

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

Формулы массива для поиска символа с конца строки

Поиск слева направо с помощью функции ПОДСТАВИТЬ, описанный выше, имеет пару недостатков.

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

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

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

С помощью МАКС

Формула ниже находит позицию символа «а» в любом регистре.


Механика ее работы пошагово:

    измеряет длину ячейки в символах
  1. ДВССЫЛ создает из текстового представления длины ссылку на диапазон строк с 1 по строку, равную этой длине
  2. Функция СТРОКА возвращает массив чисел, соответствующих этим длинам, соответственно, , обрабатывая этот массив, возвращает для каждого числа символ, стоящий на этой позиции в строке
  3. Текстовое сравнение с символом «а» возвращает булевый массив (значения ИСТИНА или ЛОЖЬ)
  4. Этот массив умножается на повторно созданный массив чисел (пункты 1:3). ЛОЖЬ эквивалентна нулю, а ИСТИНА — единице, поэтому для всех символов, не равных «а», в результирующем числовом массиве будут нули, а для равных — их позиции
  5. Функция МАКС возвращает наибольшее число в этом массиве.

С помощью ПОИСКПОЗ

Чуть более хитрая механика делает формулу короче, вместе с тем существенно быстрее, а задействует функцию ПОИСКПОЗ:

Как удалить первый символ, последний символ или несколько первых/последних символов в ячейке Excel? Эта статья поможет решить любую задачу.

Формулы удаления N символов в начале и конце строк

Для составления таких формул понадобятся функции ЛЕВСИМВ, ПРАВСИМВ и ДЛСТР. Первые две извлекают из текста указанное количество символов слева и справа соответственно, а ДЛСТР возвращает количество символов в тексте, к которому обращается.

Чтобы удалить из ячейки N символов слева, можно взять справа количество символов, равное разнице длины строки в символах (ДЛСТР) и N:

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

Удалить символы в начале ячейки (слева)

Формулы выше требуют создания дополнительного столбца. Чтобы сэкономить время, если исходные данные не нужны, мной были разработаны функции !SEMTools, удаляющие символы прямо на месте.

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

«Отрезаем» несколько символов слева в ячейках столбца

Удалить символы в конце ячейки (справа):

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

Выделите диапазон, на панели !SEMTools в меню УДАЛИТЬ -> Символы -> обрезать выберите «с начала ячейки». В появившемся диалоговом окошке вбейте количество символов, которое хотите удалить, и нажмите ОК.

Отрезаем символы справа в ячейках столбца

Хотите так же быстро удалять символы в Excel без использования формул, и еще более 500 похожих полезных инструментов по обработке текста? Проапгрейдите ваш Excel:


Удалить слова и символы по другим условиям

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

функция ДЛСТР - простейшие примеры

Примеры взаимодействия функции ДЛСТР с разными текстовыми и числовыми значениями в ячейках
Раздел функцийТекстовые
Название на английскомLEN
ВолатильностьНе волатильная
Похожие функцииСЧЁТЗ

Что делает функция ДЛСТР?

Эта функция подсчитывает количество символов, включая пробелы и цифры, в фрагменте текста.

Есть символ, который функция ДЛСТР не учитывает. Это символ апострофа (‘), когда он в начале ячейки. Если в начале ячейки идут два символа апострофа подряд, второй уже учитывается.

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

Синтаксис

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

Форматирование

Если входящее значение не в текстовом формате, оно конвертируется в текстовый формат.

Ячейки в формате даты воспринимаются как числа, поэтому содержат обычно 5 знаков (если это не даты, близкие к 1900 году).

Процентный формат также конвертируется в натуральное число, например, 2500% = 25 (2 символа, см. таблицу примеров выше).

Примеры применения ДЛСТР

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

При этом эти комбинации позволяют решать самые необычные задачи.

Пример 1 — посчитать слова

Сколько слов в ячейке? Обычно на 1 больше, чем пробелов между ними. Если пробел один, значит слов — два, если два — то слов три, и так далее.

Если есть вероятность, что пробелов больше 1 между словами, или они есть в начале и конце ячейки, их можно устранить функцией СЖПРОБЕЛЫ.

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

  • с ними,
  • без них,
  • и вычислив разницу.

Как получить строку без пробелов? Тут поможет функция ПОДСТАВИТЬ.

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

Пример 2 — посчитать встречаемость фрагмента в тексте

Есть ли в тексте определенный символ? И если есть, то сколько их?

Рассмотрим пару примеров формул.

Есть ли в ячейке лишние пробелы

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

ДЛСТР для проверки лишних пробелов - пример

Формула проверки наличия лишних пробелов в строке

Формула очевидна и довольно проста. Если длина ячейки после удаления лишних пробелов функцией СЖПРОБЕЛЫ равна исходной — значит, их в ней нет, а если наоборот, не равна — есть.

Обратите внимание, что, несмотря на то, что в самой постановке вопроса звучит условие ЕСЛИ, функция ЕСЛИ тут не нужна. Если равенство верное, Excel сам вставит в ячейку результат ИСТИНА, и ЛОЖЬ, если наоборот.

Сколько раз встречается символ или слово в тексте

По некой аналогии с предыдущим примером, мы можем производить не булевое (ДА-НЕТ, ИСТИНА-ЛОЖЬ) сравнение длин строки перед и после удаления символа или фрагмента, а вычислить разницу.

Если мы ищем один символ, это позволит сразу понять его встречаемость.

Для удаления произвольного символа из строки нам понадобится функция ПОДСТАВИТЬ.

Пример - ДЛСТР для подсчета встречаемости буквы в ячейке

Подсчет встречаемости буквы в ячейке

Если же текстовый фрагмент длиной 2 и более символов — нам потребуется еще и поделить полученный результат на его длину:

В данной формуле исходный текст в ячейке A1, а подсчитываемый фрагмент — в ячейке B1.

пример - функция ДЛСТР для подсчета встречаемости текстового фрагмента

Подсчет встречаемости текстового фрагмента

Обратите внимание на 5 и 6 строки — поскольку функция «ПОДСТАВИТЬ» чувствительна к регистру, из текста ею не было удалено первое вхождение. Если нужно учитывать вхождения в любом регистре, могут понадобиться функции СТРОЧН или ПРОПИСН.

Подсчитываемый текстовый фрагмент может быть любой длины.

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

Пример 3 — извлечь или удалить последнее слово

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

С этим нам, как и в предыдущем примере, поможет функция ПОДСТАВИТЬ — она позволяет заменить не только все определенные текстовые фрагменты в строке, но и определенное по порядку вхождение (первое, второе и т.д.).

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

Подробно пример рассмотрен здесь: Удалить последнее слово в Excel

Пример 4 — удалить первые N символов / первое слово

Нехитрая комбинация функций ПРАВСИМВ, ПОИСК и ДЛСТР позволяет удалить из ячейки первое слово.

  1. вычисляем позицию первого пробела функцией ПОИСК,
  2. вычитаем из длины строки (ДЛСТР) это число
  3. Извлекаем функцией ПРАВСИМВ полученную разницу из исходной строки

Подробнее пример рассмотрен в статье про функцию ПРАВСИМВ.

Если же количество символов уже известно заранее, формула еще проще — нужны только ДЛСТР и ПРАВСИМВ:

ДЛСТР для удаления первых N символов - пример

Удаляем из строки первые 4 символа функциями ДЛСТР и ПРАВСИМВ

Пример 5 — замена последнего символа в ячейке

Как бы ни звучало очевидно, позиция последнего символа в строке равна ее длине в символах. А поэтому, зная длину строки, можно заменить последний символ в ней, взяв на 1 символ меньше с помощью ЛЕВСИМВ, и конкатенации с нужным текстом через амперсанд:

Или с помощью функции ЗАМЕНИТЬ, которая на вход возьмет длину строки как позицию заменяемого символа:

Пример 6 — в формуле массива

Как посчитать разом все символы во всех ячейках столбца или диапазона?

Здесь поможет формула массива на основе комбинации функции ДЛСТР и функции СУММ. Первая создаст массив значений длины каждой из ячеек диапазона, а вторая просуммирует эти значения:

Пример - функция ДЛСТР в формуле массива

Функция ДЛСТР в формуле массива

Аналогичным способом функциями МАКС и МИН можно посчитать длины самой длинной и самой короткой строк в диапазоне.

Читайте также: