Форум программистов, компьютерный форум CyberForum.ru

MS Office Excel

Войти
Регистрация
Восстановить пароль
 
yl3d
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 68
#1

Некорректное извлечение части текста из ячейки - формулой - MS Excel

20.04.2017, 21:27. Просмотров 161. Ответов 7
Метки нет (Все метки)

Добрый вечер, уважаемые программисты.
Вопрос к знающим.

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

Есть формула извлекающая кусок текста - из текстовой ячейки. Ограничители извлекаемого куска - текст "texturef" и ","

Код
=ЕСЛИОШИБКА(ЗНАЧЕН(ЕСЛИ(ЕСЛИОШИБКА(СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ(ПСТР(D10;ПОИСК($E$4;D10)+3;15);"-";ПОВТОР(" ";15));15;99);",";ПОВТОР(" ";99));99));0)="05";0,5;ЕСЛИОШИБКА(СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ(ПСТР(D10;ПОИСК($E$4;D10)+3;15);"-";ПОВТОР(" ";15));15;99);",";ПОВТОР(" ";99));99));0)));0)
В большинстве случаев формула работает нормально.
Но иногда возникает странный "баг".

Почему-то формула найдя первый ограничитель ("texturef") и не найдя второго ограничителя (",") - отсчитывает шесть символов от "целевой запятой" - и возвращает значение 7-го символа (при условии, что это - число, а не буква или знак). Сейчас- это число "5" (из слова "etsh05,").
Проблемная ячейка (H10). По идее - вместо значения 5 - в этой ячейке должно быть значение "0"

Как изменить формулу, чтобы в проблемной ячейке (H10) диапазона - отображался 0 ?

Я пытался сам определить причину такой странной работы - искал в формуле значения "7" или "8" - ведь формула извлекает число после 8 символа...
Но в формуле - таких чисел нет.
Поэтому я в тупике.
Вложения
Тип файла: xlsx 456456.xlsx (12.1 Кб, 4 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2017, 21:27     Некорректное извлечение части текста из ячейки - формулой
Посмотрите здесь:
Извлечение части данных из одной ячейки MS Excel
MS Excel Удаление части текста ячейки, который совпадает с текстом соседней ячейки
Извлечение цифр из текста в нужные ячейки (размеров изделия) MS Excel
MS Excel Извлечение данных из ячейки с текстом
MS Excel Извлечение и суммирование чисел из ячейки с текстом
MS Excel Поиск и извлечение URL изображения из ячейки в другую ячейку
Формулой отобразить свойства текста в ячейке. MS Excel
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
avporsk
10 / 10 / 4
Регистрация: 03.11.2016
Сообщений: 45
21.04.2017, 09:18     Некорректное извлечение части текста из ячейки - формулой #2
в части Вашей офигенной формулы ищется знак "-" и вместо него подставляется куча пробелов.
но 10 строчке минуса нет, поэтому пробелы не вставляются.
C
1
ПОДСТАВИТЬ(ПСТР(D10;ПОИСК($E$4;D10)+3;15);"-"
Добавлено через 7 минут
формула ужасная. честно говоря, я думаю, что такая формула и такой подход в извлечении куска текста из исходного в корне НЕ верный.
yl3d
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 68
21.04.2017, 10:14  [ТС]     Некорректное извлечение части текста из ячейки - формулой #3
avporsk, так как формулу-то исправить ?
avporsk
10 / 10 / 4
Регистрация: 03.11.2016
Сообщений: 45
21.04.2017, 11:15     Некорректное извлечение части текста из ячейки - формулой #4
не знаю, я попробовал свою написать, она вообще в 4 строчки получилась (((

C
1
=ЕСЛИ(ЕОШ(НАЙТИ(0;ЕСЛИОШИБКА(ПСТР(ПСТР(D8;НАЙТИ($E$4;D8;1);ЕСЛИОШИБКА(НАЙТИ(",";D8;НАЙТИ($E$4;D8;1))-НАЙТИ($E$4;D8;1);99));НАЙТИ("-";ПСТР(D8;НАЙТИ($E$4;D8;1);ЕСЛИОШИБКА(НАЙТИ(",";D8;НАЙТИ($E$4;D8;1))-НАЙТИ($E$4;D8;1);99));1)+1;99);0);1));ЗНАЧЕН(ЕСЛИОШИБКА(ПСТР(ПСТР(D8;НАЙТИ($E$4;D8;1);ЕСЛИОШИБКА(НАЙТИ(",";D8;НАЙТИ($E$4;D8;1))-НАЙТИ($E$4;D8;1);99));НАЙТИ("-";ПСТР(D8;НАЙТИ($E$4;D8;1);ЕСЛИОШИБКА(НАЙТИ(",";D8;НАЙТИ($E$4;D8;1))-НАЙТИ($E$4;D8;1);99));1)+1;99);0));ЗНАЧЕН(ЕСЛИОШИБКА(ПСТР(ПСТР(D8;НАЙТИ($E$4;D8;1);ЕСЛИОШИБКА(НАЙТИ(",";D8;НАЙТИ($E$4;D8;1))-НАЙТИ($E$4;D8;1);99));НАЙТИ("-";ПСТР(D8;НАЙТИ($E$4;D8;1);ЕСЛИОШИБКА(НАЙТИ(",";D8;НАЙТИ($E$4;D8;1))-НАЙТИ($E$4;D8;1);99));1)+1;99);0))/10)
Вложения
Тип файла: xlsx 456456.xlsx (11.8 Кб, 1 просмотров)
yl3d
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 68
21.04.2017, 11:20  [ТС]     Некорректное извлечение части текста из ячейки - формулой #5
avporsk, вроде работает.
Большое спасибо.
AlexM
1542 / 1158 / 475
Регистрация: 04.09.2015
Сообщений: 2,216
21.04.2017, 13:13     Некорректное извлечение части текста из ячейки - формулой #6
Код
ЕСЛИОШИБКА(-ЛЕВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(D8;ПОИСК("-";D8&"-";ПОИСК("texturef";D8));99);"-0";"-0,");", ";ПОВТОР(" ";9));9);)
Добавлено через 8 минут
знак равно перед формулой не поставил.
avporsk
10 / 10 / 4
Регистрация: 03.11.2016
Сообщений: 45
21.04.2017, 13:13     Некорректное извлечение части текста из ячейки - формулой #7
AlexM, коротко получилось, а что - перед ЛЕВБ означает ??
А типа "НЕ" чтоль?
А нет проверил не "НЕ"

это типа функция "Ч"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2017, 13:15     Некорректное извлечение части текста из ячейки - формулой
Еще ссылки по теме:
MS Excel Вставка текста из одной ячейки в другую с добавлением текста макросом
MS Excel Выделение цветом части ячейки
MS Excel Извлечение из текста - искомого куска, с добавкой 2 символов справа
Перенос части данных в середине ячейки MS Excel
MS Excel Копирование части данных одной ячейки в другую

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
AlexM
1542 / 1158 / 475
Регистрация: 04.09.2015
Сообщений: 2,216
21.04.2017, 13:15     Некорректное извлечение части текста из ячейки - формулой #8
ЛЕВБ() извлекает отрицательные числа -1, -0,5 и тд.
- (минус) меняет знак
Вместо ЛЕВБ() можно применить ЛЕВСИМВ(), но формула будет длинее.
На другом форуме эту формулу показал.
Yandex
Объявления
21.04.2017, 13:15     Некорректное извлечение части текста из ячейки - формулой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru